「選択範囲の変換」→「改行の削除」で連続した改行が削除されない

  1. いつもMeryのお世話になっております。今回はMeryのVersion 3.6.1にバージョンアップして遭遇した現象についての報告です。メニューバーの「編集」/コンテキストメニュー→「選択範囲の変換」→「改行の削除」ですが、これまでどおりに単独の改行記号(つまりは文字列末尾の改行)は削除されますが、連続した改行(空行の連続部)は削除されなくなっています。仕様変更でこうした処理にする理由も考えにくく、おそらくは何らかの処理漏れだと思われるので、報告しておく次第です。

     |  コーチ  |  返信
  2. ご愛用とご報告いただきありがとうございます。

    [改行を削除] コマンドについてですが、Ver 3.5.9 から、空行を保持する仕様に変更しました。

    これは、テキスト内の「段落」を保ったまま、不要な改行を削除して行を結合できるようにするための対応です。

    単純に改行を削除する場合、[置換] で \n を空の文字列に置換するだけで実現できますが、段落を保持しながら改行を削除するのは [置換] では難しいため、そういった状況で [改行を削除] コマンドが役立つことと思います。

    どうぞご了承くださいませ。

     |  Kuro  |  返信
  3. 質問者です。当方の質問に対する返信ありがとうございます。今回の挙動変更は仕様とのこと、了解しました(質問前にざっと変更履歴は目を通したのですが、該当する説明を見落としていたのかもしれません)。

     |  コーチ  |  返信
  4. 本質問の投稿者です。

    以前行っていた「空行を含めた改行の一括削除」ですが、下記のようにして再現することができました。

    Meryのマクロ機能で下記の処理を記録
    ・置換機能の「正規表現」で改行記号を示す\nを削除
    ・その際に「選択した範囲のみ」オプションをオン

    この記録結果をマクロメニューに登録しておくことで、一発で処理できるようになりました(実際には、メニューのショートカットアクセスにキーストローク数回が必要)。

     |  コーチ  |  返信
  5. ご返信ありがとうございます。

    変更履歴ですと、Ver 3.5.9 (2023-08-11) の「[改行を削除] と [行の結合] で、空の行を無視するようにした」に該当します。

    これらの機能はもともと「折り返し位置」の改行を削除するために設計されており、右端に改行を入れて折り返す形式の文書整形に利用されていました。

    このため、段落 (空行) を残すように変更したのは、特にメールの文面などで役立つケースを考慮しての改善でした。

    以前の仕様の方がお好みだったとのことで、ご不便をおかけしました。マクロでご対応いただけたのことで、ご協力ありがとうございました。

    キーストロークが数回必要とのことですが、[オプション] の [キーボード] カテゴリから、マクロにショートカット キーを割り当てることも可能ですので、1 ストロークで実行できるようにも設定できると思います。

     |  Kuro  |  返信
  6. 本質問の投稿者です。ご返信ありがとうございます。

    私の「選択行中の改行記号を一括削除」の用途としては、次のような手順で文章の書き起しをする際に利用していました。

    ・とりあえず書くべき内容を単語レベルで箇条書き式に列挙。
    ・コピー&ペーストやマウス・ドラッグで順番を整理。
    ・この段階で空行がいろいろ発生(というか、文章構成を考える際に意図的に空行を入れる)。
    ・「てにをは」「句読点」などを追加入力して文章化。
    ・改行でブツ切り状態の複数行を改行削除で一行化。

    こうした作業プロセスであっても途中で空行が発生しないよう、こまめに整理していけばいいのですが、「選択行中の改行記号を一括削除」で空行も含めて削除できるなら「最後にまとめて削除でいいのでは」的に利用してきたので、当該機能の仕様変更でまごついたという訳です。

    キーストローク云々に関しては、私個人としては特に不便に感じておりません。

    「選択行中の改行記号を一括削除」をするごとに「置換ダイアログを呼び出して検索・置換の諸元を入力」という手間を繰り返すのは煩雑であったので、マクロ経由のキーストローク数回で済めば御の字です(その他の各種コマンドもキーコンビネーションで呼び出していますし)。

     |  コーチ  |  返信
  7. ご返信ありがとうございます。

    なるほど、そういう用途だったのですね。そこまでは想定しておらず、仕様変更によりご不便をおかけしました。

    空行を削除してから [改行を削除] すれば良いかも、と思い、Ver 3.6.2 では [空行の削除] (RemoveEmptyLines.js) マクロを同梱してみましたが、そのような用途では、選択範囲を保持することが重要になりそうなので、ちょっと使えそうにないですね。

    とりあえず、マクロを使用しての対応で問題ないということ、そして仕様変更についてのご理解、ありがとうございました。

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