Vimscript编程指南

缓存的本地缩写

上一章的内容比较纠结,这章我们看一些比较简单的东西。我们已经学习了怎么定义本地缓存的映射和配置项,现在让我们看看缓存的本地映射。

再次打开foo和bar文件,切换到boo文件,并且运行下面的命令: :iabbrev <buffer> --- &mdash;

在foo文件里,进入insert模式,输入以下文本:

Hello --- world.

Vim会帮你把---替换掉。现在切换到bar文件,vim没有进行替换,这个你现在应该不持久了,因为我们是在foo文件的缓存里定义了本地缩写词。

autocommand和缩写词

我们来把这些本地缓存的缩写词和autocommand配对起来,来组成一个小的系统。

运行下面的命令: :autocmd FileType javascript :iabbrev <buffer> iff if ( ) {}<left><left><left><left><left> :autocmd FileType python :iabbrev <buffer> iff if:<left>

打开一个Javascript文件然后输入缩写词iff。然后打开一个Python文件,也试试这个缩写词。Vim会根据不同的当前文件的类型进行不同的缩写词替换。

练习

  • 创建一些新的缩写片段词用来替代你在某些特定文件里经常做的操作。一些可以替代的缩写有大部分语言里的return,javascript里的function,已经HTML文件里的“和”
  • 记住最好的这些技巧的方式是禁止它们原来的操作方式。运行:iabbrev return NOPENOPENOPE会强行让你用缩写来代替原来的操作。添加这些训练的代码到你的vimrc脚本里来节省时间。