Answers:
M-C-f(或M-C-right)必须forward-sexp
这样做。
我建议您尝试使用前缀M-C-
而不是的所有知名运动命令C-
。
backward-sexp
backward-up-list
forward-list
backward-sexp
绑定到M-C-b
。
M-C
而不是C-
一个人知道M-C-f
。好的-我会在答案中提及。
forward-sexp
并backward-sexp
停在带引号的字符串内的空白处?
我一直很难记住的绑定forward-sexp
和backward-sexp
,和我想要的东西,工作更喜欢%
做Vim的命令模式。在某个时候,我将其添加到配置中(文档字符串显示为parens,但它适用于任何括号或引号),现在我很满意:
;;; PAREN-BOUNCE
;;;; originally ganked from <http://elfs.livejournal.com/1216037.html>
(defun genehack/paren-bounce ()
"Bounce from one paren to the matching paren."
(interactive)
(let ((prev-char (char-to-string (preceding-char)))
(next-char (char-to-string (following-char))))
(cond ((string-match "[[{(<\"']" next-char) (forward-sexp 1))
((string-match "[\]})>\"']" prev-char) (backward-sexp 1))
(t (error "%s" "Not an expression boundary.")))))
;;;; bindings
(global-set-key (kbd "C-%") 'genehack/paren-bounce)
(global-set-key (kbd "C-5") 'genehack/paren-bounce)
我建议将smartparens软件包用于所有此类目的。简短的介绍在这里:https : //ebzzry.io/en/emacs-pairs/。
sp-beginning-of-sexp
而且sp-end-of-sexp
非常接近我想要的 我希望可以将它们组合为一个函数(例如sp-matching-sexp
),这样我只需要记住一个键绑定即可。也许我会尝试编写一个elisp函数。让我知道之前是否有人这样做。谢谢。
skip-syntax-forward
会这样做。