*.rb
ファイルタイプではありません。これはファイルパターンです。 はファイルタイプであり、拡張子ruby
のないファイルに設定することもできます。.rb
したがって、最も必要となる可能性が高いのは、autocmdが呼び出す関数で、操作すべきでないファイルタイプをチェックし、空白を削除します。
fun! StripTrailingWhitespace()
" Don't strip on these filetypes
if &ft =~ 'ruby\|javascript\|perl'
return
endif
%s/\s\+$//e
endfun
autocmd BufWritePre * call StripTrailingWhitespace()
evanの答えに基づいて、バッファローカル変数をチェックし、それを使用してストリップを実行するかどうかを決定できます。これにより、通常は削除するファイルタイプのバッファを削除したくない場合に、1回限りの無効化を行うこともできます。
fun! StripTrailingWhitespace()
" Only strip if the b:noStripeWhitespace variable isn't set
if exists('b:noStripWhitespace')
return
endif
%s/\s\+$//e
endfun
autocmd BufWritePre * call StripTrailingWhitespace()
autocmd FileType ruby,javascript,perl let b:noStripWhitespace=1