行番号のハイライト
vimの行番号は、どうも仕様上、カーソルラインを有効しないとハイライトされないようです。
cursorlineの有効化
setcursorline
常にカーソルラインを表示するのが好きでないならば、cursorlineの色を付けないように設定します。
cursorlineの色をクリア
setcursorlinehi clear CursorLine
これで常に編集行の行番号のみがハイライトされるようになりました。
auto-cursorlineを改造
自分は加えてthincaさんの設定例をお借りして、しばらく手をはなしたり、
バッファを移動したりした際にcursorlineを表示するようにしています。
'cursorline' を必要な時にだけ有効にする / 永遠に未完成
参考にした設定そのままですと、行番号のみのハイライトはされませんので、初項の設定を入れた修正をします。
設定例
vimrc
" 初期状態はcursorlineを表示しない" 以下の一行は必ずcolorschemeの設定後に追加することhi clear CursorLine
" 'cursorline' を必要な時にだけ有効にする" http://d.hatena.ne.jp/thinca/20090530/1243615055" を少し改造、number の highlight は常に有効にする
augroup vimrc-auto-cursorlineautocmd!autocmdCursorMoved,CursorMovedI * calls:auto_cursorline('CursorMoved')autocmdCursorHold,CursorHoldI * calls:auto_cursorline('CursorHold')autocmdWinEnter * calls:auto_cursorline('WinEnter')autocmdWinLeave * calls:auto_cursorline('WinLeave')setlocalcursorlinehi clear CursorLine
lets:cursorline_lock =0function!s:auto_cursorline(event)ifa:event==# 'WinEnter'setlocalcursorlinehi CursorLine term=underline cterm=underline guibg=Grey90 " ADDlets:cursorline_lock =2elseifa:event==# 'WinLeave'setlocalnocursorlinehi clear CursorLine " ADDelseifa:event==# 'CursorMoved'ifs:cursorline_lock
if1<s:cursorline_lock
lets:cursorline_lock =1else" setlocal nocursorlinehi clear CursorLine " ADDlets:cursorline_lock =0endifendifelseifa:event==# 'CursorHold'" setlocal cursorlinehi CursorLine term=underline cterm=underline guibg=Grey90 " ADDlets:cursorline_lock =1endifendfunction
augroup END
設定内容
追加した部分には " ADD
と行末コメントしています。
追加設定
hi CursorLine term=underline cterm=underline guibg=Grey90
追加した上記の設定は、defaultのカラースキーム用ですので、お使いの設定によっては異なる場合があります。:highlight
で設定値を確認して下さい
初期状態の設定
hi clear CursorLine
上記の設定はお使いのcolorschemeの設定後に追加するようにしてください(上書きされるため)
行番号のハイライト設定
編集行の行番号のハイライト色は CursorLineNr
で設定できます
設定例
hi CursorLineNr term=bold cterm=NONE ctermfg=228 ctermbg=NONE