用Vim编程——配置与技巧

出自Linux Wiki

在2011年12月15日 (四) 19:08由Chenxing (讨论 | 贡献)所做的修订版本

热切期盼您改进本页,要改进本页,请先登录,并选择编辑。

由于转载不当很可能造成格式的破坏,降低文档价值,本文不推荐转载。但是您确实有转载本文档的权利,如果您一定要转载,请一定保留本文的所有信息。

vi作为优秀的文本编辑器,同样可以胜任程序编写任务。本文介绍使用VI进行程序设计的一些技巧。

目录

配置

基本配置[1]

"开启语法高亮
syntax on
"依文件类型设置自动缩进
filetype indent plugin on
 
"显示当前的行号列号:
set ruler
"在状态栏显示正在输入的命令
set showcmd

行号的显示与隐藏[2]

"显示行号:
set number
"为方便复制,用<F2>开启/关闭行号显示:
nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>

启用Modeline(即允许被编辑的文件以注释的形式设置Vim选项,详见Vim Wiki: Modeline magic[3]

set modeline

如果终端使用的是深色背景:

"为深色背景调整配色
set background=dark

代码补全

Vim 7已经内置了代码补全功能[4],补全操作可分为两种:

关键字补全
即简单地补全到文档中已有的词,快捷键为 Ctrl-NCtrl-P
智能补全
Vim 7中引入 Omni Complete,可根据语义补全,快捷键为 Ctrl-X Ctrl-O

注释管理

手动地逐行加注释一般较繁,可用插件来快速注释(或取消注释)代码。

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

如有其它需求,也可考虑commentsEnhCommentify等插件。

缩进

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

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

插入模式
Ctrl-T增加缩进,Ctrl-D减小缩进。
命令模式
>> 右缩进, << 左缩进,注意n<< n>>是缩进多行,如4>>
可视模式
< > 用于左右缩进, n< n> 可做多节缩进,如 2>

另外,= 可对选中的部分进行自动缩进;]p可以实现p的粘贴功能,并自动缩进。

光标移动

gd 到局部变量的定义
gD 到全局变量的定义
[[ 到当前块起始的{处
]] 到当前块结束的}处
Ctrl-O 返回到跳转前的地方

配合ctags,还可使用Ctrl-]进入函数,Ctrl-T返回

其它

K 转到当前函数的文档,需要安装manpages-dev。
:set number 或 :set nu 显示行号
:set nonumber 或 :set nonu 不显示行号
Ctrl-N 或 Ctrl-P 插入模式下的自动补全功能。

括号匹配

在命令状态下,可以使用%进行括号匹配。即在括号处按下"%",光标会跳转到与之匹配的括号。

在VIM 7或更高版本中,支持在插入状态下括号的自动匹配,即高亮显示光标所在处的括号和与之匹配的括号。若要关闭此功能,可用

:NoMatchParen

如果要再开启,可以用

:DoMatchParen

如果要更改颜色,可以用hi,例如:

:hi MatchParen ctermbg=blue ctermfg=white

如果要更改需要匹配的符号,可以编辑matchpairs选项


参考资料

  1. How to setup VIM properly for editing Python files - *.py (StackOverflow)
  2. Python and vim: Make your own IDE (2009.2)
  3. Python官网上的Vim介绍
  4. 细说 Vim 7 之新特性-LinuxToy
个人工具
简体繁体转换