こういう状態で置換で「\r\n」、「」としても、下のように1行にまとまる、悲しい結果になるのと、毎回検索するのが面倒なのでマクロに登録しようと思います。
マクロを使わずに置換する場合は、
置換前:「^\r\n」
置換後:「」
で大丈夫でした。古いバージョンのサクラエディタだとうまくいかない場合もあるので
その場合は「^[\r\n]+」とすると良いです。
----正規表現の意味----
^ : 行頭
[] : []内で指定した文字のどれか 今回は「\r」「\n」「\r\n」のいずれかを意味します。
\r 、 \n 、 \r\n : OSの違いによる改行コード
+ : 1つ左の文字の1個以上繰り返し
つまり、行頭に\r,\n,\r\nのどれかが1個以上ある場合、それは削除するという動作になります。
--------------------
マクロを使う場合
ファイル名は適当に「replace_blank-del.mac」などとして、
//キーボードマクロのファイルと記述します。青字の//以降の部分はコメントなので記述不要です。
S_ReplaceAll('^\\r\\n', '', 60); // すべて置換
S_ReDraw(0); // 再描画
記述方法がなかなか理解できず悩みました。。
ヘルプには、
構文
void S_ReplaceAll ( S1 , S2 , i1 )
引数 型 内容 S1 文字列 置換前の文字列
空文字列 (’’) は受け付けない。S2 文字列 置換後の文字列 i1 整数数値 置換ダイアログの状態を10進数数値で指定する
設定値とあります。
引数 i1 の設定値は次のとおりです。
それぞれの bit が 0=チェックOFF / 1=チェックON
bit 内容 0 単語単位で探す 1 英大文字と小文字を区別する 2 正規表現 3 見つからないときにメッセージを表示 4 置換ダイアログを自動的に閉じる 5 先頭(末尾)から再検索する 6 クリップボードから貼り付ける 7 0=ファイル全体 / 1=選択範囲 9,8 00=選択文字 / 01=選択始点挿入 / 10=選択終点追加
「S1」は検索する文字列で、\をヒットさせるには\\と2つ続ける必要があります。
「S2」は置換後の文字なので''と空にします。
「i1」については、使用する機能をチェックONとして、そのビット数を2進数から10進数に変換した値を指定します。
文章では分かりづらいと思うので図で示すとこんな感じです。
8ビット目の、「選択始点挿入」にチェックをする場合は、256を足すので、60+256=316と記述します。
0 件のコメント:
コメントを投稿