【发布时间】:2013-04-07 07:42:03
【问题描述】:
为了回应 SuperUser 上的this question,我写了一个小 vimscript,它将检测符号链接的文件类型并更改语法突出显示:
au BufNewFile,BufRead * if &syntax == '' |无声!执行 (':set filetype='.matchstr(resolve(@%),'.[^.]*$')[1:]) |结束
所以如果我打开一个没有扩展名的符号链接,它会查看它指向的文件的扩展名。
它可以工作,但一个意想不到的结果是现在我的.vimrc 文件的语法突出显示消失了。默认情况下,我的 .vimrc 文件具有 vim 语法高亮显示(:echo &syntax 返回 vim)。
但是当我添加以上行时,:echo &syntax 返回vimrc(无效类型)。
我不知道为什么会这样。 &syntax=='' 不应该评估为假,从而保留&syntax==vim 吗?我怀疑我的代码在语法高亮设置为vim 之前正在执行。但是,.vimrc 的语法高亮究竟如何(以及何时) 设置为 vim?此外,我怎样才能让我的脚本按应有的方式运行?
【问题讨论】:
标签: syntax-highlighting vim vim-syntax-highlighting