Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用split命令时,VIM会丢失语法高亮显示_Vim_Syntax Highlighting_Vim Syntax Highlighting - Fatal编程技术网

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

使用split命令时,VIM会丢失语法高亮显示,vim,syntax-highlighting,vim-syntax-highlighting,Vim,Syntax Highlighting,Vim Syntax Highlighting,因此,我创建了自己的语法突出显示文件,如果只打开一个文件,它就可以正常工作。但是,如果我执行:拆分其他文件,则打开的另一个缓冲区没有语法高亮显示。我试过各种方法,比如:语法等。有什么问题吗 我正在运行Ubuntu 11.04,64位版本 VIM版本:VIM-Vi改进了7.3(2010年8月15日,2011年3月24日编译07:07:34) 我创建了一个简单的语法突出显示文件,并将其放在~/.vim/plugin/syntax.vim中 语法突出显示文件的最后一行是let b:current_sy

因此,我创建了自己的语法突出显示文件,如果只打开一个文件,它就可以正常工作。但是,如果我执行
:拆分其他文件
,则打开的另一个缓冲区没有语法高亮显示。我试过各种方法,比如
:语法等。有什么问题吗

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

VIM版本:VIM-Vi改进了7.3(2010年8月15日,2011年3月24日编译07:07:34)

我创建了一个简单的语法突出显示文件,并将其放在~/.vim/plugin/syntax.vim中

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

语法文件属于
~/.vim/syntax/sth.vim
,而不是
~/.vim/plugin/syntax.vim
。后者只在启动时被获取一次,这可能就是为什么它只适用于第一个加载的文件


要激活语法,您需要
:setf sth
,或者在文件中插入相应的modeline,或者为语法编写一个文件类型检测来自动执行该操作。

我最近遇到了这个问题,而且更普遍。也就是说,所有文件类型都出现了问题。调试一段时间后,我发现文件类型被正确识别,但对于新的拆分,语法不知何故变得不稳定

我仍然不能100%确定这是怎么发生的,但对于未来的谷歌访问者,我会写下是什么解决了我的问题:我在我的
.vimrc
中移动了
set syntax=on
。经过多年的积累,带有
set syntax=on
的行逐渐下降,直到低于其他一些东西。将它移回到(几乎)文件的顶部,为我解决了一些问题。下面是我的
.vimrc
的开始部分现在的样子:

" First two uncommented lines only useful if you use Tim Pope's vim-pathogen.  
" https://github.com/tpope/vim-pathogen
execute pathogen#infect()
execute pathogen#helptags()

" Most general settings first
set nocompatible            " Vim rather than Vi; implied by this file
syntax on                   " Syntax highlighting on
filetype plugin indent on   " Filetype detection

" ... etc.

复活这个,就像我刚才观察到的一样。我找到的解决方案是将
filetype on
设置添加到我的.vimrc文件中。fwiw,我在
上的
语法之后立即添加了它<代码>上的语法
碰巧已经在我的.vimrc文件的顶部。下面是my.vimrc的前几行:

1“激活语法高亮显示
2关于
3.
上的4“文件类型

5在

上的文件类型应包括平台、版本。您是如何将语法“连接”到您的文件类型的?有自动命令吗?我在文本中添加了更多的描述。希望它能更好地澄清问题。在这两个文件上运行
:set filetype?
时会发生什么?简单添加
set nocompatible
修复了我丢失文件类型的问题,谢谢!