[英]Emacs calling align regexp
我試圖將參數傳遞給Emacs(Lisp)中的align-regexp函數:
(defun align-on-comment-char ()
(interactive)
(align-regexp (region-beginning) (region-end) "#")
)
我實際上想特別為我的所有模式執行此操作,對於每種模式,我想綁定“對齊注釋字符( ;
對於emacs lisp, %
為Latex, #
為R)”。
我錯過了什么?
comment-start
和comment-end
是獲取當前模式的comment-string的常用變量。
在調用align-regexp時,您還需要添加一些魔法來獲得正確的匹配。 就像奧列格一樣,我不得不通過觀察源頭來解決這個問題。 這里的錯誤消息不是真正描述性的,我真的認為這值得一個錯誤報告或至少一個文檔修復。
(defun align-comment (beg end)
(interactive "r")
(align-regexp beg end (concat "\\(\\s-*\\)" comment-start))
)
你應該稍微改變你的代碼。
例如這樣:
(defun align-on-comment-char (beg end)
(interactive "r")
(align-regexp beg end "\\(\\s-*\\)#")
)
一個神奇的字符串"\\\\(\\\\s-*\\\\)"
取自align-regexp
的來源。
如果你想為所有模式都有一個函數,那么使用comment-start
變量作為@pmr指出。
(align-regexp beg end (concat "\\(\\s-*\\)" comment-start))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.