web-dev-qa-db-ja.com

挿入モードでのVimCursorLineの色の変更

カーソルの色を変更するための適切なスニペットがあります。

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

25
JackLeo

これを制御する簡単な方法である「highlight」コマンドを調べてみてください。

たとえば、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を時々使用する場合)

33
Zarick Lau

これは非常に簡単です。次のように入力してください .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

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

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

7
Johnsyweb

MacVimを 'Lokaltog/vim-powerline' で使用する場合、通常/視覚/挿入の色を電力線モードの色と一致するように設定できます。これは、特に大画面で、電力線を読まずに現在のモードを知るのに非常に役立ちます。

@ 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;

モロカイオリジナルの配色を使用した例です。

通常

normal mode (green

ビジュアル

visual mode (orange)

挿入

insert mode (blue)

また、同じ色を使用して視覚的に選択するようにOSを設定すると便利です。たとえば、OSXでハイライトの色をOrangeに変更しました。テキストを選択すると、VIMと同じように、青ではなくオレンジになります。

select orange highlight

ここでは、このStack Overflowエントリを書いているときに、テキストボックスでオレンジ色のハイライトが使用されています。これで、OSで選択したすべてのテキストがVIMセットアップに一致します。

selecting text in the OS

3
f1lt3r