几个有用的vim插件

1、自动补全new-omni-completion、OmniCppComplete

new-omni-completion是vim自带的全能补全工具,他要依据ctags生成的tags文件。

按下"Ctrl+X Ctrl+O"会进行自动补全;

默认会有预览窗口,通过在~/.vimrc文件中加入set completeopt=longest,menu

可以关掉智能补全时的预览窗口。

 

vim自动补全——OmniCppComplete

vim的自动补全功能可通过其插件OmniCppComplete实现。
安装OmniCppComplete
mn@mn-HP:~$ vim-addons install omnicppcomplete
配置OmniCppComplete
在vim配置文件/home/user/.vimrc中加入如下的配置:
View Code
 1     "-- omnicppcomplete setting --
 2     " 按下F3自动补全代码,注意该映射语句后不能有其他字符,包括tab;否则按下F3会自动补全一些乱码
 3     imap <F3> <C-X><C-O>
 4     " 按下F2根据头文件内关键字补全
 5     imap <F2> <C-X><C-I>
 6     set completeopt=menu,menuone " 关掉智能补全时的预览窗口
 7     let OmniCpp_MayCompleteDot = 1 " autocomplete with .
 8     let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->
 9     let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
10     let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
11     let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
12     let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window
13     let OmniCpp_GlobalScopeSearch=1 " enable the global scope search
14     let OmniCpp_DisplayMode=1 " Class scope completion mode: always show all members
15     "let OmniCpp_DefaultNamespaces=["std"]
16     let OmniCpp_ShowScopeInAbbr=1 " show scope in abbreviation and remove the last column
17     let OmniCpp_ShowAccess=1 

(前几行就是提供了C++中的./->/::等操作符的提示和自动完成)。

OmniCppComplete是基于ctags数据库即tags文件实现的(基于ctags生成的索引信息来实现自动补全的),所以在 ctags -R生成tags时还需要一些额外的选项,这样生成的tags文件才能与OmniCppComplete配合运作。
使用下列命令生成tags文件,就可以 与OmniCppComplete配合运作:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
--c++-kinds=+p  : 为C++文件增加函数原型的标签
--fields=+iaS   : 在标签文件中加入继承信息(i)、类成员的访问控制信息(a)、以及函数的指纹(S)
--extra=+q      : 为标签增加类修饰符。注意,如果没有此选项,将不能对类成员补全
 
# vim自动补全功能的测试
# 为了测试自动补全功能,我们先下载C++一份C++标准库的源代码。
mn@mn-HP:~$ sudo apt-get install build-essential
# 然后在/usr/include/c++下就可以找到标准库的头文件了。
mn@mn-HP:~$ cd /usr/include/c++
mn@mn-HP:/usr/include/c++$ ls
4.6  4.6.3
# 在此文件夹下生成能与OmniCppComplete配合运作的tags文件
mn@mn-HP:/usr/include/c++$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
mn@mn-HP:/usr/include/c++$ ls
4.6  4.6.3  tags
# 在vim的配置文件中如下内容,然后在编程的时候就可以使用自动补全功能了。
mn@mn-HP:/usr/include/c++$ vi ~/.vimrc
  1. set tags+=/usr/include/c++/tags
# 用vi打开前面的Test.c文件,在printf("Hello World!\n")下一行中,输入pri,然后按下Ctrl+X Ctrl+O,此时vi会弹出一个窗口,所有以pri开头的tag都会出现在这个窗口中,printf就出现在第6行中
mn@mn-HP:~$ cd ~
mn@mn-HP:~$ vim Test.c
注意:在自动补全的点,Vim必须知道可能补全的定义。比如说,在namespace std命名空间下的变量和函数,必须要用using namespace std;暴露出来,否则是不能补全的。在.cpp文件中还可以,在.h文件中这样就不是好的做法了。暂时不知道这个问题是由于我自己配置错误还是程序没有 实现。
当自动补全下拉窗口弹出后,一些可用的快捷键:
Ctrl+P  向前切换成员
Ctrl+N  向后切换成员
Ctrl+E  表示退出下拉窗口, 并退回到原来录入的文字
Ctrl+Y  表示退出下拉窗口, 并接受当前选项
其他补全方式:
Ctrl+X Ctrl+L 整行补全
Ctrl+X Ctrl+N  根据当前文件里关键字补全
Ctrl+X Ctrl+K  根据字典补全
Ctrl+X Ctrl+T  根据同义词字典补全
Ctrl+X Ctrl+I  根据头文件内关键字补全
Ctrl+X Ctrl+]  根据标签补全
Ctrl+X Ctrl+F  补全文件名
Ctrl+X Ctrl+D  补全宏定义
Ctrl+X Ctrl+V  补全vim命令
Ctrl+X Ctrl+U  用户自定义补全方式
Ctrl+X Ctrl+S  拼写建议
帮助文档
:help omnicppcomplete
 
2、加速你的补全 -- 插件: SuperTab
下载地址 http://www.vim.org/scripts/script.php?script_id=1643
版本 1.6
安装

下载supertab.vba,用vim打开($ vim supertab.vba),然后Source the file (:so %)

  此时,supertab.vim 已放入 ~/.vim/plugin 文件夹、supertab.txt已放入~/.vim/doc中了。

手册 supertab.txt
在你的~/.vimrc文件中加上这两句:

" 0 - 不记录上次的补全方式
" 1 - 记住上次的补全方式,直到用其他的补全命令改变它
" 2 - 记住上次的补全方式,直到按ESC退出插入模式为止

let g:SuperTabRetainCompletionType=2      

 

" 设置按下<Tab>后默认的补全方式, 默认是<C-P>,
" 现在改为<C-X><C-O>. 关于<C-P>的补全方式,

" 还有其他的补全方式, 你可以看看下面的一些帮助:
" :help ins-completion
" :help compl-omni                
let g:SuperTabDefaultCompletionType="<C-X><C-O>"

以后当你准备按"Ctrl+X Ctrl+O"的时候直接按<Tab>就好了
 
3、提示函数原型echofunc
echofunc可以在命令行中提示当前输入函数的原型。
echofunc下载地址:http://www.vim.org/scripts/script.php?script_id=1735
下载完成后,把echofunc.vim文件放到 ~/.vim/plugin文件夹中
当 你在vim插入(insert)模式下紧接着函数名后输入一个"("的时候, 这个函数的声明就会自动显示在命令行中。如果这个函数有多个声明, 则可以通过按键"Alt+-"和"Alt+="向前和向后翻页, 这个两个键可以通过设置g:EchoFuncKeyNext和g:EchoFuncKeyPrev参数来修改。这个插件需要tags文件的支持, 并且在创建tags文件的时候要加选项"--fields=+lS"(OmniCppComplete创建的tag文件也能用), 整个创建tags文件的命令如下:
$ ctags -R --fields=+lS
其他插件说明详见echofunc.vim
如果你在编译vim时加上了"+balloon_eval"特性,那么当你把鼠标放在函数名上的时候会有一个tip窗口弹出, 该窗口中也会有函数的声明。
 
下载地址 http://www.vim.org/scripts/script.php?script_id=1643
版本 0.43
安装 把supertab.vim 文件丢到 ~/.vim/plugin 文件夹就好了
手册 supertab.vim 文件头部, 和命令 ":SuperTabHelp"

4、markdown语法高亮vim-markdown

下载markdown-1.2.2.vba.gz,用vim打开,运行命令

:source %

 此时所有文件将会解压到~/.vim的相应文件,此时安装成功。

posted on 2012-06-01 15:37  zzwworld  阅读(2501)  评论(0)    收藏  举报

导航