✂️

trim.nvimでファイルの末尾に空白行を入れる

2022/12/11に公開

trim.nvimとは

neovimで行末の空白や、ファイル末尾の改行を自動的に削除してくれるプラグイン。

やりたいこと

デフォルトの設定だと、ファイル末尾の改行が全て削除されてしまう。
これを以下のような動作にしたい。

  1. 複数行改行がある場合、1行のみ残す
  2. 改行が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 改行

ここで、$が行の末尾にマッチするのに対し、\%$はファイル末尾にマッチする。

URL

Discussion