有一个改变光标颜色的好片段:
if &term =~ "xterm\\|rxvt"
" use an orange cursor in insert mode
let &t_SI = "\<Esc>]12;orange\x7"
" use a red cursor otherwise
let &t_EI = "\<Esc>]12;red\x7"
silent !echo -ne "\033]12;red\007"
" reset cursor when vim exits
autocmd VimLeave * silent !echo -ne "\033]112\007"
" use \003]12;gray\007 for gnome-terminal
endif
我应该如何改变它而不是光标,CursorLine会改变颜色,例如从深蓝色变为蓝色?
我的完整配置为https://bitbucket.org/JackLeo/home-configs/src/5b8faf340f87/.vimrc
答案 0 :(得分:30)
您是否参与了'突出'命令,这是一种更容易控制的方法。
例如,要更改CursorLine,
:hi CursorLine guifg=red guibg=blue
参考::帮助突出显示
使其在模式之间切换。
" Enable CursorLine
set cursorline
" Default Colors for CursorLine
highlight CursorLine ctermbg=Yellow ctermfg=None
" Change Color when entering Insert Mode
autocmd InsertEnter * highlight CursorLine ctermbg=Green ctermfg=Red
" Revert Color to default when leaving Insert Mode
autocmd InsertLeave * highlight CursorLine ctermbg=Yellow ctermfg=None
我可以将termcap颜色与autocmd混合使用,但是IMO,突出显示更容易长期维护(如果偶尔使用gVim的情况下)
答案 1 :(得分:7)
这非常简单,请将以下内容放入.vimrc
或自定义colorscheme文件中。
set cursorline
autocmd InsertEnter * highlight CursorLine guifg=white guibg=blue ctermfg=white ctermbg=blue
autocmd InsertLeave * highlight CursorLine guifg=white guibg=darkblue ctermfg=white ctermbg=darkblue
有关详细信息,请参阅:
N.B:您可以使用相同的方法来更改光标的颜色而不使用所有if
- 语句和转义序列(这也适用于GVim)。
答案 2 :(得分:3)
将MacVim与'Lokaltog/vim-powerline'一起使用时,您可以设置普通/可视/插入颜色以匹配电源线模式颜色。我发现这非常有助于在不阅读电力线的情况下了解我所处的模式,尤其是在大屏幕上。
以下是我使用的代码,基于@ Zarick-Lau的回答。
在我的CREATE VIEW vw_tbl
AS
SELECT col = LEFT(col, 50)
FROM tbl
文件中:
colors/molokai.vim
以下是使用molokai原始配色方案的示例。
<强>正常强>
<强>视觉强>
插入强>
我也发现将OS设置为使用相同颜色进行视觉选择也很有帮助。例如,我在OSX中将高亮颜色更改为" Visual Mode Orange Background, Black Text
hi Visual guifg=#000000 guibg=#FD971F
" Default Colors for CursorLine
highlight CursorLine guibg=#3E3D32
highlight Cursor guibg=#A6E22E;
" Change Color when entering Insert Mode
autocmd InsertEnter * highlight CursorLine guibg=#323D3E
autocmd InsertEnter * highlight Cursor guibg=#00AAFF;
" Revert Color to default when leaving Insert Mode
autocmd InsertLeave * highlight CursorLine guibg=#3E3D32
autocmd InsertLeave * highlight Cursor guibg=#A6E22E;
,当我选择文本时,它现在是橙色而不是蓝色,与VIM相同。
示例
这里是我正在编写此Stack Overflow条目时在文本框中使用的橙色突出显示。现在,我在操作系统中选择的所有文本都与VIM设置匹配。
答案 3 :(得分:0)
我选择在插入模式下切换CursorLine
和Normal
。首先使用:hi Normal
和:hi CursorLine
获取值。然后调整以下几行:
set cursorline
autocmd InsertEnter * highlight Normal ctermbg=7
autocmd InsertEnter * highlight CursorLine ctermbg=15
autocmd InsertLeave * highlight Normal ctermbg=15
autocmd InsertLeave * highlight CursorLine ctermbg=7
对于日光,看起来像这样。我喜欢“聚焦”效果。
答案 4 :(得分:0)
"set cursorline
set noshowmode
"Enable CursorLine
set nocursorline
"Default Colors for CursorLine
hi CursorLine cterm=NONE ctermbg=NONE ctermfg=NONE
"Change Color when entering Insert Mode
autocmd InsertEnter * set nocursorline
"Revert Color to default when leaving Insert Mode
autocmd InsertLeave * set nocursorline