RコードをクリーンアップするためにEmacsで正規表現を作成したいと思います。
私が遭遇した問題の1つは、さまざまな種類のコメントがあることでした。一定量の空白(1)を持つコメントがあります。例:
# This is a comment:
# This is also a comment
または、次のような状況があります(2):
require(lattice) # executable while the comment is informative
アイデアは、コメントが第2の種類の場合(実行可能なものの後)に、第1の種類のコメントを除外して、コメントを揃えたいというものです。
理想的には、すべてのコメントを第1種のコメント間で整列させますが、第1種のコメント間では整列させません。
例:
funfun <- function(a, b) {
# This is a function
if (a == b) { # if a equals b
c <- 1 # c is 1
}
}
#
に:
funfun <- function(a, b) {
# This is a function
if (a == b) { # if a equals b
c <- 1 # c is 1
}
}
#
最初の種類のものを置き換える正規表現を見つけたので、段落ごとにそれらを整列させることができました(マーク-段落)。それはちょっとうまくいきました。
問題は逆置換です:
(replace-regexp "^\\s-+#+" "bla" nil (point-min) (point-max))
これは、行の先頭から、次のような任意の量の空白と任意の量のコメント文字に置き換えられます。
#########
の中へ
bla
問題は、それらを元の状態に戻したいので、「bla」は同じ量の空白と同じ量の#に戻らなければならないということです。
うまくいけば、誰かが私がやろうとしていることを理解し、アプローチのより良いアイデアを持っているか、この正規表現の部分を解決する方法を知っています。