Vim的使用技巧-自动闭合成对符号

来源:互联网 发布:unix 网络编程 编辑:程序博客网 时间:2024/06/01 09:05

(,“,‘,[符号的自动闭合

我们可以用简单的键映射来实现以上这些成对符号的闭合,也就是在插入模式下输入这些符号的左边部分,键映射将自动完成右边部分,并保持插入模式,光标保持在成对符号的当中以便在其中输入字符。比如:

  :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.csdn.net/hardy_2009/article/details/6388704

原创粉丝点击