如何突出显示.vimrc中的当前行和光标?


14

我试图突出显示当前行以及Vim中的光标位置。这是我的.vimrc:

set cursorline
hi CursorLine ctermbg=8 ctermfg=15 "8 = dark gray, 15 = white
hi Cursor ctermbg=15 ctermfg=8

我遇到的问题是当前的行背景色掩盖了光标背景色,因此看起来像这样:

当前行突出显示,但光标未突出显示。

我可以很清楚地知道光标在哪里,因为前景色几乎是黑色的,但是当光标在空白处或行的开头/结尾时,除非我将其移动,否则我不知道它在哪里。

光标在该行的末尾,尽管您永远不会知道它。

我在这里做错了什么?

Answers:


14

您必须将光标线的颜色更改为光标颜色以外的其他颜色。如果您在诸如st或的终端仿真器中rxvt,Vim无法更改光标的颜色;否则,Vim无法更改光标的颜色。它始终是您的终端应用程序决定使用的颜色。只有Vim的图形版本才能更改光标的颜色。

不过,您可以通过终端配置来更改光标颜色。

一些~/.Xdefaults/ ~/.Xresources示例:

XTerm*cursorColor: #FFFFFF
URxvt.cursorColor: white

您也可以使用Vim命令:set cursorcolumn将光标置于十字准线中。


2
vim可以更改光标的颜色,在类似xterm这样的终端上,您可以动态更改它的颜色(printf '\033]12;#f50\7'例如)。你也可以把它改成一个闪烁块或下划线(\e[1 q\e[3 q
斯特凡Chazelas

那很有意思。我不知道这些转义序列是否存在。有关于他们与VIM使用的信息在这里

6

如果不想每次启动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命令)

set cursorcolumn!

例如:

set cursorline
set cursorline!

hi CursorLine ctermbg=235
*#defines a gray colour for the horizontal line*

这是一张带有xterm颜色的表格:链接

通过定义数字来使用数字ctermbg=... (... =表中的颜色数字)也可以尝试使用ctermfg=...,但不值得使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.