[要望]"ファイル名と思わしき場所"のPATHNo.17478
どらごら さん 04/06/30 17:45
 
こんにちは、どらごらです。

"ファイル名と思わしき場所"は、現状スペース込みのPATHは認識
しませんよね?
#ダブルクオート(")に囲まれていても...

そこでダブルクオートで囲まれている場合は、スペース込みでも
フルパスとして、認識できないでしょうか?

ついでに、grepのフルパス出力時にダブルクオートで囲まれた状態で
出力されるとさらにGoodなんですが...

ご検討よろしくお願いします。

--現状パターン--
C:\aiueo\kakikukeko\abc.txt     <OK
C:\program files\abc.txt       <NG:files\abc.txt
"c:\program files\abc.txt"     <NG:files\abc.txt
.\aiueo\kakikukeko\abc.txt      <OK
".\aiueo\kakikukeko\abc.txt"    <OK
..\aiueo\kakikukeko\abc.txt     <OK
"..\aiueo\kakikukeko\abc.txt"   <OK

[ ]
RE:17478 [要望]"ファイル名と思わしき場No.17489
アルビレオ さん 04/07/01 02:39
 
秀丸ユーザーのアルビレオです。

>そこでダブルクオートで囲まれている場合は、スペース込みでも
>フルパスとして、認識できないでしょうか?

この案自体は悪くないと思いますが、これが実現すると今度は「ダブルクォート
で囲まれていたら日本語文字を含んだファイル名も認識して欲しい」という要望
が出てきそうです。
そうなるとダブルクォートで囲まれた中にピリオドがあって、ファイル名として
使えない文字が含まれていなければなんでもファイル名とみなす、というルール
になったりして…
というのはちょっと先走った想像ですが、日本語ファイル名を認識して欲しいと
いう要望はたぶん出てくるでしょうね。

>ついでに、grepのフルパス出力時にダブルクオートで囲まれた状態で
>出力されるとさらにGoodなんですが...

こちらはgrepの出力結果を利用するマクロがたくさん公開されているので、マク
ロの互換性という意味でわりと危険だと思います。

[ ]
RE:17478 [要望]"ファイル名と思わしき場No.17494
秀まるお2 さん 04/07/01 09:40
 
 ファイル名をダブルクォーテーションで囲むというのは、Windowsソフトでの
コマンドラインでファイル名を指定する時のルールであって、テキストファイル
上でファイル名を書くときの一般的なルールという訳では無いと思います。例え
ば他のソフトでも同じようなルールになっているという例があるなら別ですが、
今のところは秀丸エディタが率先してそういうカラー化を行うのはよくないと思
います。

[ ]
RE:17489 [要望]"ファイル名と思わしき場No.17496
たけのこ さん 04/07/01 11:36
 
一般ユーザのたけのこです。

> >ついでに、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.";
}

(^^)/”

[ ]
RE:17494 [要望]"ファイル名と思わしき場No.17497
Iranoan さん 04/07/01 12:05
 
 どらごらさん今日は、Iranoan です。
>  ファイル名をダブルクォーテーションで囲む
<snip>
> そういうカラー化
 元々その様な場所をカラー化したい理由は何なのでしょう? もし目立たせる
など視覚的な理由なら、これから書くことは意味がないですが、「...を開
く」等を利用してファイルを開きたいということなら、他に方法があります。

> "c:\program files\abc.txt"     <NG:files\abc.txt
 この場合は、予め範囲選択してから「...を開く」を実行すればよいです。
範囲選択するのが面倒なら、「"」で挟まれた部分を範囲選択するマクロを組
むことで対処できます。

> grepのフルパス出力時
 こちらはフルパスかに関わらず、「タグジャンプ」(デフォルトでは [F10])
を使えば、秀丸でファイルを開き、見つかった行へ移動もします。

[ ]
RE:17497 [要望]"ファイル名と思わしき場No.17506
どらごら さん 04/07/02 14:27
 
こんにちは、どらごらです。

マルチレス失礼します。

To:アルビレオさん

> というのはちょっと先走った想像ですが、日本語ファイル名を認識して欲しいと
> いう要望はたぶん出てくるでしょうね。

 出てくるでしょうね^^;
 自分でマクロを組もうとして、その壁にぶつかったので要望しました。

> こちらはgrepの出力結果を利用するマクロがたくさん公開されているので、マク
> ロの互換性という意味でわりと危険だと思います。

 十分承知しています。でも他に案が思いつかなかったってのも
 あるのですが...

