Colors 插入模式下Vim光标线颜色变化
有一个很好的更改光标颜色的代码段:Colors 插入模式下Vim光标线颜色变化,colors,cursor,line,vim,Colors,Cursor,Line,Vim,有一个很好的更改光标颜色的代码段: 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" "
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
if&term=~“xterm\\\ rxvt”
“在插入模式下使用橙色光标
让&t_-SI=“\]12;橙色\x7“
“否则,请使用红色光标
让&t\u EI=“\]12;红色\x7”
安静!回声-ne“\033]12;红色\007”
“vim退出时重置光标
autocmd VIMLEVE*静音!回声-ne“\033]112\007”
“使用\003]12;灰色\007用于gnome终端
恩迪夫
我应该如何改变它,使光标线代替光标,改变颜色,例如从深蓝色变为蓝色
我的完整配置是请查看“highlight”命令,这是一种更简单的控制方法 例如,要更改光标线
: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混合,但在我看来,高光更易于长期维护(如果偶尔使用gVim)这非常简单,请将以下内容放入您的或自定义文件中 有关更多信息,请参阅:
if
-语句和转义序列(这也适用于GVim)。使用MacVim时,您可以设置正常/可见/插入颜色以匹配电源线模式的颜色。我发现这非常有助于在不阅读电源线的情况下了解我所处的模式,尤其是在大屏幕上
以下是我使用的代码,基于@Zarick Lau的答案
在我的colors/molokai.vim
文件中:
" 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;
下面是一个使用molokai原始配色方案的示例
正常
视觉
插入
我还发现,将操作系统设置为使用相同颜色进行视觉选择也很有帮助。例如,我在OSX中将高亮显示颜色更改为橙色
,当我选择文本时,它现在是橙色而不是蓝色,与VIM中的相同
示例
在这里,当我编写这个堆栈溢出条目时,文本框中使用了橙色高亮显示。现在,我在操作系统中选择的所有文本都与VIM设置相匹配
我选择在插入模式下切换
光标行
和正常
。首先使用: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
对于日光灯,这看起来像这样。我喜欢“聚焦”效果
即使您进入或离开插入模式,当前行中也没有颜色
“设置光标线
设置无显示模式
“启用游标行
设置nocursorline
“光标线的默认颜色”
hi-CursorLine字符m=NONE字符mbg=NONE字符mfg=NONE
“进入插入模式时更改颜色
autocmd插入器*设置nocursorline
“退出插入模式时,将颜色恢复为默认值
autocmd InsertLeave*设置nocursorline
我喜欢带有注释“使用该死的hjkl键”的arror键映射。我是不是经常在这里写\或者这是^V'ESC'的可视化?当我将上面的文本复制粘贴到我的.vimrc中时,它什么也不做(是的,它声称是一个xterm…它是Linux盒上的putty会话)我知道,我在配置文件中使用了它。重点是我希望它会根据我是否处于插入模式而改变。更新了回复以解决“切换颜色取决于模式”的问题。这是一个非常方便的提示!!谢谢!!要澄清,对于gVim和Neovim,使用set termguicolors
,您需要使用guifg
和guibg
。对于终端中的Vim和没有真彩色的Neovim,您应该使用ctermbg
和ctermfg
。我不喜欢背景色,所以我将其更改为“autocmd InsertEnter*设置光标行”/“autocmd InsertLeave*设置光标行”“。现在,我只将下划线作为插入或正常模式的指示器。其他有用的示例cterm=bold
,您可以使用NONE
来“取消设置”任何内容,例如,我在不处于插入模式时没有突出显示,使用ctermfg=NONE-ctermbg=NONE-cterm=NONE
知道光标线的“日光化”颜色是什么吗?”。
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