由于种种原因,我用16种颜色运行Vim,与我的终端颜色同步。在最近的Vim更新中,我不得不完全重写我的“〜/ .vimrc”以使其恢复到Linux上的运行顺序。
最初,我很惊讶地发现这条简单的行不起作用(甚至在其前面加上“语法”):
:highlight Comment ctermfg=White
我也在使用“LineNr”ctermfg。无论我在哪里放置/堆叠“评论”ctermfg,它都无法正常工作,或干扰其他一切正确的采购(即,与“LineNr”放在同一行)。但是,我发现在缓冲区加载后调用“Comment”会使注释按预期显示。
我是Vim中autocmd的新手(无论如何都想知道它是如何工作的)。在我的“〜/ .vimrc”中是否有一个“autocmd”调用,它将在加载缓冲区后立即运行上述代码行?
我已经尝试了几次迭代(BufWritePre,BufWritePost等)并且没有成功。这是我之前的尝试:
autocmd BufWinPost * :highlight Comment ctermfg=white
答案 0 :(得分:0)
如果我快速:h autocmd-events
,我发现事件BufWinPost
不存在。我想,你想要BufWinEnter
。您编写的autocmd应该有效,但:
除外。 HTH
答案 1 :(得分:0)
不要无理由地诉诸:autocmd
;更加努力地寻找根本原因!
您的描述缺乏细节;我猜您选择的colorscheme(或插件,但没有理智的插件应该会干扰默认突出显示)会覆盖Comment
的自定义颜色。您可以通过
:verbose highlight Comment
如果这指向您的colorscheme,您只需在之后执行:highlight
命令。为此,您需要了解:help initialization
,并检查:scriptnames
的输出。如果:colorscheme foo
中有~/.vimrc
命令,那么 就像将:highlight
命令放在其后一样简单。
如果您动态切换颜色方案,则需要:autocmd
,因为大多数colorschemes都会覆盖基本的Comment
定义。正确的事件和模式是ColorScheme *