Jawaban:
M-C-f(atau M-C-right) pasti forward-sexp
harus melakukan itu.
Saya sarankan Anda mencoba semua perintah gerak yang terkenal dengan awalan M-C-
alih-alih C-
.
backward-sexp
backward-up-list
forward-list
backward-sexp
terikat M-C-b
.
M-C
alih-alih C-
jika ada yang tahu M-C-f
. Oke - saya akan menyebutkannya dalam jawaban.
forward-sexp
dan backward-sexp
berhenti di spasi putih di dalam string yang dikutip?
Saya selalu mengalami kesulitan mengingat ikatan untuk forward-sexp
dan backward-sexp
, dan saya menginginkan sesuatu yang bekerja lebih seperti %
dalam mode perintah Vim. Pada titik tertentu, saya menambahkan ini ke konfigurasi saya (docstring mengatakan parens tetapi berfungsi untuk segala macam tanda kurung atau kutipan), dan sekarang saya puas:
;;; 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)
Saya sarankan menggunakan paket smartparens untuk semua tujuan tersebut. Pengantar singkat ada di sini: https://ebzzry.io/en/emacs-pairs/ .
sp-beginning-of-sexp
dan sp-end-of-sexp
sangat dekat dengan apa yang saya inginkan. Saya berharap bahwa mereka dapat digabungkan menjadi satu fungsi (misalnya, sp-matching-sexp
) sehingga saya hanya perlu mengingat satu keybinding. Mungkin saya akan mencoba menulis fungsi elisp. Beritahu saya jika ada yang melakukan itu sebelumnya. Terima kasih.
skip-syntax-forward
akan melakukannya.