「2170 小さな要望(空行挿入)」にフォロー書いていて、ふと思い付いた事。
ファイル全体を改行コード LF (0x0a) に統一する場合。
Ctrl+R で置換画面を出す。
・置換前(N)「[\r\n]+」
・置換後(P)「\n」
・正規表現(E) ←チェックする。
で [すべて置換(A)] ボタンをパシーンと押せば一発でファイル全体が LF 改行になりますね。
[置換(R)](変換する)と [下検索(D)](変換せず次の行へ)で押し分けてみてもよし。
また、範囲指定してから置換出して、上記設定にしてから「選択範囲(S)」を
選択後、[すべて置換(A)] で指定範囲の行のみ改行コードが LF になりますね。(当然ですが)
改行コードを CRLF に統一する場合は置換後(N)を「\r\n」に変えるだけ。
改行コードを CR に統一する場合は置換後(N)を「\r」 に変えるだけ。
・\r\n = CRLF 0x0d,0x0a
・\n = LF 0x0a
・\r = CR 0x0d
んで、これをマクロに記述して右クリックメニューとかに登録することまで考えてみる。
--------- 2CRLF.MAC ---------
//キーボードマクロのファイル
S_ReplaceAll('[\\r\\n]+', '\\r\\n', 148); //
S_CancelMode(0); // 各種モードの取り消し
S_SearchClearMark(0); // 検索マークの切替え
S_MoveHistPrev(0); // 移動履歴: 前へ
S_ReDraw(0); // 再描画
---------- 2LF.MAC ----------
S_ReplaceAll('[\\r\\n]+', '\\n', 148); //
S_CancelMode(0); // 各種モードの取り消し
S_SearchClearMark(0); // 検索マークの切替え
S_MoveHistPrev(0); // 移動履歴: 前へ
S_ReDraw(0); // 再描画
---------- 2CR.MAC ----------
//キーボードマクロのファイル
S_ReplaceAll('[\\r\\n]+', '\\r', 148); //
S_CancelMode(0); // 各種モードの取り消し
S_SearchClearMark(0); // 検索マークの切替え
S_MoveHistPrev(0); // 移動履歴: 前へ
S_ReDraw(0); // 再描画
-----------------------------
これらを共通設定→[マクロ] でそれぞれ
・改行コードを CRLF (Win):2CRLF.MAC
・改行コードを LF (UNIX) :2LF.MAC
・改行コードを CR (MAC) :2CR.MAC
とか設定して、マウス右クリックメニューに登録してみた。
ちなみに
・範囲選択してから実行すると選択範囲内の改行コードのみ変わる。
・範囲選択せず実行するとファイル全体の改行コードが変わる。
と なるようにしてある。いかがなものでしょ?
難点はカーソル位置が保存されないこと。変換が終ると、とんでもない所(ファイル末尾とか)へ行ってしまう。
ので、ラストに S_MoveHistPrev 入れたけど...
「元の位置近辺に戻る確率が高い」だけで完全に元の場所には戻らないし。。。
置換処理に対しては「検索開始位置へ戻る」も機能しないようだし。。。(未解決)
全行が「変更行」になってしまうというのは愛敬という事で。