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

vim 的补全插件

  •  
  •   jxwho 2014-03-09 1202:23 +08:00 9764 次点击
    这是一个创建于 4264 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想问下,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     Solana     2811 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 14:28 PVG 22:28 LAX 06:28 JFK 09:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86