带括号定义的Emacs全局abbrev表

带括号定义的Emacs全局abbrev表,emacs,unicode,elisp,Emacs,Unicode,Elisp,有关emacs,请参见以下abbrev表: (define-abbrev-table 'global-abbrev-table '( ("8in" "∈") ("(x)" "⊗") )) (setq-default abbrev-mode t) 如果我计算上面的区域,然后键入“8in”,则该字符串缩写为∈ 在我的emacs缓冲区中。伟大的但是,如果我输入“(x)”,它不会缩写为任何东西。我希望能有一个缩写⊗. 我的global abbrev表定义有什么错误?我也试过使

有关emacs,请参见以下
abbrev表

(define-abbrev-table 'global-abbrev-table '(
    ("8in" "∈")
    ("(x)" "⊗")
    ))

(setq-default abbrev-mode t)

如果我计算上面的区域,然后键入“8in”,则该字符串缩写为∈ 在我的emacs缓冲区中。伟大的但是,如果我输入“(x)”,它不会缩写为任何东西。我希望能有一个缩写⊗. 我的
global abbrev表
定义有什么错误?我也试过使用
\(x\)
\\(x\)
,但都没有得到“(x)”的缩写。

似乎Emacs目前只接受构成缩写的字符的单词语法

顺便说一句,我看不出原因

(let ((syntab  (copy-syntax-table)))
  (modify-syntax-entry ?\( "w" syntab)
  (modify-syntax-entry ?\) "w" syntab)
  (set-syntax-table syntab))
(define-abbrev-table 'global-abbrev-table '(("(x)" "⊗")))

当然,您可能不希望
具有一般的单词组成语法…

检查文档。它确实支持非单词语法,只是默认情况下不支持。@Stefan这真是个好消息。然而,我在define abbrev中读到:在名为NAME的表中定义一个abbrev,以扩展到扩展并调用HOOK。名称必须是字符串,且应为小写;;;;除了单词字符外,“小写”还有什么意义?这正是我要找的。太好了,谢谢。