我试图在 Vim 中突出显示当前行以及光标位置。这是我的 .vimrc:
set cursorline
hi CursorLine ctermbg=8 ctermfg=15 "8 = dark gray, 15 = white
hi Cursor ctermbg=15 ctermfg=8
我遇到的问题是当前行背景颜色覆盖了光标背景颜色,所以它看起来像这样:
我可以清楚地知道光标在哪里,因为前景色几乎是黑色的,但是当光标位于空格上或行首/行尾时,我不知道它在哪里,除非我移动它。
我在这里做错了什么?
答案1
您必须将光标线的颜色更改为与光标颜色不同的颜色。如果您使用的是st
或 之类的终端模拟器rxvt
,Vim 无法更改光标的颜色;它始终是您的终端应用程序决定的颜色。只有图形版本的 Vim 才能更改光标的颜色。
不过,您可以通过终端配置更改光标颜色。
一些~/.Xdefaults
例子~/.Xresources
:
XTerm*cursorColor: #FFFFFF
URxvt.cursorColor: white
您还可以使用 Vim 命令:set cursorcolumn
将光标置于十字准线中。
答案2
如果您不想每次启动 Vim 时都输入命令,则必须将命令放入文件中.vimrc
。
whereis vim
*#type in your linux terminal*
(您将有一个不同的位置,但您的配色方案将在这里/usr/share/vim/vim74/colors/
。
您可以列出现有的配色方案
ls /usr/share/vim/vim74/colors/
尝试列出的不同配色方案
:colorscheme desert
:colorscheme delek
Vim 中的以下命令会在光标位置激活一条垂直线。
set cursorcolumn
hi CursorColumn ctermbg=8
切换(带有感叹号,适用于所有设置命令)
set cursorcolumn!
例如:
set cursorline
set cursorline!
hi CursorLine ctermbg=235
*#defines a gray colour for the horizontal line*
这是一个包含 xterm 颜色的表格:关联
通过定义使用数字ctermbg=...
(... = 表中的颜色编号) 您也可以尝试ctermfg=...
,但不值得使用它。