LoginSignup
71
66

More than 5 years have passed since last update.

Vimで編集行の行番号を常にハイライトする

Last updated at Posted at 2014-07-27

行番号のハイライト

vimの行番号は、どうも仕様上、カーソルラインを有効しないとハイライトされないようです。

cursorlineの有効化
set cursorline

1.png

常にカーソルラインを表示するのが好きでないならば、cursorlineの色を付けないように設定します。

cursorlineの色をクリア
set cursorline
hi clear CursorLine

2.png

これで常に編集行の行番号のみがハイライトされるようになりました。

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-cursorline
  autocmd!
  autocmd CursorMoved,CursorMovedI * call s:auto_cursorline('CursorMoved')
  autocmd CursorHold,CursorHoldI * call s:auto_cursorline('CursorHold')
  autocmd WinEnter * call s:auto_cursorline('WinEnter')
  autocmd WinLeave * call s:auto_cursorline('WinLeave')

  setlocal cursorline
  hi clear CursorLine

  let s:cursorline_lock = 0
  function! s:auto_cursorline(event)
    if a:event ==# 'WinEnter'
      setlocal cursorline
      hi CursorLine term=underline cterm=underline guibg=Grey90 " ADD
      let s:cursorline_lock = 2
    elseif a:event ==# 'WinLeave'
      setlocal nocursorline
      hi clear CursorLine " ADD
    elseif a:event ==# 'CursorMoved'
      if s:cursorline_lock
        if 1 < s:cursorline_lock
          let s:cursorline_lock = 1
        else
          " setlocal nocursorline
          hi clear CursorLine " ADD
          let s:cursorline_lock = 0
        endif
      endif
    elseif a:event ==# 'CursorHold'
      " setlocal cursorline
      hi CursorLine term=underline cterm=underline guibg=Grey90 " ADD
      let s:cursorline_lock = 1
    endif
  endfunction
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

3.png

71
66
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
71
66