Programming Tips 1024

プログラムしているときに思いついた小ネタを書きます。このコーナーへの投稿もお待ちしてます^^
特にことわりが無い限り、C++/VC++/Win32です。情報提供者orネタ提供者がいる場合は、表題の右横に《 》で書いています。


'04/03/15 update '04/04/21

Tips 72.  grepした内容を編集して、元のテキストに反映させる

秀丸エディタを使っていて、grepでソースファイル全体から特定の文字列を検索することがあるのですが、その検索結果をさらにテキスト置換したりした場合、元のファイルへ反映させる手段がありません。たとえば、秀丸ではgrepの結果。

a.txt(10) : a.txtの10行目の内容
b.txt(15) : b.txtの15行目の内容

ってな感じでファイル名と行数が書かれています。これを元のファイルに書き戻すためのマクロが必要になります。この作業を他の人はどうやっているのかは知りませんが、私は以下のようなマクロを作ってこれを愛用しています。

moveto 0,0;
//      編集中のファイル名を待避
$f1 = basename;

while (true) {
        //      :       をサーチ
        while (true){
                right;
                if (!result) break;
                if (code==':') {
                        right 2;
                        beginsel;
                        golineend2;
                        copy;
                        break;
                }
        }

        tagjump;
        if (result){
        //      タグjumpに成功
                selectline;
                paste;
                insert "\n";
                //      元のファイルに戻る
                setactivehidemaru(findhidemaru($f1));
        }
        down 1; moveto 0,y;
        if (!result) break;
}

戻る