コマンド・プロンプトの /ff "xxx" がファイル名の先頭に空白が含まれると効かない

  1. いつも Mery を愛用させて頂いてております。
    二つほど要望があります。
    (1) 件名にありますように コマンド・プロンプトで /ff "word" ファイル名 を指定した場合、ファイル名の先頭に空白文字が存在すると /ff (ファイルから検索) が効かないようです。改善して頂けると 助かります。
    (2) もう一つは ファイルを編集している際に通常の「検索」を行った後に、上記の「ファイルから検索」の結果と同じように検索語を含んだ行だけを表示するオプションの ON/OFF ができるようにして頂けないでしょうか。

    宜しくお願い致します。

     |  hidy  |  返信
  2. ご愛用いただきありがとうございます。

    > (1) 件名にありますように コマンド・プロンプトで /ff "word" ファイル名 を指定した場合、ファイル名の先頭に空白文字が存在すると /ff (ファイルから検索) が効かないようです。

    確認しました。どうやら Windows はファイル名の先頭の空白を許可してないようですね。

    引用: "ASCII スペース (0x20) で始まるファイル名とフォルダー名は、これらの文字なしで保存されます。"

    【参考】Windows のファイル名とフォルダー名の空白文字のサポート
    https://learn.microsoft.com/ja-jp/troubleshoot/windows-client/shell-experience/file-folder-name-whitespace-characters

    そもそも、ファイル検索に使用している Windows の API が、先頭に空白のあるファイル名に対応していないので、Mery もその影響を受けているようです。

    他のエディターも確認してみましたが、秀〇エディタさん、E〇Editor さん、サク〇エディタさんなども同様、ダメみたいです。(恐らく同じ API を使っているものと思われます)

    ただ、調査してみましたところ、Windows Vista 以降では先頭に空白のあるファイル名に対応している API が用意されてるという情報を見つけたので、もしかすると対応できるかもしれません。(Windows XP では動作しませんが)

    > (2) もう一つは ファイルを編集している際に通常の「検索」を行った後に、上記の「ファイルから検索」の結果と同じように検索語を含んだ行だけを表示するオプションの ON/OFF ができるようにして頂けないでしょうか。

    これは、検索した文字列を含む行だけを表示、また、そのオン/オフを切り替えられる、いわゆるフィルター機能ということでしょうか?

    フィルター機能は開発に挑戦してみたことがありますが、エディターエンジンの設計を大幅に変更する必要があり、私の技術力では無理でした。

    将来的にはそういった機能も実装できるよう頑張りたいと思います。(MeryWiki の開発室のご意見・ご要望の一覧にある「文書から検索 (フィルター機能)」がこの機能に該当します)

    ちなみに、検索した文字列を含む行を単純に抽出するだけであれば、Mery に同梱されている [このファイルから検索(マッチする行).js] というサンプルマクロが使えるかもしれません。

     |  Kuro  |  返信
  3. すみません、返信の仕方を間違えてしまいました。
    (1) については、期待してお待ちしております。
    (2) に関しては、ご指摘頂いたサンプルマクロ「このファイルから検索(マッチする行).js」で十分役割を果たせそうです。

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

     |  hidy  |  返信
  4. > すみません、返信の仕方を間違えてしまいました。

    いえいえ、お気になさらず。誤投稿はこちらで削除しておきました。

    > (1) については、期待してお待ちしております。

    これは新しい API を使って実装してみたところ、うまく動作しているようなので次のバージョンでは対応できそうです。

    > (2) に関しては、ご指摘頂いたサンプルマクロ「このファイルから検索(マッチする行).js」で十分役割を果たせそうです。

    そうでしたか、安心しました。

    マクロは簡単なサンプルなので実用性は低いと思いますが、カスタマイズすれば [ファイルから検索] の結果みたいに、「ファイル名 + 行番号」の形式で出力なども割と簡単にできると思います。

     |  Kuro  |  返信
スポンサーリンク