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;
}
|