您的位置:首页 > 其它

辛星深入分析vim的自己主动补全功能以及vim的映射

2016-03-13 12:35 351 查看
曾经对于vim的自己主动补全功能,都是须要的时候从网上下载点配置项,然后复制到自己的vimrc上去,自己也不知道是什么意思。结果发现搜索到的非常多自己主动补全的方式都非常另类,有的喜欢在补全大括号的时候自己主动换行,还有的喜欢在补全大括号的时候自己主动缩进一下,那么,我们花几分钟时间了解一下,自己写出来这些配置,何乐而不为呢?

********************************按键映射******************************

1.首先分清一个概念,那就是nnoremap和inoremap,第一个是在普通模式下生效的映射。第二个是在插入模式下生效的映射。咱们一般都须要在插入模式下使用的,因此咱们通常使用inoremap。那么提到了映射,什么是映射呢?

2.所谓映射,就是当我们按下某个键的时候。它会运行还有一部分内容,比方说咱们使用map T:q!,那么当我们在命令模式下按T而且回车。就会退出vim。除了map之外。还有nmap表示在normal模式下生效,imap在insert模式下生效。vmap在visual模式下生效。map在全部模式下生效。

3.那么设置一个映射使用:map <要映射的键> <被映射的按键序列>,假设我们要解除映射,使用unmap命令,清除全部映射使用mapclear命令。

4.咱们通常把这些映射写入配置文件vimrc中去,这样一次写入,永久生效。

**************************键位说明**********************************

1.不论什么能够直接显示的字符都能够直接输入。可是有两个例外,即反斜线和<。由于我们用反斜线表示转义,而<有特殊作用。

2.反斜线用两个反斜线表示,或者使用<Bslash>

3.而<须要用\<或者<lt>来表示。

4.<key>的意思是特殊键,咱们介绍一些经常使用的特殊键:

<Esc> 表示Escape键,

<C-G>表示Ctrl-G键

<Up>表示光标上移

<C-LeftMOuse>表示Ctrl而且鼠标左键点击

<Space>表示空格

<Tab>表示Table键

<CR>就是回车键

**********************開始写我们自己的自己主动补全***********************

1.首先给出我的自己主动补全的格式把,首先值得说明的是,这段代码是写在_vimrc里面的,以下为大家细致分析一下:

"自己主动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR><CR>}<ESC>0ki<Tab>
:inoremap } <c-r>=ClosePair('}')<CR>
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
2.这里的:inoremap表示是在插入模式下的映射。首先第二行的( 即先写(),然后使用esc回到命令模式下,然后运行i来进入到插入模式下。

3.而当我输入{ 的时候,看它的命令。首先输入一个{,然后是<CR>表示回车换行,然后又是一个换行。然后输入},然后使用esc回到命令模式下。然后我们利用0命令回到行首。然后咱们使用k命令把鼠标移动到上一行,然后运行i命令进入到插入模式,然后咱们使用<Tab>表示插入一个制表符。

4.当然我仅仅定义了小括号和大括号的自己主动补全,对于中括号我并没有使用自己主动补全,大家能够自行去改动。

5.vim在这点上使用还是蛮舒服的。毕竟感觉非常自由。

6.传播编程知识,振兴中华软件。辛星,期待您的关注。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: