0

由于各种原因,我以十六种颜色运行 Vim,与我的终端颜色同步。在最近的 Vim 更新中,我不得不完全修改我的 "~/.vimrc" 以使其恢复在 Linux 上的运行状态。

最初,我震惊地发现这条简单的行不起作用(即使前面有“语法”):

:highlight Comment ctermfg=White

我也在使用“LineNr”ctermfg。无论我将“评论”ctermfg 放置/堆叠在哪里,它都不起作用,或者干扰了其他所有正确采购的东西(即,放置在与“LineNr”相同的行中)。但是,我发现在缓冲区加载后调用“评论”会使评论按预期显示。

我是 Vim 中的 autocmd 新手(无论如何,我想知道它是如何工作的)。我的“~/.vimrc”中是否有一个“autocmd”调用,它将在缓冲区加载后立即运行上述代码行?

我已经尝试了几次迭代(BufWritePre、BufWritePost 等),但都没有成功。这是我之前的尝试:

autocmd BufWinPost * :highlight Comment ctermfg=white
4

2 回答 2

0

如果我做一个 quick :h autocmd-events,我发现该事件BufWinPost不存在。我想,你想要BufWinEnter。您编写的 autocmd 应该可以工作,除了:. 高温高压

于 2017-04-24T06:29:27.627 回答
0

:autocmd不要无故诉诸;更加努力地寻找根本原因!

您的描述缺乏细节;我猜您选择的颜色方案(或插件,但没有理智的插件应该干扰默认突出显示)会覆盖您的自定义颜色方案Comment。您可以通过以下方式检查谁定义了这个

:verbose highlight Comment

如果这指向您的配色方案,您只需要在它之后:highlight执行您的命令。为此,您需要了解,并可能检查 的输出。如果你的 . 中有一个命令,它应该就像在它后面加上命令一样简单。:help initialization:scriptnames:colorscheme foo~/.vimrc:highlight

:autocmd如果您即时切换颜色方案,您确实需要一个,因为大多数颜色方案会覆盖基本Comment定义。正确的事件和模式是ColorScheme *

于 2017-04-24T16:05:43.887 回答