改行の取り扱い

 置換で改行を削除しようとして気づいたけどM-rって正規表現理解しないね。ちょっと不便。仕方なく置換のダイアログをだしてやろうとしたけど、検索に\n、置換には何も入力しないでやってみたら、見つからないとか。\nで改行を認識しないのかと思って色々調べていたら、エスケープしているのが分からないらしい。ダイアログの所にエスケープシーケンスを理解するというチェックがあったので其れを押してから検索したら普通に出来た。しかし、これはやや不便だ。
正規表現を理解する置換をミニバッファとかから気軽にしてみたいようなきもした。

■適当にまとめ
M-x search-dialog エスケープシーケンスを理解するにチェック
M-x re-search-forward  「\n」「\t」は理解しない。改行をマッチさせるには[C-q C-j]*1
C-jはC-jそのままでもS-RETでも同じような動きをするかもしれない。

■追記 : 2chで見たエスケープシーケンスを理解する置換。

(in-package "editor")
(defun replace-regexp (regexp replacement &optional arg noerror)
  (interactive "*sReplace regexp: \nswith: \np"
	:default0 *last-search-regexp* :history0 'search
	:default1 *last-replace-regexp* :history1 'search)
  (when arg
	(setq regexp (decode-escape-sequence regexp t)))
  (perform-replace regexp replacement nil t (interactive-p) noerror))
(in-package "user")

from http://pc11.2ch.net/test/read.cgi/software/1163847543/475

■見たところ
改行だけの行を削除
http://hie.s64.xrea.com/xyzzy/ml/msg04165.html
ここは中身を見る限り少し古いのかもしれない。
■追記
xyzzy manual
http://www.jsdlab.co.jp/~kei/xyzzy/xyzzy2.html#omake_charcode_change
CRとLFがバラバラのときもありそうなので、改行の類のコードを変えるときもあるかもし。

*1:C-jは改行文字を表す。