用于§的键绑定;Emacs中的符号

用于§的键绑定;Emacs中的符号,emacs,unicode,keystroke,Emacs,Unicode,Keystroke,我在Ubuntu中工作,但是由于插入unicode字符的标准方式(Ctrl+Shift+U,以及之后的unicode代码)在emacs中不起作用,我在我的.emacs中对我经常使用的不同unicode符号进行了一些击键,例如: (global-set-key (kbd "C-c b") "☛") 每个符号都可以正常工作,除了符号§,当我使用相应的击键时,它被一个简单的破折号(“-”)代替: (global-set-key (kbd "C-c y") "§") 问题是,是什么使此符号与其他符号

我在Ubuntu中工作,但是由于插入unicode字符的标准方式(Ctrl+Shift+U,以及之后的unicode代码)在emacs中不起作用,我在我的
.emacs
中对我经常使用的不同unicode符号进行了一些击键,例如:

(global-set-key (kbd "C-c b") "☛")
每个符号都可以正常工作,除了符号§,当我使用相应的击键时,它被一个简单的破折号(“-”)代替:

(global-set-key (kbd "C-c y") "§")

问题是,是什么使此符号与其他符号不同?如何解决我的问题?

global set key
通常需要一个函数,因此这应该可以工作:

(global-set-key (kbd "C-c y") (lambda () (interactive) (insert "§")))
但最好使用出色的
插入字符
功能:

(global-set-key (kbd "<f2> u") 'insert-char)
(全局设置键(kbd“u”)'插入字符)
它理解十六进制Unicode以及文本描述(包括完整和全部)。
只需按TAB键查看完成情况。

您可以通过执行C-x8RET
RET在emacs中插入unicode字符。因此,要插入
§
请执行C-x8RET00A7RET

如果愿意,可以将
insert char
(C-x8RET运行的命令)绑定到更简单的键,或者定义自定义函数并将其绑定到键,如下所示

(global-set-key (kbd "C-c y") (lambda () (interactive) (insert "§")))
快速插入大量Unicode字符的一般解决方案是为每个字符定义一个命令,专门用于插入字符,并将该命令绑定到一个简单的键序列

这实际上是@abo abo和@Iqbal以以下形式向您提供的:

(lambda () (interactive) (insert "§")))
如果要为多个这样的字符创建这样的命令,则 库可以通过两种方式提供帮助:

  • 它提供了一个
    ucsc make commands
    ,让您可以一下子为整个Unicode字符范围定义命令。例如:

    (global-set-key (kbd "C-c b") "☛")
    
    • (ucsc make commands“^cjk”)
      为每个中文、日文和韩文Unicode字符定义一个插入字符命令

    • (ucsc生成命令“^希腊文[a-z]+字母”)
      对每个希腊文字母执行相同的操作

    • (ucsc使命令为“阿拉伯语”)
      对每个阿拉伯字符执行相同的操作

  • 它为
    C-x 8 RET
    提供了一个替换命令(
    ucsc insert
    ),其作用与普通命令(
    insert char
    )完全相同,只是如果您给它一个负前缀参数,那么它不仅会插入您选择的char,而且还会为它创建一个插入命令(即宏批量创建的命令类型)


ucsc-make-commands
和命令
ucsc-insert
创建的命令名与字符本身的Unicode名称完全相同,只是它们是小写的,并且用连字符(
-
)代替空格字符。

是的,我知道,但这种方法太“恼人”当我需要经常写这个符号的时候。