2012-01-16 9 views
5

私は定期的に数多くの正規表現の置換を行っていますので、これを簡単に行うためにキーをマップしたいと考えています。しかし、置き換えられる正規表現の1つがファイル内に見つからない場合、私のキーマッピングはE486: Pattern not foundのため停止し、それ以上の置換は実行されません。例えば。私のvimrcでのマッピングがVim:マップされた置換リストのエラーを無視する

map <F12> :%s/spam/foo/<enter>:%s/ham/bar/<enter>:%s/eggs/baz/<enter> 

で、私のファイルにはhamがない場合、eggsは置換されていません。エラーを無視するために置き換えることができるフラグはありますか? :help regex:help mapを読んだことがありません。

これとは別に、私が行方不明になっている別の簡単で分かりやすい方法がありますか?

+0

( 'g'や' e'のようなフラグを付け加えないと、最後の '/'を保存することができます: '%s/spam/foo ' Bireiは、何かを削除したいだけです(1行に最初のオカレンスのみ): ':%s/spam ') –

+0

私は知っています。私はちょうど閉じられていないスラッシュを持っているのが好きではありません;) – kthy

+0

スラッシュはペアで行っていません:-) – romainl

答えて

14

各置換コマンドに/eフラグを追加します。エラーメッセージは表示されず、エラーが発生していないかのように続行されます。

map <F12> :%s/spam/foo/e<enter>:%s/ham/bar/e<enter>:%s/eggs/baz/e<enter> 
+0

おかげで、それはスズについて何を言うか。どのように私がそれを逃したかわからない。<< – kthy

8

あなたはパターンの末尾に「フラグ」を追加することができます:これは、新しいマッピングだろう

:%s/spam/foo/e 

それがspamを見つけて、あなたが許可されていない場合はエラーを吐くません。続ける。

:help flagsを参照してください。