Vim中自动命令的正确方式是什么突出显示“;在缓冲区加载之后?
由于各种原因,我以16种颜色运行Vim,与我的终端颜色同步。在最近的一次Vim更新中,我不得不彻底修改我的“~/.vimrc”,使其在Linux上恢复正常运行 起初,我震惊地发现这一简单的行不起作用(甚至是前面的w/“syntax on”): 我还使用了“LineNr”字符。无论我将“注释”字符放置/堆叠在何处,它都不起作用,或者干扰了其他所有正确的寻源(即,放置在同一行w/“LineNr”)。然而,我发现在缓冲区加载后调用“Comment”会使注释看起来像预期的那样 我是Vim中autocmd的新手(无论如何,我想知道它是如何工作的)。在我的“~/.vimrc”中是否有一个“autocmd”调用,它将在加载缓冲区后立即运行前面提到的代码行 我尝试了几次迭代(BufWritePre、BufWritePost等),但都没有成功。这是我以前的尝试:Vim中自动命令的正确方式是什么突出显示“;在缓冲区加载之后?,vim,autocmd,autocommand,Vim,Autocmd,Autocommand,由于各种原因,我以16种颜色运行Vim,与我的终端颜色同步。在最近的一次Vim更新中,我不得不彻底修改我的“~/.vimrc”,使其在Linux上恢复正常运行 起初,我震惊地发现这一简单的行不起作用(甚至是前面的w/“syntax on”): 我还使用了“LineNr”字符。无论我将“注释”字符放置/堆叠在何处,它都不起作用,或者干扰了其他所有正确的寻源(即,放置在同一行w/“LineNr”)。然而,我发现在缓冲区加载后调用“Comment”会使注释看起来像预期的那样 我是Vim中autocmd
autocmd BufWinPost * :highlight Comment ctermfg=white
如果我快速执行autocmd events,我会发现事件BufWinPost不存在。我想,你想要的是
bufwanter
。除了:
,您编写的autocmd应该可以工作。HTH不要无缘无故地诉诸于:autocmd
;更努力地寻找根本原因
你的描述缺乏细节;我猜您选择的配色方案(或插件,但任何正常的插件都不应干扰默认的高亮显示)会覆盖您的自定义配色方案,用于注释。您可以通过以下方式检查谁定义了此
:verbose highlight Comment
如果这指向您的colorscheme,您只需在它之后执行:highlight
命令。为此,您需要了解:help初始化
,并可能检查:scriptnames
的输出。如果在~/.vimrc
中有一个:colorscheme foo
命令,那么它应该很简单,只需将:highlight
命令放在后面即可
如果动态切换颜色方案,则确实需要一个:autocmd
,因为大多数颜色方案会覆盖基本的注释
定义。正确的事件和模式应该是ColorScheme*
否,不幸的是,我没有运行“ColorScheme”命令。如上所述,我只是简单地将vim同步到终端的十六色调色板上,并从那里手动通过“~/.vimrc”或其他方式操纵vim的语法。但是,使用“:verbose”的指令解决了问题。不知何故,“syntax.vim”文件的“ctermfg”文件被更改为我不想要的颜色。谢谢!“syncolor.vim”,而不是“syntax.vim”。我道歉。啊,太好了,你已经明白了!
:verbose highlight Comment