3
との表現をサブ置き換えるだから私はこのVimの複数のテキスト
Two words
Three Words Here
のようなものを取ると、この
Twowords = myHash["Two words"];
ThreeWordsHere = myHash["Three Words Here"];
と交換する方法を探していた私は、私を導いた、この質問を見つけましたサブ置換コマンドに、私はこのようなものに来た。
%s/\(\([A-z ]\)\+\)/\=substitute(submatch(1), ' ', '', 'g')/
ここでは、スペースを含まない一致が表示されますが、等号の後には何も表示されません。代入式の後にテキストを追加すると、 "E51:無効な式"エラーが発生します。
私の質問です:式を終了し、:sコマンドにさらにテキストを追加する方法はありますか?このようなもの。
%s/\(\([A-z ]\)\+\)/\=substitute(submatch(1), ' ', '', 'g') = myHash["\1"];/
私は何かを見つけることができませんでした。私は見ました:ヘルプサブ置換 - \ =と他のソースをオンラインにします。ありがとう!
正規表現(OPが提供)を除いて、あなたのコードが動作します。それ以外は等しく、 ':%s/\([A-z] \ + \)/'で始まり、彼のサンプル入力に基づいて望みの出力を得るべきです。アップアップされました! – bonsaiviking
私はまだそれが動作すると思う、それはちょうどそこに余分なグループが必要ではありません。残念ながら私は現時点でそれをテストすることはできません。 –
奇妙なことに、以前は私にとってはうまくいかなかったが、今はそうだ。混乱させて申し訳ありません。 – bonsaiviking