Emacs Lisp: How to Modify Syntax Table Temporarily
Here's a example of how to use a temporary syntax table just for 1 command.
Suppose, we want the curly quote “” to be considered as a bracket.
standard-syntax-table considers the curly quote as punctuation character.
(defun test () "move cursor to the right 1 char, but if it is a left curly quote, jump to the right curly quote. Version 2017-02-13" (interactive) (let ((-temp-syn-table (make-syntax-table))) (modify-syntax-entry ?\“ "(”" -temp-syn-table) (modify-syntax-entry ?\” ")“" -temp-syn-table) (with-syntax-table -temp-syn-table (if (looking-at "\\s(") (forward-sexp 1) (right-char )))))
test “xyz” text
Syntax Table Topic
or, buy something from Best Keyboard for Emacs