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