Vimでperl regex replaceコマンドを書くにはどうすればいいですか? (this pandoc epub tutorialから撮影):vimのPerl正規表現ですか?
perl -i -0pe \
's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg' \
*/*.markdown
Vimでperl regex replaceコマンドを書くにはどうすればいいですか? (this pandoc epub tutorialから撮影):vimのPerl正規表現ですか?
perl -i -0pe \
's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg' \
*/*.markdown
第2の捕捉グループに[^\n]*
の代わりに.*
を使用しました。複数行のフラグは必要ありません。
美しい、ありがとう! – drozzy
PCREからVimの構文に自動的に変換される 'eregex.vim'というプラグインがhttp://www.vim.org/scripts/script.php?script_id=3282あります。 –
その後、例えば、そのフィルタを介してパイプに現在のファイルをVimの中1G!G
または:%!
を使用するパイプラインフィルタに
perl -pe 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg'
を既存のワンライナーを作ります
s/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg
次のようになります:あなたはキャプチャグループを脱出し、私ことする必要が
注私は-i -0pe
フラグのために話すことはできませんが、正規表現は
:%!perl -pe 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg'
あなたが探しているものの多くは、あなたが「魔法のように」設定されているものに依存しています。 vimが文字通り何を取るかについては、:help magic
を参照してください。
あなたはそれに一致するものの例を追加できますか?書かれているように、私はどのくらいのシンボルをエスケープすべきか分かりません。 '\ s *'は ""か "*"と一致するべきですか?私は後で仮定している。 –