使用Vim更改输入语言时更改光标颜色

时间:2014-08-31 21:33:20

标签: vim

今天我找到了通过设置.vimrc set keymap=_mykeymap_并使用 Ctrl ^ 来更改vim中输入语言的方法。

使用Vim更改输入语言时,是否可以在insert mode中更改光标颜色?

3 个答案:

答案 0 :(得分:2)

对于gvim,请参阅:help lCursor

对于vim,我没有答案,抱歉。

答案 1 :(得分:0)

vim wiki我找到了this

  

如果它理解以下转义序列,则可以更改终端中的光标颜色和样式。并非所有终端都支持此功能,但xterm,rxvt和Terminator都支持。最新版本的gnome-terminal支持更改颜色的序列,但不支持将颜色恢复为默认颜色。

.vimrc中跟随您可以更改不同模式的光标颜色:

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

因此,您可以编写一个函数来检查当前keymap并在“keymap-cursor-colors”之间切换。

答案 2 :(得分:0)

我知道如何更改insert mode中光标的清晰度,例如,my setting是:

set guicursor=a:hor1
set guicursor+=i-r-ci-cr-o:hor2-blinkon0

Help file显示:

    n   Normal mode
    v   Visual mode
    ve  Visual mode with 'selection' "exclusive" (same as 'v',
        if not specified)
    o   Operator-pending mode
    i   Insert mode
    r   Replace mode
    c   Command-line Normal (append) mode
    ci  Command-line Insert mode
    cr  Command-line Replace mode
    sm  showmatch in Insert mode
    a   all modes

我不认为可以在指定模式下更改颜色(highlight-groups)。但您可以使用(在所有模式下)更改颜色:

hi Cursor               guibg=#A6E22E       guifg=#A6E22E     gui=underline

详情可以从my color configuration

找到