この記事は Vim 8.0 Advent Calendar の 14 日目の記事です。
新オプション紹介その 1 です。追加されたものの中でも便利なオプションについて解説します。
'breakindent' (真偽値) 'breakindentopt' (カンマ区切り文字列)
オンにすると、折り返して表示される行がインデントされて表示されます。
つまり以下のようになります。左が 'breakindent' がオフ、右がオンです。また、'showbreak' オプションの値に > が設定されています。4 行目の折り返しに注目してください。

また、'breakindentopt' オプションで細かい挙動を制御できます。このオプションはカンマ区切りの文字列で、以下の要素を指定できます。
-
min:{n}- 深いインデントが短すぎる幅で折り返されないように、1 行の最小の幅を指定します。未指定の場合は 20 になります。
-
shift:{n}- 折り返された位置をずらします。正数で右に、負数で左にずらします。未指定の場合は 0 で、ずらしません。
- sbr
- インデントの左側に
'showbreak'を表示します。
- インデントの左側に
例えば、shift:4,sbr を指定すると、以下のようになります。
'showbreak' である > 記号が行頭に移動し、折り返しのインデントが if のインデントに比べて右に 4 つずれています。
'fixendofline' (真偽値)
通常、Vim は保存時にファイルの末尾に必ず改行を入れます。これは POSIX にて、テキストは行の集合であり、行は必ず改行で終わるとされているからだと思われます。
このファイル末尾の改行の付与は、ファイル末尾に改行のないファイルを開いて編集し、保存した場合にも行われます。
これは特にチームで作業している場合に困る場合があります。また、一部の CSV の処理系など、ファイル末尾の改行の有無で意味が合わるファイルを扱う場合も困ります。
そこで 'fixendofline' オプションが追加されました。このオプションはデフォルトではオンで、保存時にファイル末尾に改行を追加します。
オフの場合、'endofline' オプションに従って改行を付与します。オンなら改行が付与され、オフなら改行は付与されません。
この 'endofline' オプションは、既存のファイルを開いた際にはファイルの末尾の改行を見て自動でオンオフされます。
つまりまとめると以下のようになります。
- ファイル末尾の改行をいじって欲しくない場合は、
set nofixendoflineを vimrc ファイルに書きます。 - ファイル末尾の改行の有無を操作したい場合は、上記に加えて、都度
'endofline'オプションの値を変更します。
'belloff' (カンマ区切り文字列)
Vim はエラーが発生した際にベルを鳴らします。これを無効化したい場合、以前は以下のような設定を書いていました。
set visualbell t_vb=
新しく追加された 'belloff' オプションを使うと、代わりに以下のように書けます。
set belloff=all
'belloff' オプションは、どんな時にベルを鳴らさないようにしたいのかが細かく指定できます。特定の場合のベルのみ無効にしたい!といったことも可能です。
どのような値が指定可能かは help を参照してください。
