1

我有一个我经常在我的一个文件中使用的特殊 unicode 字符的列表。为了避免一直输入(和学习)unicode 数字,我只想在文件顶部有一行包含这些字符(只有 25 个符号),并在需要时保存/拉动它们。

我找不到正确的快捷方式来保存该点下的角色......

4

2 回答 2

1

这与复制其他任何内容没有什么不同。将点移动到要复制的角色,用 设置标记C-SPC,向前移动一个角色,使区域覆盖感兴趣的角色,然后用 保存到杀戮环M-w

或者你可以做这样的事情:

(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)
于 2013-05-05T12:39:50.607 回答
0

这是另一种方法,特别是如果不使用很多这样的字符并且不想摆弄输入法。

下载库ucs-cmds.el并将其放入您的load-path(字节编译它)。然后把它放在你的初始化文件(~/.emacs)中:

(require 'ucs-cmds)
(define-key global-map [remap insert-char] 'ucsc-insert)

然后使用M-- C-x 8 RET并使用补全来输入你想要的字符的 Unicode 名称或代码点。这有两件事:C-x 8 RET在光标之前插入您选择的字符。这M--使得它还创建一个与角色同名的命令。然后,您可以将该命令绑定到一个方便的键序列。例如:

M-- C-x 8 RET greek small letter lambda RET

这定义了 command 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\\)")
于 2013-08-12T04:50:45.030 回答