|
一般ユーザのたけのこです。
> >ついでに、grepのフルパス出力時にダブルクオートで囲まれた状態で
> >出力されるとさらにGoodなんですが...
>
> こちらはgrepの出力結果を利用するマクロがたくさん公開されているので、マク
> ロの互換性という意味でわりと危険だと思います。
ショートファイルネームで出力されれば問題ないのでは……てな気がしないでも
ないですけど、今、手元にあるソースファイルでgrepしても、最初の6文字だけ
ではなんのクラスか判らないのが結構……。(抽象クラスネームなんて、全部
Abstractうんちゃらだし……ま、パッケージネームから判るけど、そっちも長い
のがあったり……)。
てなワケで、ちょいと作ってみました。grepした後に実行すると、
1.ファイルネームの部分がショートファイルネームになる
2.ファイルネーム毎にセパレータ(として、ロングファイルネーム)を挿入
する
てなことをします。環境依存するかもしれませんが、適宜直してください。
--- grep2short.mac ---
if(filetype == "grep"){
#originalHandle = hidemaruhandle(0);
$s = searchbuffer;
#f = searchoption;
// 先頭へ移動
gofiletop;
$breakName = "";
$shortName = "";
#isContinue = true;
while(#isContinue){
// ファイルネームを取得
beginsel;
searchdown "\\([0-9]+\\):", regular;
if(result){
$fileName = gettext(seltopx, seltopy, selendx, selendy);
escape;
// ファイルネーム置き換え部分を消す
golinetop2;
beginsel;
searchdown "\\([0-9]+\\):", regular;
delete;
if($breakName != $fileName){
// ファイルネームブレーク!!
$breakName = $fileName;
insert "\n--- " + $fileName + " ---\n";
openfile "/n /h \"" + $fileName + "\"";
#handle = hidemaruhandle(0);
$shortName = filename3;
setactivehidemaru #originalHandle;
closehidemaru #handle;
}
// ショートファイルネームを挿入
insert $shortName;
// 次行の先頭へ
searchdown "^", regular;
#isContinue = result;
}else{
escape;
#isContinue = false;
}
}
setsearch $s, #f;
message "completed.";
}else{
message "must be run on grep-result window.";
}
(^^)/”
|
|