标签为 "cmap" 的存档

vim利用map映射执行脚本

最近开始捡起C语音来看,《c语言实用基础》,一边看一边做例子学习。然后发现,每次写完一个例子后,都要写几个字符,去编译并执行一下,然后就想看看能不能利用vim的map映射,把这种常规性的命令绑定到一个快捷键上去,查了一些资料后,果真是可以实现的。
先摆出来怎么用的。
打开~/.vimrc文件,并在最后以后之后粘贴上一下代码:

"映射命令行下的c编译并执行
cmap  !gcc % && ./a.out

然后保存并关闭。
再重新打开一个c文件,写好C代码后,进入命令行模式,按下ctrl+r,然后就可以直接编译并执行该c文件了。

下边再解释一下为什么这么写。

  • cmap,指的是命令行下的映射,这种映射,在vim其它模式下是不生效的,这样也可以避免冲突。用法就是cmap {lhs} {rhs} , 在映射命令作用的模式中把键系列 {lhs} 映射为 {rhs}。并且映射后的 {rhs} 也被进行映射扫描。这个特性可以用来进行映射的嵌套和递归。顺带再说一下其它几种map的用法,nmap表示普通模式下,vmap表示可视模式下,imap表示插入模式下,默认的map,是包括普通模式和可视模式的。
  • 表示ctrl+r键
  • %在vim命令行模式里表示当前文件
  • 表示模拟回车按下事件

如果你明白原理了,自己去写一些对自己有帮助的映射脚本吧。

参考文章:
http://vimcdoc.sourceforge.net/doc/map.html
http://www.ibm.com/developerworks/cn/linux/l-vim-script-1/
http://haoxiang.org/2011/09/vim-modes-and-mappin/