2016-10-13 3 views
0

私はCのような複数の逆参照がある大きなコードファイルを持っています。VIMの場合<word> - > abcからABC(<word>)までのすべての可能な値を置き換える方法<word>

iter->sector; 
msg->sector; 
dump.msg->sector; 

ここで、iterとmsgのタイプは同じです。さて、いくつかの変更のために、これらの行を置き換えるために、マクロを記述しなければなりませんでした。マクロは、私が欲しいもの

DUMMY_MACRO(iter) 
DUMMY_MACRO(msg) 
DUMMY_MACRO(dump.msg) 

、のように見えることはVimの検索/置換を使用して新しいマクロコードに、以前のコードの交換を行うことができるようにすることです。

+3

これまでに試したことはありますか?あなたの試みを示し、あなたが難しかっている部分を記述することによって、私たちはあなたの熟練度をよりよく理解し、より正確な答えを出すことができます。それが現れたときに、あなたが要件を掲示して誰かにあなたのコードを書いてほしいと思うように見えます。これは単純な検索と置換です。 ':help:s'と':help \ 1'は必要なものだけでなければなりません。 –

+0

私は\ 1について知りませんでした。検索をやり直してみました。それはちょっと間違っていたので、ここには投稿しませんでした。ポインタありがとう。 – saketrp

答えて

2

あなたがすでにsedを知っている場合は、:substituteが最適なツールになります。

" untested 
:%s/\v(\S+)-\>sector/DUMMY_MACRO(\1)/g 

:h :s 
:h /\v " -> to simplify expressions 
:h /\( " -> define a group 
:h /\S " -> any thing that is not a space 
:h /\+ " -> 1 or more 
:h /\1 " -> ref to 1st group 
関連する問題