我的highlight文件中有几个.vimrc命令。在Vim 7.3中,这些在Vim启动后立即生效。在更新到Vim 7.4之后,情况不再如此。 Vim最初使用其默认突出显示。当我通过执行.vimrc再次加载source ~/.vimrc时,突出显示了我想要的效果。

您应该能够使用以下步骤来重现此问题:制作一份.vimrc文件的副本。
用仅包含~/.vimrc行的文件替换highlight Type ctermfg=28 cterm=bold。缓冲。 vim dummy.c应该以常规字体显示,并以浅绿色显示,这不是我想要的。
输入int。现在,int应该以粗体显示并显示为深绿色。文章说您应该将:source ~/.vimrc放在int命令之后,但这没有什么区别。这适用于某些文件类型,但不适用于其他文件类型(C文件为示例)。

此行为的原因是什么?如何在启动Vim时执行highlight命令,以使它们在整个Vim会话期间对所有缓冲区生效?

评论

听起来像是第542期

是的,当在.vimrc的开头添加兼容集时,语法突出显示将按预期工作。因此,这似乎实际上就是这个错误。

我在高亮命令之前使用了autocmd ColorScheme *,它是错误报告中的一种解决方法。它仍然不起作用。 br

我现在正在编写自己的配色方案,显然也可以解决该错误。

克里斯蒂安,您可以只写评论作为答案吗?毕竟,这是解决我的问题的正确方法。还是有其他方法可以解决实际上揭示错误的问题?

#1 楼

这不是一个确定的答案,您的问题听起来像是542问题。显然,您可以通过编写自己的基本颜色方案来解决此问题,而不是将那些hi ...语句直接写入.vimrc。

评论


我认为是因为这个Vim问题;因此您的回答似乎确实是我问题的正确答案。

–沃尔夫冈·耶尔奇(Wolfgang Jeltsch)
16-10-25在12:48

#2 楼

实际上,您不应将自定义突出显示内容放在vimrc中,而应放在海关语法文件中。

这些文件应位于~/.vim/after/syntax/filetype.vim中,其中filetype是预期的文件类型。如果您最满意语法文件,但想添加一些命令,则可以按照以下步骤操作(取自:h mysyntaxfile-add):




创建一个在那里的目录称为“之后/语法”。对于Unix:

mkdir ~/.vim/after
mkdir ~/.vim/after/syntax



编写包含要使用的命令的Vim脚本。对于
示例,更改C语法的颜色:

highlight cComment ctermfg=Green guifg=Green



将该文件写入“之后/语法”目录中。使用
语法的名称,并添加“ .vim”。对于我们的C语法:

:w ~/.vim/after/syntax/c.vim



就这样。下次编辑C文件时,“注释”颜色将不同。您甚至不必重启Vim。


:h mysyntaxfile是获取有关如何纠正自己的语法文件的信息的好地方。另请参阅Vimscript The Hard Way,这是有关此主题的几章。

评论


如果我想更改所有文件类型的突出显示怎么办。例如,无论文件类型为何,我都希望注释的颜色为深蓝色。

–沃尔夫冈·耶尔奇(Wolfgang Jeltsch)
16-10-25在9:55

我或多或少地尝试了您建议的方法。我添加了一个文件.vimrc / highlighting.vim,创建了目录.vimrc / syntax / after,并添加了* filetype * .vim形式的几个符号链接,这些链接指向该目录的.vimrc / highlighting.vim。语法高亮仍然不起作用。

–沃尔夫冈·耶尔奇(Wolfgang Jeltsch)
16-10-25在10:11



@WolfgangJeltsch是的,我的帖子和文档说目录应该是〜/ .vim / after / syntax而不是〜/ .vimrc

–statox♦
16-10-25在10:50

没错但是,这只是我的评论中的错字。实际上,我在目录.vim中工作,语法高亮显示不起作用,可能是由于此错误542所致。

–沃尔夫冈·耶尔奇(Wolfgang Jeltsch)
16-10-27在15:19



语法中的文件应命名为应应用的文件类型,即C的语法文件应命名为c.vim。没有突出显示的文件类型,这就是〜/ .vim / after / syntax / highlighting.vim无法正常工作的原因。如果要在另一种文件类型中重用在一种文件类型中定义的突出显示,则可以使用前者:〜/ .vim / after / syntax / myotherfile.vim。正如statox指出的,所有这些都在:h mysyntaxfile中进行了解释

– Tae
20年4月20日9:00

#3 楼

对于它的价值,我在MacVim(8.1.950(155))中遇到了这个问题。在.vimrc中将colorscheme放在高亮语句之后,为我修复了它。例如:

highlight SpellCap guisp=Yellow
...
colorscheme evening



->

colorscheme evening
...
highlight SpellCap guisp=Yellow



评论


在MacVim 8.1上对我不起作用。

–鞋子
20/11/15在23:07