Ubuntu 16.04 下 Vim安装及配置(2)

如需自动补全,可安装AutoComplPop插件,安装后如需在补全是显示文档(预览),可加入设置:

let g:acp_completeoptPreview = 1 注释管理

经常要将一段代码注释掉或取消注释,而尤其对于某些只支持单行注释的语言来说,逐行加注释很麻烦,这时快速注释(或取消注释)代码的插件就显得很有用了。

常见的注释管理插件为The NERD Commenter,默认支持多种语言,使用方法也很简单:只需在可视(V)模式中选择一段代码,按下\cc加逐行注释,\cu取消注释,\cm添加块注释。

如有其它需求,也可考虑comments、EnhCommentify等插件。

缩进

使用自动缩进可能需要设置,vim中对自动缩进的详细设置办法见Vim代码缩进设置。

在不同的模式中调整缩进的方法不同:

插入模式

Ctrl-T增加缩进,Ctrl-D减小缩进。

命令模式 >> 右缩进, << 左缩进,注意n<< 或 n>>是缩进多行,如4>> 可视模式

< 、 > 用于左右缩进, n< 、 n> 可做多节缩进,如 2> 。
另外,= 可对选中的部分进行自动缩进;]p可以实现p的粘贴功能,并自动缩进。

代码浏览与跳转

代码跳转类似于IDE中的Ctrl+点击功能。与代码补全类似,代码浏览工具亦可分为基于文本分析的和基于代码理解的两类。

简单代码跳转

在命令模式下可直接使用下述指令:[8]

跳转到定义

gd到局部变量的定义,gD到全局变量的定义

搜索 *, # 可对光标处的词向前/向后做全词搜索,g*, g# 做相对应的非全词匹配搜索 代码块首尾

[[, ]] 可跳到当前代码块起始或结束的大括号处。

括号首尾

% 可在配对的括号、块首尾之前跳转。

位置历史

Ctrl-O 在历史记录中后台,Ctrl-I 则为前进。

基于代码理解的跳转

该功能依赖于ctags工具。[9]安装好ctags后,在存放代码的文件夹运行

ctags -R .

即可生成一个描述代码结构的tags文件。

提示: ctags的功能很强大,更详细的配置请参考其文档。

建议在~/.vimrc中添加如下配置以使Vim在父目录中寻找tags文件[10]:

set tags=tags;/

设置好后,可在Vim中使用如下功能:Ctrl-]转至最佳匹配的相应Tag,Ctrl-T返回上一个匹配。如果有多个匹配,g Ctrl-]可显示所有备选的tags。如有需要,可互换Ctrl-]和g Ctrl-] [11]:

"在普通和可视模式中,将<c-]>与g<c-]>互换 nnoremap <c-]> g<c-]> vnoremap <c-]> g<c-]> nnoremap g<c-]> <c-]> vnoremap g<c-]> <c-]> 就地编译和错误处理

使用:make可调用make命令编译程序,配合Vim内置的QuickFix功能,可以像IDE一样打开一个窗口展示编译错误和警告,通过它还可以方便地跳转到各编译错误的产生位置。

常用的命令有:cw[indow](如有错误打开quickfix窗口)、:cn(跳到下一个错误)、:cp(跳到前一个错误)等,具体可:help quickfix。

如果想在有错时自动打开quickfix窗口[12]:

" 编译后,如有错误则打开quickfix窗口。(光标仍停留在源码窗口) " " 注意:需要开启netsting autocmd autocmd QuickFixCmdPost [^l]* nested cwindow autocmd QuickFixCmdPost l* nested lwindow

默认情况下,:mak[e]会跳转到第一个错误,如果不想启用这个功能,请使用:make!。

代码折叠

代码较长时可启用代码折叠功能,如按语法高亮元素折叠:

set foldmethod=syntax "默认情况下不折叠 set foldlevel=99

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14476.html