Emacs Lisp: 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.
Emacs's standard-syntax-table
considers the curly quote as punctuation character.
[see Emacs Lisp: Find Syntax of a Char]
(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