Vim高级应用


关于vim最基本的一些应用,比如三种模式的转换,插入命令,怎么删除命令,我想熟悉vim的人都很了解了,我就不多说了,在这里我将一下vim的高级配置。

自动缩进:

在做c语言编程的时候,常常不想每一行都从第一列开始,而是想让vim自动帮忙布局,让程序在vc6.0中一样有层次感,最简单的办法就是,每次进入vim中输入命令

:set cindent shiftwidth=4   写代码的时候就会自动缩进

也可以在配置文件中最后一行加入set cindent shiftwidth=4这样在每次打开vim编写c/c++都会自动缩进了(Ubuntu的配置文件vimrc在 /etc/vim 目录下面).

(注意,在vim直接输入命令前面有 冒号;而在配置文件下修改前面是没冒号的,而且是永久的,而在vim输入命令这是一次性的)

同时想要显示行号 :(在配置文件修改时不要加冒号)

:set nu

取消显示行号

:set nonu


设置语法高亮显示

看到配置文件里有一行是syntax on没,如果没有引号则默认是高亮显示的,如果有引号,则表示是注释,去掉引号即可高亮显示。


自动补全:

最简单的自动补全是:在输入函数或者变量的时候输入前几个字符之后输入Ctrl+N的命令,即可实现自动补全的功能。

要实现括号的自动补全:

在vimrc文件最下面加上

:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
: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>ifunction! ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endifendfunction
即可。

相关内容