Emacs: Move Cursor to Bracket 🚀
Move Cursor to Bracket
Here are commands to move cursor to any open/close brackets. They are extremely useful when working with computer language source code such as Python, JavaScript, PowerShell, Golang, etc.
put this in your Emacs Init File:
(defvar xah-brackets '("“”" "()" "[]" "{}" "<>" "<>" "()" "[]" "{}" "⦅⦆" "〚〛" "⦃⦄" "‹›" "«»" "「」" "〈〉" "《》" "【】" "〔〕" "⦗⦘" "『』" "〖〗" "〘〙" "「」" "⟦⟧" "⟨⟩" "⟪⟫" "⟮⟯" "⟬⟭" "⌈⌉" "⌊⌋" "⦇⦈" "⦉⦊" "❛❜" "❝❞" "❨❩" "❪❫" "❴❵" "❬❭" "❮❯" "❰❱" "❲❳" "〈〉" "⦑⦒" "⧼⧽" "﹙﹚" "﹛﹜" "﹝﹞" "⁽⁾" "₍₎" "⦋⦌" "⦍⦎" "⦏⦐" "⁅⁆" "⸢⸣" "⸤⸥" "⟅⟆" "⦓⦔" "⦕⦖" "⸦⸧" "⸨⸩" "⦅⦆") "A list of strings, each element is a string of 2 chars, the left bracket and a matching right bracket. Used by `xah-select-text-in-quote' and others.") (defconst xah-left-brackets (mapcar (lambda (x) (substring x 0 1)) xah-brackets) "List of left bracket chars. Each element is a string.") (defconst xah-right-brackets (mapcar (lambda (x) (substring x 1 2)) xah-brackets) "List of right bracket chars. Each element is a string.") (defun xah-backward-left-bracket () "Move cursor to the previous occurrence of left bracket. The list of brackets to jump to is defined by `xah-left-brackets'. URL `http://xahlee.info/emacs/emacs/emacs_navigating_keys_for_brackets.html' Version: 2015-10-01" (interactive) (re-search-backward (regexp-opt xah-left-brackets) nil t)) (defun xah-forward-right-bracket () "Move cursor to the next occurrence of right bracket. The list of brackets to jump to is defined by `xah-right-brackets'. URL `http://xahlee.info/emacs/emacs/emacs_navigating_keys_for_brackets.html' Version: 2015-10-01" (interactive) (re-search-forward (regexp-opt xah-right-brackets) nil t))
You should assign them keys. I suggest one of the following key pairs:
- Alt+m, Alt+.
- Alt+7, Alt+8
- Ctrl+7, Ctrl+8
- Alt+←, Alt+→
- F11, F12
Move Cursor to Quote
The following commands move cursor to the next quoted string. Very convenient for programing.
(defun xah-forward-quote-twice () "Call `xah-forward-quote' twice. Returns `t' if found, else `nil'. URL `http://xahlee.info/emacs/emacs/emacs_navigating_keys_for_brackets.html' Version: 2016-07-23" (interactive) (when (xah-forward-quote) (xah-forward-quote))) (defun xah-forward-quote-smart () "Move cursor to the current or next string quote. Place cursor at the position after the left quote. Repeated call will find the next string. URL `http://xahlee.info/emacs/emacs/emacs_navigating_keys_for_brackets.html' Version: 2016-11-22" (interactive) (let ((xpos (point))) (if (nth 3 (syntax-ppss)) (progn (backward-up-list 1 'ESCAPE-STRINGS 'NO-SYNTAX-CROSSING) (forward-sexp) (re-search-forward "\\\"" nil t)) (progn (re-search-forward "\\\"" nil t))) (when (<= (point) xpos) (progn (re-search-forward "\\\"" nil t)))))
You should give them a pair of keys for the commands to be useful, such as F11 F12.
Emacs, Work with Brackets
- Emacs: Highlight Brackets
- Emacs: electric-pair-mode (Auto Insert Closing Bracket)
- Emacs: Insert Brackets by Pair 🚀
- Emacs: Delete Brackets by Pair 🚀
- Emacs: Move Cursor to Bracket 🚀
- Emacs: Jump to Matching Bracket 🚀
- Emacs: Change Brackets/Quotes 🚀
- Emacs: Navigate Lisp Code as Tree
- Emacs: Select Line, between Quotes, Extend Selection 🚀
- Emacs: Xah Elisp Mode (xah-elisp-mode.el)