✂️
trim.nvimでファイルの末尾に空白行を入れる
trim.nvimとは
neovimで行末の空白や、ファイル末尾の改行を自動的に削除してくれるプラグイン。
やりたいこと
デフォルトの設定だと、ファイル末尾の改行が全て削除されてしまう。
これを以下のような動作にしたい。
- 複数行改行がある場合、1行のみ残す
- 改行が1つもない場合、1行追加する
解決方法
setup関数内に以下のように記述する。
require('trim').setup {
trim_last_line = false,
patterns = {
[[%s/\n*\%$/\r/]],
},
}
解説
まず、trim_last_line = false
でデフォルトのファイル末尾の改行を削除する機能をオフにする。
次に、patterns
に正規表現を使用して文字列置換のパターンを指定している。
パターンの解説
上記の2つのやりたい動作は1つのパターンを指定することで実現できる。
%s
ファイルの全体を検索
\n*\%$
ファイル末尾の行で、改行が0回以上繰り返される場所
\r
改行
ここで、$
が行の末尾にマッチするのに対し、\%$
はファイル末尾にマッチする。
Discussion