vim_thumb

Learning Vimscript The Hard Way — (13) Buffer-Local Abbreviations/缓冲区局部缩写

缓冲区局部缩写

上一章有点多,我们现在来些简单的。我们已经看到如何定义一个局部缓冲的映射和选项,现在让我们用同样的办法应用在缩写上面。

再次打开你的 foobar 文件,转到 foo,然后运行下面的命令:

:iabbrev <buffer> — —

当我们在 foo 里面的插入模式里面输入下面的文本:

Hello, — world.

Vim 会将 为你替换掉。现在转到 bar 然后再试一下。意料之中,它没有被替换掉,因此我们为 foo 这个缓冲区定义了一个局部缩写。

自动命令和缩写

让我们把自动命令和缩写结合起来使用,然后自己来做一个小小的“代码段(snippet)”系统。

运行下面的命令:

:autocmd FileType python     :iabbrev <buffer> iff if:<left> :autocmd FileType javascript iabbrev <buffer> iff if ()<left>

打开一个 Javascript 文件然后试一下这个 iff 缩写。然后打开一个 Python 文件,也试一试。Vim 会根据当前文件的类型执行恰当的缩写。

练习

为你平常经常使用的文件类型多创建几个“代码段”缩写。比较好的选择有:大多数语言的 return,javascript 的 function,然后有些诸如 HTML 文件的 之类的东西。

将这些代码段都加到你的 ~/.vimrc 里面。

记住:熟习这些代码段的最好方法就是让旧的做法失效。运行 :iabbrev <buffer> return NOPENOPENOPE 会强迫你使用缩写。将这些“训练”的片段加进去以匹配你刚才创建的那些,好节省【学习】的时间。


【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2014/10/vimscript-hard-13.html【Learning Vimscript The Hard Way — (13) Buffer-Local Abbreviations/缓冲区局部缩写】

发表评论

电子邮件地址不会被公开。 必填项已用*标注