概要
コードに限らず行末の空白、最終行の空行は無駄であるが、一つ一つ消すのも面倒なので自動化した。
行末の空白を消す
Vimの正規表現を使う
%s/\s\+$//ge
行末から空白が一つ以上続いているものを置換して削除しています。
最終行の空白を削除する
while文とgetline()を使って行います。
while getline('$') == ""
$delete _
endwhile
空行が何行続いても削除できるようにwhile文で回しています。
纏め
vimrcに次のように加えました。
.vimrc
autocmd BufWritePre * call s:remove_unnecessary_space()
function! s:remove_unnecessary_space()
" delete last spaces
%s/\s\+$//ge
" delete last blank lines
while getline('$') == ""
$delete _
endwhile
endfunction
新たに関数を定義して、それをファイル書き込み前に実行しています。