8

我正在尝试使用以下 elisp 函数来对齐文本=

(defun align-= ()
  "Align lines by `=`"
  (interactive)
  (align-regexp (region-beginning) (region-end) "="))

我正在尝试对齐以下文本:

offer = stub('offer')
user = stub('user')

但是emacs返回以下错误:

align-region: Marker does not point anywhere

我究竟做错了什么?

谢谢

4

1 回答 1

9

我通过这样做使它工作:

(defun align-= (p1 p2)
  "Align lines by =" 
  (interactive "r")
  (align-regexp p1 p2 "\\(\\s-*\\)=" 1 1 nil)
)

据我了解,它align-regexp没有收到您认为它正在接收的内容。

M-x align-regexp <RET> = <RET>您可以通过调用然后点击手动测试它C-x ESC ESC(默认repeat-complex-command绑定到C-x ESC ESC,您也可以使用 Mn / Mp 在历史记录中移动),您将确切看到传递给align-regexp. 然后我将该行复制到函数中。 (我也使用了交互式“r”,因为它很方便)

它在 Emacs 24 上为我工作。

相关但不是 100% 相同于:

Mx align-regexp 与 Cu Mx align-regexp 行为不一致

并且:

标记不指向对齐正则表达式(Emacs)的任何地方

于 2013-01-29T16:04:44.010 回答