26

カーソルの色を変更するための良いスニペットがあります:

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です

4

5 に答える 5

35

これを制御する簡単な方法である「ハイライト」コマンドを調べましたか。

たとえば、CursorLine を変更するには、

:hi CursorLine guifg=red guibg=blue

参照: :help ハイライト

モードを切り替えるようにします。

" 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 を時々使用する場合)

于 2011-10-01T08:43:10.847 に答える
8

これは非常に簡単です。以下を.vimrc独自のカラースキームファイルに追加します。

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

詳細については、次を参照してください。

注: 同じ方法を使用して、これらすべてのifステートメントとエスケープ シーケンスなしでカーソルの色を変更できます (これは GVim でも機能します)。

于 2011-10-01T09:56:33.867 に答える