我有一个特殊的unicode字符列表,我经常在其中一个文件中使用。 为了避免一直打字(和学习)unicode数字,我想在我的文件顶部(这只是25个符号)中包含这些字符的行,并在需要时保存/抽出它们。
虽然我找不到保存角色的正确快捷方式......
答案 0 :(得分:1)
与复制其他任何内容没有什么不同。将点移动到要复制的字符,使用 C-SPC 设置标记,向前移动一个字符,使区域覆盖感兴趣的字符,然后用 Mw保存到kill ring
或者你可以这样做:
(defun my-copy-character-as-kill (pos)
"Copy the character at point (or POS) to the kill ring."
(interactive "d")
(if (eobp)
(error "End of buffer.")
(copy-region-as-kill pos (1+ pos))
(when (called-interactively-p 'interactive)
(let ((print-escape-newlines t))
(message "%S" (char-to-string (char-after pos)))))))
(global-set-key (kbd "C-c c") 'my-copy-character-as-kill)
答案 1 :(得分:0)
这是另一种方法,特别是如果不使用很多这样的字符并且不想使用输入法。
下载库ucs-cmds.el
并将其放入load-path
(字节编译)。然后把它放在你的init文件(〜/ .emacs)中:
(require 'ucs-cmds)
(define-key global-map [remap insert-char] 'ucsc-insert)
然后使用M-- C-x 8 RET
并使用completion输入所需字符的Unicode名称或代码点。这样做有两件事:C-x 8 RET
插入您在光标之前选择的字符。 M--
使它还创建一个与角色同名的命令。然后,您可以将该命令绑定到一个方便的键序列。例如:
M-- C-x 8 RET greek small letter lambda RET
它定义了命令greek-small-letter-lambda
,您可以将其绑定到某个键序列。
如果要同时为多个Unicode字符定义此类命令,则可以使用宏ucsc-make-commands
来执行此操作。请参阅文件ucs-cmds.el
中的评论。您为宏提供了一个正则表达式。它与所有Unicode字符名称匹配。为名称匹配的每个字符创建插入命令。
示例命令创建:
(ucsc-make-commands "^math") ; Math symbols
(ucsc-make-commands "latin") ; Latin alphabet characters
(ucsc-make-commands "arabic")
(ucsc-make-commands "^cjk") ; Chinese, Japanese, Korean characters
(ucsc-make-commands "^box drawings ")
(ucsc-make-commands "^greek [a-z]+ letter") ; Greek characters
(ucsc-make-commands "\\(^hangul\\|^circled hangul\\|^parenthesized hangul\\)")