使用emacs-24。
一些unicode名称很长。某些字符具有多个名称,具体取决于上下文。我想添加一些缩写/同义词。怎么样?
这种方法并不是那么糟糕,但是我的短名称用较长的名称存在问题,而且它是非标准的,即与输入其他名称的方式不一致:
(global-set-key (kbd "C-x g all") "∀")
将字符放在键上的方法在Emacs中存在问题,部分原因是键映射已经过载:
(define-key key-translation-map (kbd "C-~") (kbd "¬"))
作为第二个问题,我很好奇为什么会混淆emacs(尝试一下):
(global-set-key (kbd "C-x g neg") "¬")
我想要的是将缩写钩在当前的emacs方法中,以便按名称输入unicode字符。 (我一直在使用C-x 8 RET名称RET - 虽然希望有一种方法可以用更少的击键来完成这项工作。)
先谢谢!
答案 0 :(得分:2)
您可以轻松定义一个插入给定字符的命令(或者从一些小字符集中选择而不是从整个Unicode字符集中选择)。
图书馆ucs-cmds.el
可以为此提供帮助。当您使用带有前缀arg的C-x 8 RET
(例如C--
)时,它不仅会插入您选择的字符,而且会创建一个插入char的命令 - 命令名称与char名称相同。您可以快速为整个范围或其他字符集创建此类命令(例如,通过匹配正则表达式)。您当然可以将命令重命名为您喜欢的任何名称,包括更短的版本。
但是您已经知道如何将键绑定到插入给定字符的键盘宏,如图所示。如果有助于为其提供命名命令,则ucs-cmds.el
可以提供帮助。
您也可以单独使用,例如:
(defun neg (&optional n)
"Insert \"¬\". With prefix arg N, insert N times."
(interactive "p")
(dotimes (ii n) (insert "¬")))
(global-set-key (kbd "C-x g neg") 'neg)
但是您显然对插入特定字符的专用命令不太感兴趣,并且您希望能够使用C-x 8 RET
但是在提示您时键入字符名称的缩写,而不是试图匹配真实的角色名称。
为此,Icicles可以提供帮助。当您使用C-x 8 RET
时,您可以匹配字符名称或其代码点(或字符本身 - 当char易于键入并且您想知道其名称或代码点时很有用)。您可以同时匹配这些组合。
匹配可以是子字符串,正则表达式,pcompletion或任何几种模糊匹配,您可以动态更改匹配行为。因此,如果您以与匹配相对应的方式缩写,您可以获得所要求的缩写效果。
关于(global-set-key (kbd "C-x g neg") "¬")
的问题:我认为这是一个错误。考虑报告:M-x report-emacs-bug
。这是它引发的错误:
在0 kbd宏迭代之后:用户错误:没有M-x标签 - 搜索或M-x标签 - 正在进行查询替换
答案 1 :(得分:0)
有几种模式可以为数学和逻辑所需的符号提供简化输入。例如agda2-mode。 http://wiki.portal.chalmers.se/agda