引用符等を検索して見つからないときにステータスバーに表示されるメッセージの検索文字の前にバックスラッシュが追加される

  1. 引用符やバックスラッシュを含む文字列を検索したとき、見つからないときにステータスバーに表示される「現在位置より下に 〜 は見つかりませんでした。」というメッセージの引用符やバックスラッシュの前にバックスラッシュが追加されて表示されるようです。

    検索文字列が'"\だった場合ステータスバーのメッセージは以下のようになります。

    現在位置より下に \'\"\\ は見つかりませんでした。
    

    Mery Ver 2.6.7 ではこの現象は起きませんでした。


    Mery: 3.8.2 (x64)
    OS: Windows 11 (Version 25H2, OS Build 26200.7171, 64-bit Edition)

     |  ucky  |  返信
  2. ご報告ありがとうございます。

    これは Ver 3.0.0 以降の仕様変更によるものですね。

    Ver 2 系ではタブ文字や制御文字をそのまま扱っていたため、ステータスバーに文字として表示できないケースがありました。

    そこで Ver 3.0.0 からは、検索文字列を JavaScript の文字列形式にエンコード (エスケープ) して、不可視文字を可視化して表示する方式に変更しています。

    タブ文字 → \t

    円マーク → \\

    …というような形で表示されます。

    また、この仕様は検索操作をマクロとして記録した際の文字列形式とも統一されているため、JavaScript やマクロ機能をご利用の場合には、一貫した挙動として理解しやすくなっているかと思います。

    マクロを使われない場合は少し違和感があるかもしれませんが、現状ではこのような仕様となっています。

    ただ、ちょっとした親切心から入れた機能ではあるものの、初心者向けのエディターということを考えると、少し分かりづらい場面もありそうですね😅

    タブ文字が \t と表示されて「これ何?」となる方もいらっしゃるでしょうし、「不可視文字は見えないままのほうが自然」という考え方もあると思います。もう少し工夫できる余地はありそうですね。

     |  Kuro  |  返信
  3. 仕様だったんですね、失礼しました。

    不可視文字の可視化やマクロの記録との一貫性という面ではこの仕様のほうが分かりやすいですね。意図を理解すると自分もこちらのほうが便利だと思いました。

    でも確かにエスケープシーケンスを知らない方からすると検索した文字列と違うものが表示されると分かりづらいかもしれませんね。

     |  ucky  |  返信
  4. ご返信ありがとうございます。

    > でも確かにエスケープシーケンスを知らない方からすると検索した文字列と違うものが表示されると分かりづらいかもしれませんね。

    いただいたご意見を踏まえて、あらためて表示方法を検討してみました。

    • \n\t って、普段プログラムに触れない方にはちょっとピンとこない
    • ただ、制御文字はそもそもそのままでは見えないので、そこだけエンコードされていても違和感は少ない
    • ステータスバーはあくまで「閲覧用途」ということで、厳密さより分かりやすさを優先する

    ということで、JavaScript の文字列形式ほどガチガチではなく、「その場で見て直感的に理解できる」ことを優先したシンプルな書式にする感じです。

    • 改行(0x0A) → \n
    • タブ(0x09) → \t
    • その他、名前付きエスケープ → \a\b\v\f\e など
    • バックスラッシュ \ は そのまま
    • ダブルクォート "、シングル ' もそのまま

    つまり、見えない文字だけちょっと見えるようにするくらいの軽いエンコードですね。

    適用範囲としては、ステータスバーだけでなく [ファイルから検索] の結果が表示されるタイトルバーや、クリップボード履歴の一覧などにも共通になっていますが、それほど影響はないかなと…。

     |  Kuro  |  返信
  5. ご検討ありがとうございます。

    提示していただいた案、分かりやすくて良い仕様だと思います。

    一貫性はなくなりますが、引用符やバックスラッシュがそのまま表示されることに疑問を持つ方は少ないと思います。

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