概要
.vimrcに以下のコマンドを追加すると、ファイル保存時に、不要な行末スペースを自動で削除してくれる。
autocmd BufWritePre * :%s/\s\+$//ge
解説
autocmdは、vimで特定のタイミングで何らかのコマンドを実行させるコマンド。
第一引数に指定している”BufWritePre”は、コマンド実行のタイミング指定で、ファイルを保存する直前を意味する。他にもファイル保存直後や、新規ファイル作成時などのトリガがある。
第二引数”“は、対象となるファイル名のパターンを表す。例えばtxtファイルでのみ適用したい場合、.txtと指定すればよい。今回は全てのファイルにおいて動作させたいので”*”を指定する。
第三引数には、実行するコマンドを記述する。
:%s/\s\+$//ge
を紐解くと、ファイル内の全ての/\s+$/を空文字で置換するという記述で、行末の手前にあるスペースを削除するという意味になる。
以上より、
autocmd BufWritePre * :%s/\s\+$//ge
とvimrcに記述することで、全てのファイル保存時に、ファイル内の不要な行末スペースを削除するという機能をvimに追加することができる。