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

mac 上用 vim 开发 c/c++,求推荐 vim 配置

  •  
  •   harry890829 · 2015-10-28 22:03:03 +08:00 · 8835 次点击
    这是一个创建于 3320 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在用的 spf13 但是他整合的太多了……有没有针对 c/c++的?

    第 1 条附言  ·  2015-10-29 09:44:16 +08:00
    我现在用的就是 spf13 ……其他都没什么问题的,就是遇到一个 bug ,但是他又写的非常蛋疼,我不知道怎么办了……
    遇到的情况是这样的:
    在插入模式下写一个函数, YCM 弹出提示框,使用 Tab 选词之后 vim 上就已经插入了我选择的函数名( YCM 的选词框还在),这时使用 esc 退出插入模式,就会出现,再次进入插入模式,而且刚才用 Tab 选好的函数名没了,界面上只剩下我手工输入的字符。
    后来我尝试了下,如果我在用 Tab 选词之后, YCM 自动插入了我选中的函数,我再输入一下别的东西,这使得选词框消失,这样再 esc 就不会出现问题了。
    感觉好像是 YCM 在关闭选词框的时候,按键和 spf13 设置的快捷键冲突,不知道是否是这样的……现在每次 Tab 选词之后都是输入一个空格,然后 esc 再 x 掉空格了……简直蛋疼的一逼
    59 条回复    2016-09-16 19:12:00 +08:00
    tyfulcrum
        1
    tyfulcrum  
       2015-10-28 22:26:27 +08:00
    Xcode + XVim ,不想折腾的话这个是坠吼地
    iShao
        2
    iShao  
       2015-10-28 22:34:40 +08:00   ❤️ 1
    坠吼地 这又是什么鬼

    有人造吗
    htfy96
        3
    htfy96  
       2015-10-28 22:35:26 +08:00
    没办法啊。。。说实话 cpp 还是必须要上 YCM ,这个一上就轻不了了
    wklken
        4
    wklken  
       2015-10-28 22:37:10 +08:00
    YCM 的确折腾, 但是配好会觉得超值:)
    alexapollo
        5
    alexapollo  
       2015-10-28 22:43:49 +08:00
    kran
        6
    kran  
       2015-10-28 22:44:26 +08:00 via Android
    目前用 ycm 凑合着,还在寻找更好的办法
    secondwtq
        7
    secondwtq  
       2015-10-28 22:51:24 +08:00
    @htfy96 YCM 最折腾的地方是这货和 LLVM , Python 环境耦合了

    偏偏我还就喜欢没事折腾这两个货
    secondwtq
        8
    secondwtq  
       2015-10-28 22:54:59 +08:00
    多说一句,用过 CLion 以后,感觉是 YCM 这种颠峰之作再怎么都赶不上的,就是 13 寸 MBP 跑着有点吃力。

    所以最好的 vim 配置就是... 《 vim 实用技巧》 :)
    halfcrazy
        9
    halfcrazy  
       2015-10-28 22:58:56 +08:00
    spf13
    jonah
        10
    jonah  
       2015-10-28 22:59:09 +08:00
    CLion 卡成狗,用不起来。可用性跟 idea 没法比。
    halfcrazy
        11
    halfcrazy  
       2015-10-28 22:59:39 +08:00
    @halfcrazy 手滑了, spf13 把不要的去掉。
    linux40
        12
    linux40  
       2015-10-29 07:36:17 +08:00 via Android
    。。。不推荐,世界上所有补全插件就算配置好了,编译器一升级,你还得改路径。。。虽然我没配置好过。。。还有 vim 如果不配置快捷键的话会打很多字,快捷键一多我又记不住。。。
    neutrino
        13
    neutrino  
       2015-10-29 07:38:20 +08:00 via Android
    装 windows 上 vs😉
    heliar
        14
    heliar  
       2015-10-29 08:54:04 +08:00
    @tyfulcrum + 1
    pzhjie
        15
    pzhjie  
       2015-10-29 08:54:51 +08:00
    @iShao 最好的,长者的名言
    smartdie
        16
    smartdie  
       2015-10-29 09:02:59 +08:00
    vim 这玩意就是自己磨合出来的,别人的配置拿过来还用 vim 干嘛,直接上 ide 了
    griffinqiu
        17
    griffinqiu  
       2015-10-29 09:13:26 +08:00
    vim 这玩意就是自己磨合出来的,别人的配置拿过来还用 vim 干嘛,直接上 ide 了
    + 10086
    wezzard
        18
    wezzard  
       2015-10-29 09:14:29 +08:00
    Xcode is your friend.
    Fechin
        19
    Fechin  
       2015-10-29 09:29:34 +08:00
    Fechin
        20
    Fechin  
       2015-10-29 09:29:50 +08:00
    +10086
    wubaiqing
        21
    wubaiqing  
       2015-10-29 09:38:10 +08:00
    j16ZgMV9cs6ZB23n
        22
    j16ZgMV9cs6ZB23n  
       2015-10-29 09:41:19 +08:00 via iPhone
    harry890829
        23
    harry890829  
    OP
       2015-10-29 09:47:07 +08:00
    @tyfulcrum xcode 现在对 c++开始友善起来了么?传言以前对 c++的支持非常不好……
    harry890829
        24
    harry890829  
    OP
       2015-10-29 09:48:27 +08:00
    @htfy96 ycm 很不错的,我很喜欢,轻倒是无所谓,但是 spf13 用的 vim 脚本代码太复杂……要是一般的 vimrc 我自己也知道怎么改一下,但是他这个好像出现按键冲突之后,我就傻眼了
    harry890829
        25
    harry890829  
    OP
       2015-10-29 09:49:12 +08:00
    @secondwtq 记得还有个 neocomplete ,也很不错的, spf13 推荐过
    harry890829
        26
    harry890829  
    OP
       2015-10-29 09:50:07 +08:00
    @halfcrazy 不知道怎么修改 spf13 复杂的 vimrc ……
    harry890829
        27
    harry890829  
    OP
       2015-10-29 09:51:55 +08:00
    @alexapollo
    @wubaiqing
    @chilledheart
    谢谢各位发出来的 vimrc ,我晚点仔细的看看,实在不行就周末的时候,把 spf13 删掉,然后按照他的插件列表把我需要的一点一点装上……
    iShao
        28
    iShao  
       2015-10-29 10:21:33 +08:00 via Android
    @pzhjie
    小心被续
    Goooogle
        29
    Goooogle  
       2015-10-29 11:08:33 +08:00
    vim 需要自己配置,至少要知道每部分是干什么的,然后磨合。

    个人目前用到的针对 C/C++的就下面两个:
    YouCompleteMe :可以和 eclim 一起用,在 vim 实现 eclipse 中的补全提示。
    SrcExpl :用于阅读源码,实现类似 Source Insight 的功能,当光标定位到函数名上时,在下方显示到该函数的定义位置。

    通用辅助型:
    Mark :用不同颜色标记不同字符串,可以在变量特别多时标记变量,思路更清晰。
    Syntastic :在码的过程中语法检查,在有语法错误的地方提示,不用等到编译时。
    CtrlP :类似 Sublime Text 的 Ctrl-P 快速打开文件功能,支持路径名文件名模糊匹配。
    RainbowParentheses &&  DelimitMate :分别是不同层级的括号以不同颜色区分、括号引号自动补全。
    Snipmate :快速插入代码片段。
    Nerdcommenter :快速注释、取消注释。
    NerdTree :类似 IDE 左侧的文件目录树。
    IndentLine :标记不同的缩进层级。

    还有一个 Vundle ,管理插件的插件。


    个人的 vimrc 配置,比较乱。
    https://github.com/wu-nerd/dotfile/blob/master/.vimrc
    mickeyandkaka
        30
    mickeyandkaka  
       2015-10-29 11:09:08 +08:00
    楼主我也有这个问题啊!!!!真的超级烦。
    不知道为什么我在服务器上的配置没问题,在自己电脑就有这个问题。
    aszxqw
        31
    aszxqw  
       2015-10-29 11:22:02 +08:00
    htfy96
        32
    htfy96  
       2015-10-29 11:26:52 +08:00
    @Goooogle SrcExpl 有什么 YCM 不具有的功能吗?看起来好像都是跳转 :Youcompleteme GoTo Declaration 也行吧?
    allenzhong
        33
    allenzhong  
       2015-10-29 11:34:29 +08:00
    allenzhong
        34
    allenzhong  
       2015-10-29 11:37:19 +08:00
    https://github.com/allenzhong/janus

    这个是我个人从 janus 那边 fork 过来的,虽然我自己是做 ror ,但是 janus 本身已经提供了很好的模板,稍加改动再添加一些插件就可以很好的应用

    我在博客里面也写过一些关于 vim 的配置,可以看看
    http://talkcool.info/?p=205
    http://talkcool.info/?p=251
    firemiles
        35
    firemiles  
       2015-10-29 11:42:48 +08:00
    @Goooogle YCM 和 SrcExpl 一起用不冲突吗,我当初两个一起用 SrcExpl 不能正常工作,所以把 YCM 换成 clang-complete 了
    feuvan
        36
    feuvan  
       2015-10-29 11:52:30 +08:00
    CLion
    别折腾了
    实在要 vim 就 clang-complete
    zonghua
        37
    zonghua  
       2015-10-29 11:55:41 +08:00
    你们这么费心费力去折腾配置工具,对编程技术有什么提高吗?

    via 轮子哥
    halfcrazy
        38
    halfcrazy  
       2015-10-29 12:09:09 +08:00   ❤️ 1
    @harry890829 .vimrc 里面有很详细的注释,简单来说你只要把 spf13_bundle_groups 里的你觉得用不到的去掉就可以。补全 tab 的问题可以试试加上这么一行 iunmap <Esc>
    harry890829
        39
    harry890829  
    OP
       2015-10-29 12:31:04 +08:00
    @halfcrazy soga ,我还是太年轻了……我赶紧去试试看你说的这个代码
    harry890829
        40
    harry890829  
    OP
       2015-10-29 12:33:30 +08:00
    @halfcrazy 太感谢了,加上这行就解决了,吼吼,晚点我删减一些我用不到的插件就好了,多谢~
    harry890829
        41
    harry890829  
    OP
       2015-10-29 12:34:26 +08:00
    @Goooogle 多谢这么详细的说明, spf13 中有些插件很不错,但是有些插件根本用不上,我稍后自己慢慢修改……
    harry890829
        42
    harry890829  
    OP
       2015-10-29 12:36:19 +08:00
    @mickeyandkaka 什么问题?是我附加里面说的 esc 的问题?还是不知道怎么配置自己的 vim ?如果是前一个问题的话,@halfcrazy 说的一个命令非常好用,直接就好了,后面一个问题的话,就只能看看大神们的推荐了,要么和我一样用 spf13 的
    harry890829
        43
    harry890829  
    OP
       2015-10-29 12:37:15 +08:00
    @zonghua 让自己生活过的舒服,是一个本能,让自己写代码写的舒服,应该也是程序员的本能吧……
    ethan89
        44
    ethan89  
       2015-10-29 14:59:42 +08:00
    https://github.com/Ethan89/use_vim_as_ide
    里面有提到一些 YCM 的。不知道有没有用
    ethan89
        45
    ethan89  
       2015-10-29 15:00:36 +08:00
    @zonghua V2EX 也有轮子哥?
    erenno1
        46
    erenno1  
       2015-10-29 15:06:17 +08:00
    jsfaint
        47
    jsfaint  
       2015-10-29 15:08:49 +08:00
    来用我的 vim 配置吧~~
    多平台通用(windows, linux, osx)
    主要做 C/C++开发,偶尔 web ,以及 python

    https://github.com/jsfaint/vimcfg
    harry890829
        48
    harry890829  
    OP
       2015-10-29 15:59:56 +08:00
    @ethan89
    @erenno1
    @jsfaint
    三位给出的都很棒,双休日慢慢看下,然后准备调整一下我这里的配置,多谢各位
    skydiver
        49
    skydiver  
       2015-10-29 16:02:21 +08:00
    @erenno1 https://github.com/jsfaint/vimcfg/blob/master/_vimrc#L46 这一行是不是 disabled 拼错了。。
    skydiver
        50
    skydiver  
       2015-10-29 16:02:45 +08:00
    @erenno1 不好意思,爱特错了。。抱歉
    skydiver
        51
    skydiver  
       2015-10-29 16:03:03 +08:00   ❤️ 1
    @jsfaint https://github.com/jsfaint/vimcfg/blob/master/_vimrc#L46 这一行是不是 disabled 拼错了。。
    Changxu
        52
    Changxu  
       2015-10-29 16:11:28 +08:00
    spf13 是个很出名的 vim 配置
    harry890829
        53
    harry890829  
    OP
       2015-10-29 16:21:13 +08:00
    @Changxu 是啊,用的人多了,自然兼容性就要好,太复杂了……(其实就是一个 bug 搞得我烦躁不安,结果解决了,晚点再花时间自定义一下~)
    jsfaint
        54
    jsfaint  
       2015-10-29 16:48:01 +08:00
    @skydiver 哈哈,还真是拼错了。实际上我的平台上都是全插件,所以一直都没发现。感谢!
    Goooogle
        55
    Goooogle  
       2015-10-29 22:07:32 +08:00
    @htfy96
    SrcExpl 会直接下方的 Split 窗口显示定义外的代码
    https://camo.githubusercontent.com/719788433c69f63f804d3223c70d3e7cd39149b1/687474703a2f2f692e696d6775722e636f6d2f626247564f2e6a7067
    和 Source Insight 一致,不仅仅是跳转。
    Goooogle
        56
    Goooogle  
       2015-10-29 22:09:35 +08:00
    @firemiles 不知道你说的是什么冲突, Tab 么?
    firemiles
        57
    firemiles  
       2015-10-30 08:59:38 +08:00
    @Goooogle 光标进入 SrcExpl 窗口后, YCM 会自动提示窗口内的代码,然后移动一下就光标返回到页面头部,不能正常浏览。这是 github 上的[issues]( https://github.com/wesleyche/SrcExpl/issues/6)
    Goooogle
        58
    Goooogle  
       2015-10-30 09:58:17 +08:00
    @firemiles 这个好像没碰到过
    很长时间没有用 SrcExpl ,也可能是我忘记了
    HmyBmny
        59
    HmyBmny  
       2016-09-16 19:12:00 +08:00
    https://github.com/HmyBmny/vimrc
    一键配置,功能强大, YouCompleteMe 支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2275 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:54 · PVG 08:54 · LAX 16:54 · JFK 19:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.