V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jxwho
V2EX  ›  程序员

vim 的补全插件

  •  
  •   jxwho · 2014-03-09 12:02:23 +08:00 · 9468 次点击
    这是一个创建于 3948 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想问下,vim有什么插件可以让vim支持类似python的flask、pyro4这些第三方的代码提示、补全?
    谢谢~~~
    27 条回复    1970-01-01 08:00:00 +08:00
    hitsmaxft
        1
    hitsmaxft  
       2014-03-09 12:28:52 +08:00
    neocomplete or youcomplete
    jxwho
        2
    jxwho  
    OP
       2014-03-09 12:44:56 +08:00
    @hitsmaxft neocomplete可以支持其他库的补全?不是built-in的
    hitsmaxft
        3
    hitsmaxft  
       2014-03-09 12:53:04 +08:00
    利用 omnicomplete 实现的. 见github的readme呗
    jxwho
        4
    jxwho  
    OP
       2014-03-09 13:22:30 +08:00
    @hitsmaxft 貌似只能实现对Python内置的提醒吧?
    kehr
        5
    kehr  
       2014-03-09 13:28:34 +08:00
    youcomplete是一个好选择。前段时间装上一直报错,退而求其次用了neocomplete,勉强够用。
    jsonline
        6
    jsonline  
       2014-03-09 13:30:34 +08:00
    PyCharm 吧,不折腾
    ChiangDi
        7
    ChiangDi  
       2014-03-09 13:43:53 +08:00
    @kehr youcompleteme那个按文档编译一下就好了。
    jxwho
        8
    jxwho  
    OP
       2014-03-09 13:49:26 +08:00
    @kehr
    @ChiangDi
    youcompleteme可以提示第三方的库吗?
    (之前装有completeme貌似冲突,vim都打不开
    ChiangDi
        9
    ChiangDi  
       2014-03-09 13:58:06 +08:00
    @jxwho 用Vundle装好后启动是会报错,叫你编译个东西,你仔细看看安装指南,很简单的步骤。

    觉得那个Sublime的自动补全插件强太多了,我打算用Sublime了。
    ChiangDi
        10
    ChiangDi  
       2014-03-09 13:59:58 +08:00
    http://img5.tuchuang.org/uploads/2014/03/Screenshot from 2014-03-09 13:57:01.png
    表示很惊讶,谷歌的广告怎么越来越聪明了。。
    jxwho
        12
    jxwho  
    OP
       2014-03-09 14:36:32 +08:00
    @ChiangDi 不行耶,,,我运行了 ./install.sh后,vim直接打不开了...
    jxwho
        13
    jxwho  
    OP
       2014-03-09 14:44:51 +08:00
    @ChiangDi 但是我的虚拟机Ubuntu可以用耶...好奇怪
    ChiangDi
        14
    ChiangDi  
       2014-03-09 15:18:40 +08:00
    @jxwho 我用的就是Ubuntu,所以没遇到问题~~

    也许是你Vim的版本太低了吧。
    cassyfar
        15
    cassyfar  
       2014-03-09 15:25:00 +08:00
    老实用着supertab 其他兼容性不好 neo的还有小bug
    VIM补全确实没什么好插件
    jsonline
        16
    jsonline  
       2014-03-09 15:26:56 +08:00 via Android
    说了不折腾。。。
    wooparadog
        17
    wooparadog  
       2014-03-09 17:05:48 +08:00
    ropevim ...
    9hills
        18
    9hills  
       2014-03-09 17:12:22 +08:00
    我用的spf13-vim 这个东西,里面有三套补全系统,在.vimrc.before.local里面设定

    1. neocomplcache, neocomplete ,同一个人做的,后者较新,但是只支持vim7.3+ 以及编译的时候要加lua

    我用的neocomplete,python补全无问题,包括第三方模块


    2.还有youcompleteme,这个是基于llvm,主攻cpp,当然Python也能弄。这个我还没试过
    9hills
        19
    9hills  
       2014-03-09 17:14:42 +08:00
    一般人,用spf13-vim,然后在.vimrc.before.local 适当精简下就够用了,默认装的插件略多。现在我的设定
    https://github.com/ninehills/dotvim

    let g:spf13_bundle_groups=['general', 'neocomplete', 'programming', 'python', 'go']

    设定完之后,打开vim :Bundle Clean :BundleInstall 搞定。不折腾,以前都是自己折腾插件,太累
    wklken
        20
    wklken  
       2014-03-09 17:58:43 +08:00
    @jiazhoulvke 第三方模块补全需要额外进行配置么?用了很久一直没成功过,有没有配置或文档可以参考?
    Muninn
        21
    Muninn  
       2014-03-10 11:52:12 +08:00
    我是用的youcomplateme 蛮麻烦的 不过设置好了还不错
    jiazhoulvke
        22
    jiazhoulvke  
       2014-03-10 12:59:49 +08:00   ❤️ 1
    @wklken 不需要啊,不过有一点需要注意,就是你的模块都是装在virtualenv里的话就要先在终端里activate,然后在终端里运行vim/gvim,这样才能找到第三方模块的路径
    wklken
        23
    wklken  
       2014-03-10 13:19:58 +08:00
    @jiazhoulvke thx,已解决,少配了个路径
    全部配置:

    Bundle 'Valloric/YouCompleteMe'
    "youcompleteme 默认tab s-tab 和自动补全冲突
    "let g:ycm_key_list_select_completion=['<c-n>']
    let g:ycm_key_list_select_completion = ['<Down>']
    "let g:ycm_key_list_previous_completion=['<c-p>']
    let g:ycm_key_list_previous_completion = ['<Up>']
    "在注释输入中也能补全
    let g:ycm_complete_in_comments = 1
    "在字符串输入中也能补全
    let g:ycm_complete_in_strings = 1
    "注释和字符串中的文字也会被收入补全
    let g:ycm_collect_identifiers_from_comments_and_strings = 1
    "语言关键字补全, 不过python关键字都很短,所以,需要的自己打开
    "let g:ycm_seed_identifiers_with_syntax=1
    let g:ycm_collect_identifiers_from_tags_files = 1

    " 引入,可以补全系统,以及python的第三方包
    let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"
    "直接触发自动补全
    let g:ycm_key_invoke_completion = '<C-Space>'
    openroc
        24
    openroc  
       2014-03-10 15:11:30 +08:00
    mark
    xmsai
        25
    xmsai  
       2014-03-11 23:53:29 +08:00
    请问youcompleteme如何配置能够提示全第三方库的api啊?
    我想自动补全cocos2dx的js @wklken
    xmsai
        26
    xmsai  
       2014-03-11 23:53:54 +08:00
    kehr
        27
    kehr  
       2014-03-17 13:42:32 +08:00
    @ChiangDi

    是按着官方配置来的,安装后可以正常提示自动补全。但是vim编辑保存后,控制台就开始报一串的错,没时间倒腾,就没再管它。

    @jxwho 没有研究过,第三方库的配置。看看 @wklken 的配置吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2595 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:41 · PVG 13:41 · LAX 21:41 · JFK 00:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.