1

VIMでの保存/書き込み時に、末尾の空白を削除し、ファイルの行末がDOSではなくUNIXであることを確認したいと思います。

これらのコマンドはどちらも単独で機能しますが、VIMでのファイルの書き込み/保存時に両方を実行する方法がわかりません。

autocmd BufWritePre,FileWritePre * :%s/\s\+$//e
autocmd BufWritePre,FileWritePre * :%s/\r$//

私は次のすべてを試しましたが、それでもVIMはエラーをスローします:

autocmd BufWritePre,FileWritePre * :%s/\s\+$//e|:%s/\r$//

また

autocmd BufWritePre,FileWritePre * %s/\s\+$//e|%s/\r$//

augroup prewrites
    autocmd!
    autocmd BufWritePre,FileWritePre * :%s/\s\+$//e
    autocmd BufWritePre,FileWritePre * :%s/\r$//                                                                                             
augroup END 

これらはいずれも、VIによってエラーがスローされることなく目的の結果を生成しません。何か助けはありますか?

4

1 に答える 1

6

私はついにそれを理解しました。犯人は、2 回目の検索をeafter で終了していませんでした。以下の最終結果を参照してください。

augroup prewrites
   autocmd!
    autocmd BufWritePre,FileWritePre * :%s/\s\+$//e | %s/\r$//e
augroup END 
于 2012-09-21T18:42:44.853 に答える