テキストエディタで行を連結する (Geany)

テキストエディタで行を連結する (Geany)

テキスト ファイルには複数の行があり、テキスト エディターでそれらを結合 (連結) したいと考えています。つまり、コマンド ライン ツールに頼らずに (特に Windows ではコマンド ライン ツールがまったく利用できない場合もあります) 結合 (連結) したいのです。

私は Geany とその検索および置換機能を使用していますが、成功しませんでした。(複数行の) 正規表現を使用して $ を何もないものに置き換えようとしたり、エスケープ シーケンスを使用して \n を何もないものに置き換えようとしたりしました。

複数行のマッチングでも、コンテンツのみが置き換えられ、(空の)行はそのまま残されるようです。

それを実行する簡単な方法はありますか?

答え1

@Prasanna のおかげで、「エスケープ シーケンス ベース」の置換で動作するはずだと確認できました。行の終了に問題がある可能性があり、実際に \n をスペースに置き換えると、各行の先頭にスペースが挿入されることがわかりました。

したがって、プラットフォームに依存すると思いますが、使用中の行の末尾に応じて動作するはずです。

Windowsでは、

\r\n

必要に応じて、何も入力しない (空の文字列) か、スペース文字に置き換えます。

正規表現では、まったく効果がないようです。

答え2

Geany で正規表現の検索と置換を使用して行を結合する秘訣は、Use multi-line matchingが有効になっていることを確認することだと分かりました。私は Geany が大好きなので、行末を削除する手順を次に示します (ここでは Windows を示していますが、*nix の場合は必要に応じて行末のエスケープ文字を変更してください)。

  • 行末を確認してください。メニューから選択しますView >> Show line Endings (たとえば、Windows では CRLF (\r\n) が表示されます)。
  • 結合したい線をハイライト/選択します
  • CTRL-H (置換)
  • フィールドにSearch for:入力\r\n
  • フィールドにReplace with:何も入力しないでください
  • Use regular expressionsチェックされていることを確認する
  • Use multi-line matchingチェックされていることを確認する
  • クリックするIn Selectionと、選択範囲内のすべての行が結合されます (もちろん、必要に応じて、ドキュメント全体または行ごとにこれを行うこともできます)。

確認しないと動作しませんのでUse multi-line matching、それが秘密のヒントです。

答え3

実は、Geanyには「行を結合」コマンドがありますが、これは隠されています。編集/設定/キーバインドアクション: フォーマット/行を結合で、そこでキーボードショートカットを割り当てることができます。ライン結合失敗 #510:

はい、「行を結合」はメニューにありません。これは見つけにくくなるため良くありません。また、キーバインドを割り当ててもメニューに表示されるようにはなりません。

しかし、キーバインディングが割り当てられている場合は、ccec1fe で動作します。

関連情報