Windows Terminal 里的 Vim 設(shè)置了淺的配色,剛好光標(biāo)默認(rèn)是白色的豎線,不容易看出來。很有點費眼睛。
想把光標(biāo)改成其他顏色的方塊樣式。因為不是 gvim,guicursor 之類的配置不起作用。
上網(wǎng)查了些資料,測試如下配置可以正常生效(貌似這個 Terminal 是屬于 xterm 那一類):
" Set cursor shape and color
if &term =~ "xterm"
" INSERT mode
let &t_SI = "\<Esc>[6 q" . "\<Esc>]12;blue\x7"
" REPLACE mode
let &t_SR = "\<Esc>[3 q" . "\<Esc>]12;black\x7"
" NORMAL mode
let &t_EI = "\<Esc>[2 q" . "\<Esc>]12;green\x7"
endif
" 1 -> blinking block 閃爍的方塊
" 2 -> solid block 不閃爍的方塊
" 3 -> blinking underscore 閃爍的下劃線
" 4 -> solid underscore 不閃爍的下劃線
" 5 -> blinking vertical bar 閃爍的豎線
" 6 -> solid vertical bar 不閃爍的豎線
其中各配置項的含義如下:
-
&t_SI表示插入模式 -
&t_SR表示替換模式 -
&t_EI表示 Normal 模式 -
.號左邊的"\<Esc>[6 q"用來配置光標(biāo)的形狀。其中6的取值可以是1 - 6,分別指代不同的光標(biāo)樣式(參考前面的注釋) -
.號右邊的"\<Esc>]12;blue\x7"用來配置光標(biāo)顏色,其中的blue可以替換為其他顏色名詞
設(shè)置光標(biāo)顏色時也可以使用 RGB 顏色,格式為 rgb:RR/GG/BB。比如純白色的光標(biāo)即為 "\<Esc>]12;rgb:FF/FF/FF\x7"。
若只想設(shè)置光標(biāo)形狀,直接去掉 . 號以及右邊的顏色配置部分即可。如 let &t_SR = "\<Esc>[3 q"。
同理,只想修改顏色時也可以將 . 號左邊的形狀配置部分刪掉。
. 號在這里的作用其實是字符串拼接,方便區(qū)分形狀配置部分和顏色配置部分而已。去掉 . 號直接將兩部分配置寫在一個字符串里也是可以的。
即 let &t_SR = "\<Esc>[3 q" . "\<Esc>]12;black\x7" 等同于 let &t_SR = "\<Esc>[3 q\<Esc>]12;black\x7"

Normal

Insert

Replace
參考資料
Cursor color in xterm; change accordingly to the syntax in vim