所以我创建了自己的语法高亮文件,如果只打开一个文件,它就可以正常工作。但是,如果我执行: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中指定文件位置,语法自动工作(对于一个打开的文件)。
答案 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