簡體   English   中英

Emacs調用align regexp

[英]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-startcomment-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM