使用split命令时,VIM会丢失语法高亮显示

时间:2011-09-28 19:12:27

标签: vim syntax-highlighting vim-syntax-highlighting

所以我创建了自己的语法高亮文件,如果只打开一个文件,它就可以正常工作。但是,如果我执行:split otherFile,则打开的另一个缓冲区没有语法突出显示。我尝试了各种各样的事情,比如:syntax on等。问题是什么?

我正在运行Ubuntu 11.04,64位版本。

VIM版本:VIM - Vi IMproved 7。3(2010年8月15日,2011年3月24日07:07:34编译)

我创建了一个简单的语法高亮文件,并将其放在〜/ .vim / plugin / syntax.vim

语法高亮文件的最后一行是let b:current_syntax =“sth”。 我没有做任何类型的连接,比如在.vimrc中指定文件位置,语法自动工作(对于一个打开的文件)。

3 个答案:

答案 0 :(得分:1)

我最近遇到了这个问题,而且更普遍。也就是说,问题出现在所有文件类型中。调试了一下后,我发现文件类型被正确识别,但是对于新的拆分,语法在某种程度上被取消了。

我仍然不能100%确定 这是怎么发生的,但对于未来的Google访问者,我会写下为我解决问题的原因:我移动{{1}我set syntax = on早些时候。经过多年的积累,.vimrc的线已经向下移动,直到它低于其他一些东西。将它移回(几乎)文件的顶部为我修复了一些东西。这就是我set syntax = on现在的开头:

.vimrc

答案 1 :(得分:0)

语法文件属于~/.vim/syntax/sth.vim,而非~/.vim/plugin/syntax.vim。后者仅在启动时获取一次,这可能是它仅适用于第一个加载文件的原因。

要使您的语法变为活动状态,您需要:setf sth,或在文件中插入相应的模式行,或者为您的语法编写文件类型检测以自动执行该操作。

答案 2 :(得分:0)

恢复这个,因为我刚刚观察到相同的行为。我找到的解决方案是将filetype on设置添加到我的.vimrc文件中。 fwiw,我在syntax on之后立即添加了它。 syntax on恰好位于我的.vimrc文件的顶部。所以,这是我的.vimrc的前几行:

1 " Activates Syntax Highlighting 2 syntax on 3 4 " Filetype on 5 filetype on