vim で cursorline を hightlight するために help を眺める

他のエディタでは意識せずともカーソルのある行がハイライトされる.
もしくは背景色が変わる.
vim でこれを実現するには設定が必要.

vim 初心者なのでまずはちゃんとヘルプを読めるようになりたい.
ヘルプを参考に cursor line のハイライトを実現する.

概要は次の通り.

動作環境

  • macOS Mojave 10.14.x
  • vim 8.1

結論

次のようなコマンドを vim 内で叩く or .vimrc に書き込めば実現可能.

こういう結果だけならググればすぐに見つかる.
でも, コマンドの意味までは分からない.

コマンドの意味まで知りたいのでヘルプを見て調査する.

:highlight の使い方をヘルプで調べる

vim でヘルプを確認してみる.
ヘルプの表示はこのコマンド.

ヘルプ内で今回見るべき部分は次の箇所.

:hi[ghlight] [default] {group-name} {key}={arg} ..

まず構文を読み解く.
構文を分解するとこんな感じ.

  • : コマンドモード
  • [] 省略可
  • [default] 詳しくは :highlight-default を参照
  • {group-name} highlightするグループ
    • 新規追加 or 既存のものを選択
  • {key}={arg} キー, 値のペアで色の決定をする (はず)

後半3つについてさらに調べる.

[default]

ヘルプを見てみる.

:h highlight-default

ちょっと長いからここには書かないけど, このコマンドで default highlighting groups が表示される.
一部を抜粋.

These are the default highlighting groups.
These groups are used by the ‘highlight’ option default.
Note that the highlighting depends on the value of ‘background’. You can see the current settings with the “:highlight” command.

中略

CursorLine the screen line that the cursor is in when ‘cursorline’ is set

background に依存するから注意してね, とのこと.

どうやら :highlight で現状の設定が見れるらしい.
↑このコマンドで CursorLine の行に書いてあるのが現状の設定.
私の場合はこんな感じ↓

[default] については以上.

{group-name}

さっきの [default] で見たものが default highlighting groups.
だから今回対象となる {group-name}CursorLine.

{group-name} については以上.

{key}={arg}

さっき :highlight で確認したような記述をすればいいっぽい.

この例でいうと key, arg は次の通り.

key arg
term underline
ctermfg 15
ctermbg 0
guibg Grey90

各 key の意味がわからないな…
これもヘルプで確認してみる.

There are three types of terminals for highlighting:
term a normal terminal (vt100, xterm)
cterm a color terminal (MS-DOS console, color-xterm, these have the “Co”
termcap entry)
gui the GUI

For each type the highlighting can be given. This makes it possible to use the same syntax file on all terminals, and use the optimal highlighting.

まずは term について.

ターミナの種類ごとにこれらの値が設定可能らしい.
設定可能なターミナルは次の3種類.

  • term
  • cterm
  • gui

私の環境は xterm-256color だから term に該当する.
mac の terminal なら プロファイルから確認可能.

この例では underline が指定されているけど, 指定可能な値も全部ヘルプに書いてある.
たとえばこんな感じ↓

bold underline undercurl
inverse italic standout
nocombine strikethrough

term については以上.
次は ctermfg, ctermbg について.
ヘルプを見てみる.

ctermfg={color-nr} highlight-ctermfg E421
ctermbg={color-nr} highlight-ctermbg

The {color-nr} argument is a color number. Its range is zero to (not including) the number given by the termcap entry “Co”.
The actual color with this number depends on the type of terminal and its settings.
Sometimes the color also depends on the settings of “cterm”.
For example, on some systems “cterm=bold ctermfg=3” gives another color, on others you just get color 3.

For an xterm this depends on your resources, and is a bit unpredictable.
See your xterm documentation for the defaults.
The colors for a color-xterm can be changed from the .Xdefaults file.
Unfortunately this means that it’s not possible to get the same colors for each user.
See |xterm-color| for info about color xterms.

The MSDOS …以下略

terminal の種類と設定によって指定可能なカラー番号が変わってくるっぽい.
設定可能なカラー番号の確認方法は次の通り.

  • 設定可能なカラー番号 確認
    • :runtime syntax/colortest.vim
  • 現状の設定 確認
    • :so $VIMRUNTIME/syntax/hitest.vim

ここにはカラー番号って書いてあるけど, 他にも white とか black とかでも指定可能.

今更だけど, ctermc は Color の頭文字.

文字色, 背景色は次の key に 数字を指定する.

  • fg は foreground.
    • 文字色
  • bg は background.
    • 背景色

ここまで調べればあとは指定するだけ.

まとめ

今回はひたすらヘルプを追った.

背景色と文字色を選ぶのは結構難しい.
個人的には, 常に cursor line が常時ハイライトされているのは視覚的に邪魔だと感じる.

そこで, 行番号もハイライトさせるようにしてみた.
現在私が設定している配色はこちら.

今回の作業でヘルプを読むことが苦ではなくなった.
今回は以上.

スポンサーリンク
336 x 280 – レクタングル(大)
336 x 280 – レクタングル(大)
  • このエントリーをはてなブックマークに追加

この記事が気に入ったら
いいね!しよう

スポンサーリンク
336 x 280 – レクタングル(大)
トップへ戻る