n_hachiのメモ

メモです。

autocmdの設定をvim実行時に削除する方法

背景

自分は.vimrcに以下一行を追加することでファイル保存時に各行末尾に存在する空白を自動で削除するようにしている。

" Delete tailing blanks.
autocmd BufWritePre * :%s/\s\+$//ge

この方法は他者が作成したコードの末尾に空白が存在する場合、意図していない箇所が書き換わってしまいgit diffを実行した場合に関係ないところまで表示されてしまい困るという課題がある。
上記理由からautocmdの設定を削除する方法を調べた。

参考箇所

autocmd - Vim日本語ドキュメントの "3. 自動コマンドの除去" に以下のように書かれている

:au[tocmd]! [group] {event} {pat} {event} と {pat} に関連づけられた全ての自動コマンドを 除去する。

解決方法

vim起動時に以下を実行することで自動末尾空白が消されることがなくなった

:autocmd! BufWritePre *

もうちょっと良い方法があるかも?