Câu trả lời:
M-C-f(hoặc M-C-right) bị ràng buộc forward-sexpphải làm điều đó.
Tôi đề nghị bạn thử tất cả các lệnh chuyển động nổi tiếng với tiền tố M-C-thay vì C-.
backward-sexpbackward-up-listforward-listbackward-sexpràng buộc M-C-b.
M-Cthay vì C-nếu ai đó biết M-C-f. Được rồi - tôi sẽ đề cập đến nó trong câu trả lời.
forward-sexpvà backward-sexpdừng lại ở khoảng trắng bên trong một chuỗi trích dẫn?
Tôi luôn gặp khó khăn trong việc ghi nhớ các ràng buộc forward-sexpvà backward-sexpvà tôi muốn một cái gì đó hoạt động giống như %trong chế độ chỉ huy của Vim. Tại một số điểm, tôi đã thêm phần này vào cấu hình của mình (chuỗi doc nói parens nhưng nó hoạt động cho bất kỳ loại dấu ngoặc hoặc trích dẫn nào), và bây giờ tôi hài lòng:
;;; 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)
Tôi đề nghị sử dụng gói smartparens cho tất cả các mục đích như vậy. Giới thiệu ngắn gọn là ở đây: https://ebzzry.io/en/emacs-pairs/ .
sp-beginning-of-sexpvà sp-end-of-sexprất gần với những gì tôi muốn. Tôi hy vọng rằng chúng có thể được kết hợp thành một chức năng (ví dụ sp-matching-sexp:) để tôi chỉ cần nhớ một lần bấm phím. Có lẽ tôi sẽ cố gắng viết một hàm elisp. Hãy cho tôi biết nếu có ai làm điều đó trước đây. Cảm ơn.
skip-syntax-forwardsẽ làm điều đó.