Відповіді:
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. У якийсь момент я додав це до свого конфігурації (у docstring йдеться про паренс, але він працює для будь-якого типу дужок чи цитат), і тепер я задоволений:
;;; 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
що зробив би це.