vim自动补全的方法总结与应用

发布时间:2020-12-25编辑:脚本学堂
将以下代码,复制粘贴到~/.vimrc中,然后保存,关闭所有的vim,然后打开就可以了。

这里输入以后,光标在括号内部。
 

复制代码 代码如下:
: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> 
 
function ClosePair(char) 
if getline('.')[col('.') - 1] == a:char 
return "/<Right>" 
else 
return a:char 
endif 
endif 

或者用下面的方法也可以实现相同的效果,并且代码更简单,同样也是粘贴到~./vimrc
 

复制代码 代码如下:
inoremap ( ()<ESC>i 
inoremap [ []<ESC>i 
inoremap { {}<ESC>i 
inoremap < <><ESC>i 

在使用大括号时,输入{然后快速的按enter(换行符,那么就可以得到如下的结果;
{
   从这里开始
}

自动补全1:
Ctrl+p和Ctrl+n

举例如下:
先在你正在输入一行:
$total=$ch_arrary[1]+ 

然后在vim中按“Ctrl+p”就会出现出现两个选项,$total和$ch_arrary这两个选项,你可以在这两个选项中再按ctrl+p进行选择。
同样的道理,ctrl+n也是一样的。

自动补全的vim选项:

1:忽略大小写“:set ignorecase
在这里,开启这个选项后,如果你准备补全ins那么INSERT,InSide或则instep等都会最为候选。

2:大小写区分”:set infercase"
同样的,如果你准备补全ins那么就有instep,inside,insert等这样的词。
最基本的用法就是这些。当然还有很复杂的设计。