.emacs.d に次の defun があります。
;;; http://emacswiki.org/emacs/ParenthesisMatching
(defun goto-match-paren (arg)
"Go to the matching if on (){}[], similar to vi style of % "
(interactive "p")
;; first, check for "outside of bracket" positions expected by forward-sexp, etc.
(cond ((looking-at "[\[\(\{]") (forward-sexp))
((looking-back "[\]\)\}]" 1) (backward-sexp))
;; now, try to succeed from inside of a bracket
((looking-at "[\]\)\}]") (forward-char) (backward-sexp))
((looking-back "[\[\(\{]" 1) (backward-char) (forward-sexp))
(t nil)))
(defun select-in-parens ()
(interactive)
(goto-match-paren 1)
(set-mark (point)))
私はもともと最初の機能を持っていました。次に、2 番目の式を追加しました。これは、s 式全体を選択することを意図していました。現在、これらの 1 つを M-[ にバインドし、もう 1 つを M-] にバインドしています。括弧に移動して「goto」キーを押すと、それは私が望むことを行います-他のものにジャンプします。その後「選択」キーを押すと...領域をマークせずに同じことを行い、その後繰り返し押すと括弧の間をジャンプします。しかし、その後「goto」を実行すると、領域がマークされ、繰り返しヒットするとジャンプしてマークが解除されます。
つまり、基本的に私は望んでいた機能を持っています...しかし逆になっていて、その理由はわかりません。誰かがここで何が起こっているのかを説明し、おそらく解決策を提供できますか?