To:秀まるお2さん
> ば他のソフトでも同じようなルールになっているという例があるなら別ですが、

 元々は他の開発者が構築したVM環境に、さくらエディタが入って
 いまして、grepしたパスをダブルクリックで開けるってのが
 要望を出した動機です。
 ダブルクオート云々は、一つの案です。

To:たけのこさん
> ショートファイルネームで出力されれば問題ないのでは……てな気がしないでも
> ないですけど、今、手元にあるソースファイルでgrepしても、最初の6文字だけ
 
 ショートネームなら確かに出来ますね。
 でもたけのこさんもおっしゃってるように、6文字では足りないです--;
 バージョン違いフォルダー毎grepした時等です。

To:Iranoanさん
> 元々その様な場所をカラー化したい理由は何なのでしょう? もし目立たせる
>など視覚的な理由なら、これから書くことは意味がないですが、「...を開
>く」等を利用してファイルを開きたいということなら、他に方法があります。

>> "c:\program files\abc.txt"     <NG:files\abc.txt
> この場合は、予め範囲選択してから「...を開く」を実行すればよいです。
>範囲選択するのが面倒なら、「"」で挟まれた部分を範囲選択するマクロを組
>むことで対処できます。

 デフォルトでは出てきませんが「ユーザーメニュー編集」で
 対応出来ますね...

>> grepのフルパス出力時
> こちらはフルパスかに関わらず、「タグジャンプ」(デフォルトでは [F10])
>を使えば、秀丸でファイルを開き、見つかった行へ移動もします。

 ほんとだ。確かにいきますね。っていうか、タグジャンプ初めて
 使いました。&ヘルプで確認。

 というわけで、解決しました(ぉ

このままだとあまりにも私のボケぶりなので、色々試してみました。
既出ならすみません。

1.フォルダー構成:C:\temp\abc def\あいうえお\grep\test.txt
2.test.txt中身
---
(0)grepテスト
test.txt(100):あいうえおgrep
C:\temp\abc def\あいうえお\grep\test.txt(1)
---
3.grepオプション
  −検索する文字列:grep
 −検索するファイル:*.txt
 −サブフォルダも検索:True
 −ファイル名をフルパスで出力:True
 −etc...:False

すると、
---
C:\temp\abc def\あいうえお\grep\test.txt(1): (0)grepテスト
C:\temp\abc def\あいうえお\grep\test.txt(2): test.txt(100):あいうえおgrep
C:\temp\abc def\あいうえお\grep\test.txt(3): C:\temp\abc def\あいうえお\grep
\test.txt(1)
---
こうなり確かにタグジャンプで、test.txtが開かれるのですが...
grep結果の3行目の左側は3行目を指定していて、
右側は1行目になっていますが、右側のパス内にカーソルを持って行き
タグジャンプしたら、3行目が表示されます。

[ ]
RE:17506 [要望]"ファイル名と思わしき場No.17507
Iranoan さん 04/07/02 19:05
 
 どらごらさん今日は、Iranoan です。
> C:\temp\abc def\あいうえお\grep\test.txt(3): C:\temp\abc def\あいうえお\grep
> \test.txt(1)
<snip>
> 左側は3行目を指定していて、
> 右側は1行目になっていますが、右側のパス内にカーソルを持って行き
> タグジャンプしたら、3行目が表示されます。
 これは秀丸の仕様です。「タグジャンプ」はカーソルの位置にかかわらず、
常に論理行頭の記述で判断されます。

 上記の仕様の有用性は理解できますが、互換性の問題があります。その為、
もしその様な動きをさせたければ、そういったマクロを作れば良いと思います。

[ ]
RE:17507 [要望]"ファイル名と思わしき場No.17520
どらごら さん 04/07/06 11:36
 
こんにちは、どらごらです。

遅くなって済みません。

> これは秀丸の仕様です。「タグジャンプ」はカーソルの位置にかかわらず、
>常に論理行頭の記述で判断されます。
> 上記の仕様の有用性は理解できますが、互換性の問題があります。その為、
>もしその様な動きをさせたければ、そういったマクロを作れば良いと思います。

了解しました。「タグジャンプ」に関しては、新しく覚えた機能に対する
動作検証の割合が高いため、現時点で特に不満はありません。

ありがとうございました。

[ ]