2013-04-26 64 views
5

我会有一个自动完成在崇高的文本,但在VIM中。使用Vim中的代码完成作为崇高的文本

我想这种行为:

  • 当我开始键入一个字,我想有一个盒子,其建议的完成;
  • 在建议的完成中,我想要使用最后一个单词;
  • 我想通过ctags查找函数;
  • 我想要使用我正在使用的语言的标准功能;
  • 我想要有片段;

有很多关于vim自动完成的插件,我迷路了。

+3

欢迎来到Vim;它庞大的插件库既是祝福也是诅咒;你发现了什么,你喜欢什么,一个功能对另一个功能有多重要?!最后,你不会自己尝试一些插件;每个人的偏好都不一样,在Vim中没有一成不变的解决方案。 – 2013-04-26 09:00:37

回答

7

目前我正在使用YouCompleteMe ...这是非常好的,但我不知道它是否可以配置为根据最后用法对单词进行排序。它具有一般模糊完成功能,可以处理任何文件类型(您可能会发现模糊完成很棒),但它也包含通过libclang进行的C/C++/Objective-C/Objective-C++的语义完成。

特别是,我从源代码编译最新的clang,libC++和VIM来调整和设置VIM以使用我的环境python/ruby​​/etc并得到一个体面的C++ 11支持。然后,我也从源代码编译YouCompleteMe,尽管我首先通过插件管理器来安装它。我目前的选择是VAM,但也有其他人喜欢Vundle和病原体。

+0

我阅读了关于YCM的文档,并没有看到任何关于片段的内容。我看到了这一行“YCM淘汰了以下Vim插件,因为它具有所有的特性加上额外的:autocomplpop”但是在autocomplpop的文档中,我看到了这一行“另外,您可以创建用户定义的完成,并且snipMate的触发完成自动弹出选项已设置。“我查看了YCM的源代码,并没有看到任何关于片段的内容。有没有办法用YCM支持片段? – Dougui 2013-04-26 18:55:28

+0

@Dougui最近我见过snippet支持。完成菜单中还列出了可能的片段,这通过UltiSnips集成完成,YCM帮助显示可用片段,UltiSnips将提供它们。 http://stackoverflow.com/q/14896327,https://github.com/Valloric/YouCompleteMe/pull/257 – 2013-04-26 19:21:48

+0

是的,最近ultisnips的支持已经实施。 Ctags集成在待办事项列表中,但尚未完成。我认为这个插件确实与您想要的最接近。 – 2013-04-27 09:59:53

3

试试这个方法:

for plugin in plugins 
    try 
     install plugin 
     read doc 
     test plugin 
    catch 
     remove plugin 
    endtry 
endfor 

此外,请务必阅读并追捕插件,然后明白:h ins-completion

+0

你的代码在我的vim(v7.3)中不起作用!但我给你upvote! – Kent 2013-04-26 09:19:16

+0

呵呵,如预期。 – romainl 2013-04-26 10:09:46

+1

不要尝试添加此代码...阅读它,你会明白。这是一个笑话。 – Dougui 2013-04-26 15:12:37