正規表現置換を行うコマンド、つまりreplace-regexp
やquery-replace-regexp
、query-replace-regexp-eval
にはカウンタが組み込まれており、replace-count
という名前で参照することができる。これを利用すると、「letter: Emacs 番号をふる。query-replace-regexp-eval が便利」で紹介されているような作業が楽に行える。
※参照先の記事ではquery-replace-regexp-eval
を使用しているが、Emacsのヘルプを確認したところ"This function is obsolete since 22.1"
と書かれていた。だから、新し目のEmacsの場合はquery-replace-regexp-eval
の代わりにquery-replace-regexp
を使い、置換後の文字列の所に\,
を指定するようにする。
(query-replace-regexp-eval REGEXP TO-EXPR &optional DELIMITED START END)
This function is obsolete since 22.1;
for interactive use, use the special `\,' feature of
`query-replace-regexp' instead.
replace-count の省略形: \#
ヘルプに書いてあることだが、replace-count
と同じ意味を表すのに \#
が使える。
これを利用すると、
aaa bbb ccc
を
1. aaa 2. bbb 3. ccc
へ置換するためのコマンドは次のようになる。
M-x query-replace-regexp[Enter] または M-x replace-regexp[Enter] ^[Enter] (format "%d. " \,(1+ \#))[Enter]
少しだけキータイプの量が減らせたよ、と。
0 件のコメント:
コメントを投稿