在 vim 中突出显示命令行

在 vim 中突出显示命令行

是否可以更改 vim 中命令行的颜色?我意识到这可能有些含糊,所以我有一些事情应该可以稍微澄清一下。这张图片说明了我所说的内容:

在此处输入图片描述

显示的是我正在编辑的文件的两行,或者在特定情况下,我正在查看的帮助文件,然后是状态行,最后是我正在谈论的命令行。我想要做的就是将该命令行的前景色和背景色变为与其上方的状态行相同的颜色。

我认为这hi ______ guifg=#… guibg=#…在我的 colorscheme 文件中很简单,我只是不确定该行的选择器是什么。有人能帮忙吗?我还没有在其他配置的屏幕截图中看到这种情况,所以我不确定这是否是不可能的还是不常见。

答案1

Vim 命令行使用与普通文本相同的颜色,并且没有自己的高亮组。

答案2

我测试过killistan 的回答回答以下类似问题:

:hi Normal ctermbg=Black ctermfg=Black cterm=NONE
augroup
    au!
    au CmdLineEnter * hi Normal ctermfg=DarkGrey
    au CmdLineLeave * hi Normal ctermfg=Black
augroup END

CmdLine而且它们大多是正确的。这只会在您第一次进入时改变颜色,大约四秒钟后,Normal组中的所有文本都会更改以匹配它。当您退出时,所有CmdLine文本都会立即变回原样。

因此,如果你把类似的东西放进你的,vimrc你至少可以让两个匹配,而你CmdLine

答案3

作为这个答案相关问题指出,Vim 8.2 添加了一个新设置wincolor,可用于执行与您所要求的类似的操作。

在我的 .vimrc 中,我添加了:

set wincolor=NormalAlt
highlight Normal guibg=#1B1D21
highlight NormalAlt guibg=black

这会使文本区域的背景变为黑色,但命令行和文本区域周围的细边框仍然是正常颜色(即#1B1D21)。

vim 帮助文件有这样的说法wincolor

用于此窗口的高亮组名,而不是普通颜色 |hl-Normal|。

这似乎意味着wincolor要启用每个窗口的Normal颜色,所以我不确定为什么它只适用于命令行和边框。也许是一个错误(我们目前正在使用它作为一项功能 ;-) )?或者我误解了帮助文件。

对于 neovim,有答案指出有一个新的颜色组MsgArea可以使用:

:hi MsgArea guifg=#03ff13

相关内容