codecamp

Vimscript 检测文件类型

让我们创建一个Potion文件作为插件的测试样本。

factorial = (n):
    total = 1
    n to 1 (i):
        total *= i.
    total.

10 times (i):
    i string print
    '! is: ' print
    factorial (i) string print
    "\n" print.

这个代码创建了一个简单的阶乘函数并调用它10次,逐次输出结果。继续前进并用potion factorial.pn执行它。 输出结果应该像这样:

0! is: 0
1! is: 1
2! is: 2
3! is: 6
4! is: 24
5! is: 120
6! is: 720
7! is: 5040
8! is: 40320
9! is: 362880

如果你得不到这个输出,或者你得到一个错误,停下来并排查问题所在。 这个代码应该会正常工作的。

这跟学习Vimscript没有关系,不过它能让你成为更好的程序猿。

检测Potion文件

用Vim打开factorial.pn并执行下面命令:

:set filetype?

Vim将显示filetype=,因为它还不认识.pn文件。让我们解决这个问题。

在你的插件的repo中创建ftdetect/potion.vim。在它里面加入下面几行:

au BufNewFile,BufRead *.pn set filetype=potion

这创建了一个单行自动命令:一个设置.pn文件的filetype为potion的命令。很简明吧。

注意我们_没有_像之前经常做的那样使用一个自动命令组。 Vim自动替你把ftdetect/*.vim文件包装成自动命令组,所以你不需要操心。

关闭factorial.pn并重新打开它。现在再执行前面的命令:

:set filetype?

这次Vim显示filetype=potion。当Vim启动时,它加载~/.vim/bundle/potion/ftdetect/potion.vim里的自动命令组, 而当它打开factorial.pn时,自动命令起效,设置filetypepotion

既然已经让Vim识别了Potion文件,我们可以继续前进来做些有用的东西了。

练习

阅读:help ft。不要担心你看不懂里面的内容。

阅读:help setfiletype

修改Potion插件中的ftdetect/potion.vim。 用setfiletype代替set filetype

Vimscript 新希望:用Pathogen配置插件
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; }