emacs:次要模式,用于显示各种基数的数字

时间:2018-12-09 10:42:00

标签: emacs numbers radix minor-mode

我正在寻找一个可以识别数字及其基数的Emacs软件包。

我希望它是交互式的(给出所选数字或点的值)。

返回的值可以打印到迷你缓冲区(然后是消息缓冲区)或单独的缓冲区中。

有人可以解释我如何获取这些值以及创建此类功能需要采取哪些步骤?

1 个答案:

答案 0 :(得分:1)

对于您,我没有完整直接的答案,但是这里有几个库可供您参考,以获取有关自己实现此想法的想法。有些问题取决于您要如何显示/返回数字。


如果要识别的文本使用标准Emacs格式表示基数和该基数中的数字,则可以定义radix-number-at-point。该表格记录在Elisp手册的节点Integer Basics中。例如,#13r90B3与十进制整数19919相同。

这是一个快速定义。您可能需要对其进行调整。

(defun radix-number-at-point ()
  "Return the radix number at point, or nil if none is found."
  (when (thing-at-point-looking-at "-?#[0-9][0-9]*r[a-zA-Z0-9]+\\.?[a-zA-Z0-9]*" 500)
    (read (buffer-substring-no-properties (match-beginning 0) (match-end 0)))))

您还可以定义一个不需要显式#rRADIX部分的函数,例如按顺序自动尝试使用不同的基数,例如使用返回数字的最低基数。