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」も使用しました)

Emacs24で動作しています。

関連しているが、100%同一ではない:

一貫性のないMxalign-regexpとCuMxalign-regexpの動作

そしてまた:

マーカーはalign-regexp(Emacs)のどこも指していません

于 2013-01-29T16:04:44.010 に答える