codecamp

Vimscript 本地缓冲区缩写

上一章讲的东西比较多,完全理解会有点难,所以这一章来点容易的。我们已经学习了如何定义本地缓冲区的映射和设置选项,现在以同样的方式来学习本地缓冲区的缩写。

打开你的foobar这两个文件,切换到foo,然后执行下面的命令:

:iabbrev <buffer> --- &mdash;

在文件foo下进入插入模式输入下面的文本:

Hello --- world.

Vim会为你将---替换为“Hello“。现在切换到bar试试。在bar中替换不会发生,这是因为我们所定义的缩写被设置为只用于foo的本地缓冲区。

自动命令和缩写

使用本地缓冲区的缩写和自动命令来创建一个简单的“snippet”系统。

执行下面的命令:

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

打开一个Javascript文件然后输入iff缩写。然后再打开一个Python文件试试。Vim会依据文件类型在当前行执行合适的缩写。

练习

为你经常编辑的文件创建更多的针对不同类型的文件的“snippet”缩写。你可以为绝大多数语言创建return的缩写,为javascript创建function的缩写,以及为HTML文件创建&ldquo;&rdquo;的缩写。

将你创建的snippets加入到你的~/.vimrc文件中。

记住:最好的学习使用这些snippets的方法是_禁用_之前你做这些事情的方式。执行:iabbrev <buffer> return NOPENOPENOPE会_强迫_你使用缩写,这个命令在你输入return的时候不会输出任何东西。为了节省学习的时间,为你刚才创建的snippets都创建一个上面的缩写来_强迫_你使用你创建的snippets。

Vimscript 自动命令
Vimscript 自动命令组
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

vi命令手册

Vimscript编程参考

Vim 其他内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }