我正在尝试将参数传递给Emacs (Lisp)中的align-regexp函数:
(defun align-on-comment-char ()
(interactive)
(align-regexp (region-beginning) (region-end) "#")
)实际上,我想为我的所有模式特别这么做,对于每个模式,我想绑定一个"align to comment character (; for emacs lisp,% for Latex,# for R)“。
我遗漏了什么?
发布于 2012-10-15 04:00:34
comment-start和comment-end是获取当前模式的注释字符串的常用变量。
在调用align-regexp时,您还需要添加一些魔术以获得正确的匹配。像奥列格一样,我不得不通过查看源代码来艰难地弄清楚这一点。这里的错误消息并不是真正的描述性的,我真的认为这值得一个错误报告,或者至少是一个文档修复。
(defun align-comment (beg end)
(interactive "r")
(align-regexp beg end (concat "\\(\\s-*\\)" comment-start))
)发布于 2012-10-15 04:16:04
你应该稍微修改一下你的代码。
例如:
(defun align-on-comment-char (beg end)
(interactive "r")
(align-regexp beg end "\\(\\s-*\\)#")
)一个神奇的字符串"\\(\\s-*\\)"取自align-regexp的源代码。
如果你想对所有的模式都有一个单一的函数,那么就像@pmr指出的那样使用comment-start变量。
(align-regexp beg end (concat "\\(\\s-*\\)" comment-start))https://stackoverflow.com/questions/12885916
复制相似问题