Linux Vim插件配置

Vim编辑器被称为“编辑器之神“,是Linux系统中最常用的两个文本编辑器之一(另一个是被称为“神之编辑器”的Emacs)。GVim是图形化的Vim,很多版本的Linux都将GVim作为系统的一部分预装在客户端,但是最原始的GVim界面简单,功能都需要通过命令来实现,无形中提高了学习Vim的难度。

虽然Vim入门较难,但是能够一直作为Linux常用文本编辑器之一,主要取决于它的可定制性。除了通过修改配置文件.Vimrc开启或关闭Vim功能外,我们还可以找到很多插件(或者自己编写插件)来扩展Vim的功能。下面就列举一些常用的GVim插件。

1、Ctags

下载地址:http://ctags.sourceforge.net/

功能:扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来。

安装:下载ctags-x.x.tar.gz并解压,进入解压后的文件夹运行./configure && make && make INSTALL。

使用:$ctags -R


2、taglist

下载地址:http://www.vim.org/scripts/script.php?script_id=273

功能:查看Vim编辑文件包含的函数列表,或是类包含的方法列表。

安装:

1)下载taglist;

2)解压后将plugin和doc文件夹中的文件分别拷贝至$HOME/.vim文件夹内对应的目录结构中。

3)重启GVim,输入:TlistToggle打开/关闭taglist窗口。

配置:添加以下代码到$HOME/.vimrc

""""""""""""""""""""""""""""""""""""""""""""""
"  Taglist
""""""""""""""""""""""""""""""""""""""""""""""

nmap <C-F5> <Esc>:!ctags -R *<CR>         " 使用ctrl+<F5>键运行Ctags
let Tlist_Auto_Open = 1                 " 启动vim自动打开taglist窗口
let Tlist_Use_Right_Window = 1          " 设置taglist窗口出现在右侧
let Tlist_File_Fold_Auto_Close = 1      " taglist只显示当前文件tag,其它文件的tag都被折叠起来
let Tlist_Exit_OnlyWindow = 1           " 如果taglist窗口是最后一个窗口退出vim
let Tlist_Sort_Type = "name"            " 设置taglist以tag名字进行排序
let Tlist_Use_SingleClick = 1           " 单击tag就跳转
let Tlist_Process_File_Always = 1       " 设置taglist始终解析文件中的tag,不管taglist窗口有没有打开
map <silent> <F7> :TlistToggle<cr>      " 使用<F7>键就打开/关闭taglist窗口
if has("gui_running")
    let Tlist_Inc_Winwidth = 0
else
    let Tlist_Inc_Winwidth = 1
endif


3、minibufexpl

下载地址:http://www.vim.org/scripts/script.php?script_id=159

安装:下载minibufexpl.vim到$HOME/.vim/plugin/文件夹。

功能:显示已打开的文件列表。

配置:添加以下代码到$HOME/.vimrc

""""""""""""""""""""""""""""""""""""""""""""""
" minibufexpl.vim
""""""""""""""""""""""""""""""""""""""""""""""

" ctrl+tab shift+ctrl+tab 切换缓冲区里的文件
let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 
let g:miniBufExplModSelTarget = 1 

使用:CTRL+TAB在不同文件之间切换。


4、NERD tree

下载地址:http://www.vim.org/scripts/script.php?script_id=1658

功能:在Vim侧边增加窗口显示文件树形目录。

安装:下载nerdtree.zip文件,解压缩之后,把plugin/NERD_tree.vim 和doc/NERD_tree.txt分别拷贝到$HOME/.vim/plugin 和$HOME/.vim/doc 目录。

配置:添加以下代码到$HOME/.vimrc

""""""""""""""""""""""""""""""""""""""""""""""
" NERDTree
""""""""""""""""""""""""""""""""""""""""""""""
map <silent> <F6> :NERDTreeToggle<cr>      " 使用<F6>键就打开/关闭NERDTree窗口
let NERDTreeMinimalUI = 1                               " 关闭书签标签('Press ? for help')
let NERDTreeDirArrows = 1                               "  改变目录结点的显示方式(+/~)


5、代码补全

1)Autocomplpop

vim自带的代码补全功能在编辑代码时需要键入ctrl+n才能弹出智能提示菜单。而大多数IDE中,只要代码输入到相应的位置,补全提示就会自动的弹出来。因此需要给vim增加插件支持这些功能。Autocomplpop就是这样一个插件。

下载地址:http://www.vim.org/scripts/script.php?script_id=1879

功能:代码自动补全

安装:下载vim-autocomplpop.zip文件,解压缩之后,把相应的文件分别拷贝到$HOME/.vim/plugin 和$HOME/.vim/doc 目录。

2)OmniCppComplete

Autocomplpop的自动提示功能虽然可以实现提示但是对于C、C++开发者来说并不完善,例如不能自动补全类成员,因此需要OmniCppComplete配合使用。

下载地址:http://www.vim.org/scripts/script.php?script_id=1520

安装:下载vim-autocomplpop.zip文件,解压缩至$HOME/.vim/目录下。

配置:添加以下代码到$HOME/.vimrc

""""""""""""""""""""""""""""""""""""""""""""""
" OmniCppComplete配置
""""""""""""""""""""""""""""""""""""""""""""""
set nocp
filetype plugin on
map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>   "使用F5键生成OmniCppComplete使用的tag文件
set completeopt=menu
set cindent

:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
:inoremap > <c-r>=ClosePair('>')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i

function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf


生成系统tags文件
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/tags/systags /usr/include /usr/local/include

在vimrc末尾加入如下命令:

let OmniCpp_GlobalScopeSearch = 1 " 0 or 1
let OmniCpp_NamespaceSearch = 1 " 0 , 1 or 2
let OmniCpp_DisplayMode = 1
let OmniCpp_ShowScopeInAbbr = 0
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1

set tags+=~/.vim/tags/systags
set tags+=tags

Autocomplpop和OmniCppComplete的使用前提是已经安装了Ctags,使用Ctags生成tag文件后才能正常使用这两个插件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值