首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

所需即所获:像 IDE 一样使用 vim

  •  4
     
  •   yangyanggnu · 2014-10-13 19:05:06 +08:00 · 21677 次点击
    这是一个创建于 1831 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有一个文本编辑器叫 vim,但我让它干 IDE 的事儿。
    https://github.com/yangyangwithgnu/use_vim_as_ide
    第 1 条附言  ·  2015-01-06 10:38:45 +08:00
    v0.2.0,2014-12-27,新增/修正。0)重写“代码收藏”章节,停用过时的 visual mark,启用用户体验更优的 vim-signature(@arcticlion,谢谢);1)新增“基于语义的导航”章节,YCM 新增该项功能;2)调整“5.2 模板补全”章节结构,UltiSnips 不再提供预定义代码模板;3)protodef 插件更新,修复 protodef 生成成员函数实现的返回语句错误的问题;4)给出安装插件 vim-instant-markdown 的详细步骤。
    68 回复  |  直到 2019-03-13 13:44:22 +08:00
        1
    likaci   2014-10-13 19:11:23 +08:00   ♥ 1
    佩服…自己打磨的工具才是最好用的。
    感觉初级用户还是编辑器+vim插件实在,主要是没有耐心…懒
        2
    jsonline   2014-10-13 19:25:04 +08:00 via Android   ♥ 1
    不如直接IDE。
    VIM插件能无障碍使用的真不多。
        3
    sandtears   2014-10-13 19:26:28 +08:00
    干嘛不用 IDE
    我除非是编辑配置文件和写 C (目前没找到比较好的 C 的 IDE)不然都用对应 IDE
        4
    jiang42   2014-10-13 19:42:01 +08:00
    @sandtears 他就是打造了一个 C 的IDE,其实 VS 很好用的,就是不跨平台。坐等 JetBrain 的 CLion上线
        5
    sandtears   2014-10-13 20:04:41 +08:00
    @jiang42 对,我就是因为 Windows 用 VS 被宠坏了才看不上 Linux 下那些 C 语言 IDE 的。。
    不过 Jetbrains 的风评似乎不错,期待 0 0
        6
    ericFork   2014-10-13 20:29:53 +08:00
    Vim 的好处是自由……按自己的习惯定制最适合自己的一套配置……

    只是一味往 IDE 上靠,那还是直接用 IDE 好了……
        7
    yangxin0   2014-10-13 20:30:56 +08:00
    哎, 工作后变懒了, 给我记事本我也能写程序。
        8
    banbanchs   2014-10-13 21:57:29 +08:00
    vim+ycm写写短点的C/C++还是蛮爽的,顺便给LZ推荐个 https://github.com/szw/vim-ctrlspace 光是用来切buffer都值得装
        9
    ericls   2014-10-13 22:38:19 +08:00 via Android
    确实 我用过vim和一些其他的ide 理论上来说 ide是要强大些 但是实际使用效率确实不如vim
        10
    hazard   2014-10-13 23:03:47 +08:00
    我感觉这个帖子稍不留神就会演化成 是否使用IDE的大论战
        11
    chilaoqi   2014-10-13 23:37:40 +08:00
    累。
        12
    openroc   2014-10-13 23:39:01 +08:00   ♥ 1
    使用vim的赶脚, 生命在于折腾~~~~
        13
    mantianyu   2014-10-13 23:53:00 +08:00   ♥ 1
    自己维护这些插件的成本太大了, 光首次配置就至少得一下午, 以后也难保不出事
    插件数量这么多, 升级打 patch 什么的平均周期就会缩短, 久而久之会发现维护这些东西真麻烦
    还有就是插件多了, 处理这些插件的布局也是件麻烦事, 就像是 MiniBufExplorer, 发现有个文件名很长显示不过来怎么办? ^W + > 一点一点的加宽? 太麻烦了..

    所以个人觉得要 IDE 就直接上 IDE, 用 vim 就用的干净利索!
        14
    carlhan   2014-10-13 23:54:42 +08:00   ♥ 3
    用github 写文章真是奇怪

    还是放项目比较好 比如hardseed
    https://github.com/yangyangwithgnu/hardseed
        15
    iptux   2014-10-13 23:57:42 +08:00
    Qt Creator 用着还好吧
        16
    fo2w   2014-10-14 00:19:02 +08:00
    看着lz很用心, 好想做伸手党要vimrc
    虽然我还是习惯vs + va

    听vim党说多了耳朵真的很容易出茧, 关于效率, 怎么说呢, 我能说用ide完爆大部分vim党么
    其实说白了, 无它, 唯手熟尔, 各有各的好
    赞一个
        17
    yxzblue   2014-10-14 00:20:27 +08:00
    其实exvim就可以搞定了
        18
    Sunyanzi   2014-10-14 03:22:28 +08:00   ♥ 5
    我用 VIM 用了有六七年了吧 ... 可能还不止 ...

    但现在我除了偶尔还开开 ... 在服务器上装少量插件的用用之外 ... 基本已经很少用了 ...

    究其原因 ... 我想大概只是我不愿意再花费时间在折腾编辑器上 ... 没有那么热衷于磨刀了 ...

    现在的我宁可去找一把勉强还能用得来的刀使唤着 ... 这也就是为什么我转投 ST ...

    而且事实上 ST 并不慢 ... 修改引号里的内容 ... 流畅的输入 dt'a 和抄起鼠标双击的时间相差无几 ...

    清除到行尾这种简单操作 ... d$ 比起拉住鼠标往下一拖也没有什么优势 ...

    如果算上定位光标的时间 ... VIM 的键盘操作甚至会输给 ST 的鼠标操作 ...

    我的 ST 会装 EasyMotion 插件 ... 为了怀旧 ... 也为了我懒得动鼠标的时候不至于蠢蠢的挪光标 ...

    大部分时间我还是键盘鼠标一起操作的 ... 毕竟那样最直观 ... 不会打断我创造程序的思路 ...

    注意我说的是创造 ... 而不是堆砌 ... 堆砌这种不过脑子的事情用什么编辑器都无所谓的 ...

    我承认 ... VIM 确实好 ... 确实呱呱叫 ... 确实引领了一个时代 ... 但不可否认的事情是它已经落伍了 ...

    裹足不前 ... 沉迷于过去的荣光 ... 实在不是一个有追求有理想的程序员该做的事情 ...
        19
    vietor   2014-10-14 08:26:58 +08:00 via Android
    用IDE就像没断奶的小孩
        20
    san3ye   2014-10-14 08:44:24 +08:00
    vim+xcode
        21
    ChiangDi   2014-10-14 09:28:52 +08:00 via Android
    被9楼说中了,全都是在讨论用不用 IDE
        22
    twilight   2014-10-14 09:33:51 +08:00
    @fo2w visual studio 2013 + ViEmu 。 实现了不少常用的vim功能。
        23
    Shazoo   2014-10-14 09:34:26 +08:00
    写的不错。star了。
        24
    ChiangDi   2014-10-14 09:35:08 +08:00 via Android
    @Sunyanzi 你的ST 没装 VIM 插件吗?另外,为什么不用 jetbrains 家的 IDE 呢?
        25
    canautumn   2014-10-14 09:36:51 +08:00
    几个月前就看过lz这篇博客,自己不是都用得上不过大部分内容消化学习了一下,自己设置了一份,还是挺好用的,尤其是偶尔连到服务器不得不用vim的时候。
    要是真让vim和专门的ide拼功能,那肯定拼不过啊,虽然我平时还是用ide多一点,我还是觉得lz这篇文章有很多可取之处。没有必要非此即彼。
    现在文章是有更新了?
        26
    twilight   2014-10-14 09:37:21 +08:00
    xCode , visual studio 都有vim插件,提供了常用的vim功能。
        27
    williamx   2014-10-14 09:55:10 +08:00
    何必又何苦?
        28
    Darin   2014-10-14 09:58:38 +08:00
    额 看到这么些高玩的回复。我只能默默顶贴了。
        29
    cszhiyue   2014-10-14 10:10:34 +08:00
    插件管理为什么不用vundle
        30
    forever139   2014-10-14 10:12:49 +08:00
    已star
        31
    tamamaxox   2014-10-14 10:14:09 +08:00
    @banbanchs 不错,但是直接用ctrlp不就妥妥哒。
        32
    yuankui   2014-10-14 10:14:41 +08:00
    壮哉兮我大JB
        33
    reeco   2014-10-14 10:20:17 +08:00
    19L 这逼装得
        34
    Codist   2014-10-14 10:24:28 +08:00
    收藏勒~~闲了看看
        35
    wity_lv   2014-10-14 11:09:53 +08:00   ♥ 1
    看到如此完备的文档,我醉了!
    贴个自己用的配置:
        36
    humiaozuzu   2014-10-14 11:21:14 +08:00
    好多年前自己配的 https://github.com/humiaozuzu/dot-vimrc

    后来换 Sublime 了,所有功能都有,而且 UI 漂亮,多 tab 自然,navigation 方便,还比 vim 快。

    Vim 快捷键对 text object 十分友好是他高效的原因,不过带来的坏处就是,仅仅是代码友好,写文章效率是很低的。现在换 Sublime 后,结合 OS X 的 line edit 快捷键不比 text object 的慢。只有连服务器时才会用一下 vim 了,不过服务器也是自己配的一套对服务器方便的配置,好多插件都没开。

    对于新的 https://github.com/neovim/neovim 暂时也没抱什么希望。

    推荐一本叫做 「sublime power user」的书,进阶必备~~
        37
    mstar   2014-10-14 12:05:56 +08:00
    @Sunyanzi 修改引号里的内容 可以 ci' 并且不管你在引号里的哪个位置
        38
    limbo0   2014-10-14 13:41:25 +08:00
    @carlhan 这个真心赞啊
        39
    davidjqq19   2014-10-14 13:56:13 +08:00
    收藏了,谢谢LZ
        40
    hsyu53   2014-10-14 14:28:01 +08:00
    一直比较懒,懒得折腾vimrc。推荐一个别人的:
    https://github.com/spf13/spf13-vim
        41
    chuan   2014-10-14 15:29:08 +08:00
    现在一般用IDE,加上vim插件
        42
    uuair   2014-10-14 15:45:56 +08:00
    很棒!!
        43
    niko   2014-10-14 15:48:27 +08:00
    NB啊~~~
        44
    lzsadam   2014-10-14 16:08:52 +08:00
    楼主好能折腾,果断收藏了,有空的时候折腾折腾……
        45
    ninja470   2014-10-14 18:49:12 +08:00
    写得不错,打造过程中的思考很有干货
        46
    konakona   2014-10-14 19:25:44 +08:00
    还不错,对于将VIM的功能发挥到极致颇有帮助。

    我觉得将VIM弄成日常IDE的人本身就是一种折腾,一种技术的磨练,一种挖掘的精神,很好。

    大家不用为了想法不同,但结果很好的事情进行任何判定吧?
        47
    yangyanggnu   2014-10-14 22:04:17 +08:00
    @ninja470
    @konakona

    两位兄弟说得好:思考、挖掘。发此文两个目的:
    0)记录备案,便于日后复用;
    1)记录过程中遇到的各种坑,帮助下一个有相同困惑的朋友;

    我是个目标驱动的奉行者,我清楚需要哪些功能,通过各种折腾达到目的,或许这个过程不是最优的路径,但一定是最适合我思维模式的。其实,我享受的是过程。

    “明白没有最好只有最适合的道理、取至社区并回馈社区、保持一颗热爱折腾的心”,既然热爱自由软件,那么这是我认为对的事情。
        48
    letv   2014-10-15 14:42:36 +08:00
    直接用楼主你的vimrc就可以了吗?
        49
    yangyanggnu   2014-10-15 15:50:56 +08:00
    @letv

    不行,插件得自己安装
        50
    czyhd   2014-10-15 16:09:08 +08:00
    我发现,像let mapleader=";"这样的配置,只能放在~/.vimrc,
    用vim -u 加载其他配置文件是无效的。
    开发机很难搞啊。
        51
    uuair   2014-10-15 18:44:53 +08:00
    我不太懂计算机,刚开始学c,看见楼主的文档,也想学学,不过碰到了几个问题:
    我用的是mac系统,很多vimrc的设置,都是直接cp楼主文档的,不过有个错误,如下:
    # 将 pathogen 自身也置于独立目录中,需指定其路径
    runtime bundle/pathogen/autoload/pathogen.vim
    # 运行 pathogen
    execute pathogen#infect()

    这里的#号是不是应该是“号啊,我这里报错了,改”号就好了。但是下面这句
    execute pathogen#infect()一直提示出错,
    line 83:
    E117: Unknown function: pathogen#infect
    E15: Invalid expression: pathogen#infect()
    我看了官方的设置,写法是对的,但不知道为什么我这里就一直出错一直出错。。。
        52
    uuair   2014-10-15 18:59:41 +08:00
    问题居然被我找到了:
    官方文档关于paghogen的安装方法跟楼主说的不一样。
    楼主是这样写的:
    创建目录 ~/.vim/bundle/pathogen/autoload/;下载 pathogen.vim(https://github.com/tpope/vim-pathogen )至 ~/.vim/bundle/pathogen/autoload/。

    而官方文档是这样的:
    mkdir -p ~/.vim/autoload ~/.vim/bundle && \
    curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

    问题在于这个autoload的目录,官方是放到~/.vim/autoload的,而楼主是~/.vim/bundle/pathogen/autoload/的,改成官方,就ok了。。不知道是不是只有我有这个问题。。
        53
    fzss   2014-10-20 04:21:40 +08:00 via iPhone
    别扯淡啦,前几天问drew houston,他就用sublime text...用不用ide,用不用vim无所谓啦
        54
    Jaylee   2014-10-29 11:04:50 +08:00
    @uuair 其实都是一样的 按照官方的放在.vim/autoload目录 可以直接call 命令
    按照楼主放在bundle/pathogen目录,需要指定runtime路径
        55
    grasshopyx   2015-01-06 00:16:44 +08:00
    请问博主,有没有一个好用的类C语言的调试器的VIM插件?
        56
    yangyanggnu   2015-01-06 09:27:48 +08:00   ♥ 1
    @grasshopyx
    请问博主,有没有一个好用的类C语言的调试器的VIM插件?

    —— 不明白你所谓的类 C 语言调试器是什么意思,如果是指用 C/C++ 调试器,那么,目前主流的 vim 调试器插件,基于 GDB 的有 vimgdb、clewn、pyclewn,基于 LLDB 的有 vim-lldb,效果均不理想,至少与我预期存在较大差距,你可以自行逐一尝试,挑取最爱。若要推荐,优选 vim-lldb,其次 pyclewn。
        57
    grasshopyx   2015-01-07 15:17:30 +08:00
    我使用过 vim-lldb,但是没有成功。不知道该怎么使用。
    当我用 vundle 安装好 gilligan/vim-lldb 后,用:Lattach xxx 会出现 error during attach : error: could not find a process named xxx 。意思似乎是没有一个叫xxx的进程,这很奇怪,为什么debug之前要先运行它呢?
    如果用:Ltarget create xxx,则会出现一堆错误。这个错误也有人遇到过,参见https://github.com/gilligan/vim-lldb/issues/5
    但是github上的这个人是在ubuntu环境下,它的解决思路我也没有看明白。
    请教博主 vim-lldb 该怎么用?
        58
    kappa   2015-01-19 13:31:17 +08:00
    这个可以放到gitbook上么?
        59
    yangyanggnu   2015-01-19 16:10:11 +08:00
    @kappa

    可以,麻烦你了
        60
    SmallSteelGun   2015-02-03 16:06:47 +08:00
    多谢博主,可是我在mac平台上安装不上呢。
        61
    sing1ee   2015-05-11 13:22:06 +08:00
    https://github.com/spf13/spf13-vim 我用这个,但我不排斥pycharm等
        62
    favoorr   2015-06-05 16:08:16 +08:00
    @uuair 我自己执行命令创建的文件夹,使用 wget 下载的pathogen.vim,放置路径什么的完全没错,但就是每次都报错误,没办法复制 github 里面作者 的 readme 安装方法,就正确
        63
    hallewong   2015-08-26 18:36:00 +08:00
    多谢博主。

    我在使用中发现
    " 定义快捷键到行首和行尾
    nmap lb 0
    nmap le $
    会使得用 l 移动光标的时候有延迟,是不是应该映射到别的键上呢
        64
    fcymk2   2016-02-04 15:06:12 +08:00
    试了下 ycm, 在头文件路径都对的情况下 补全跳转很犀利

    可是在头文件报错(提示找不到)的时候, 跳转完全不能用了(有时候 win 下改点小代码,没有 kernel 头文件,), 不知道这个能不能通过配置什么东西来改进. 用 neocomplete+clang 这时候是可以正常跳转工作的
        65
    Muto   2016-04-17 20:50:08 +08:00
    @hallewong 楼主的配置文件里是大写的 LB 和 LE
        66
    fuxpro   2016-09-14 09:37:10 +08:00
    由于目前手上的项目在使用 Dlang 开发, 所以直接上了 VS

    Vim 是我学生时代的好朋友
        67
    shuoit   2017-02-21 19:34:29 +08:00
    大道至简!用遍 Eclipse 系和 JB 系 IDE 后,还是换为 Vim 。
        68
    demodashi   219 天前
    厉害,demo 大师欢迎您入驻
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2206 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    ♥ Do have faith in what you're doing.