(,“,‘,[符号的自动闭合
我们可以用简单的键映射来实现以上这些成对符号的闭合,也就是在插入模式下输入这些符号的左边部分,键映射将自动完成右边部分,并保持插入模式,光标保持在成对符号的当中以便在其中输入字符。比如:
:inoremap ( ()<Esc>i
以上的设置的意思是在插入模式时将输入的(转换为()然后回到正常模式,再用i回到插入模式,这时候光标位置正好落在)之前。同理可以完成其它符号的自动闭合。
但是这样的设置,在完成在成对符号中的输入后,要跳出成对符号继续输入时还是不方便。下面的方法就可以来解决这个问题:
...
:inoremap ( ()<Esc>:let leavechar=")"<CR>i
:inoremap [ []<Esc>:let leavechar="]"<CR>i
...
:imap <C-l> <Esc>:exec "normal f" .leavechar<CR>a
这里的设置分两段,第一段在之前提到的方法上又加了:
let leavechar=")"<CR>
这里表示在闭合符号的同时,将对应的右侧符号附给leavechar这个变量,<CR>表示回车。
第二段中的<C-l>
表示CTRL+l
,exec "normal f" .leavechar<CR>a
表示在正常模式下用命令f来定位到leavechar中所保存的字符,然后用a命令在其后插入光标,这样就做到了跳出成对符号继续编辑的要求。
对现有的文字添加成对符号
有的时候我们需要对已经输入的字符加上成对符号。 一般情况是我们选中一段文字然后对其加上成对符号,我们可以这样来实现:
:vnoremap ( <Esc>`>a)<Esc>`<i(<Esc>
这里要注意的是`>
和`<
的用法,前者表示定位到所选区域的最后一个字符,而后者表示定位到所选区域的最后一个字符,这样就能在所选区域的开头和结尾加上成对符号了。
根据上面的说明,我们可以根据需要将这些设置写入VIM的设置文件.vimrc里,这样就可以让Vim来简化我们的输入操作了。
转载自:http://blog.youkuaiyun.com/hardy_2009/article/details/6388704