【问题标题】:emacs : a minor mode to show numbers in all kinds of radixemacs:一种以各种基数显示数字的次要模式
【发布时间】:2018-12-09 10:41:59
【问题描述】:

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

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

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

谁能解释我如何才能访问这些值以及创建这样一个函数需要采取哪些步骤?

【问题讨论】:

    标签: emacs numbers radix minor-mode


    【解决方案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 部分的函数,例如自动按顺序尝试不同的基数,例如,使用返回数字的最低基数。

    【讨论】:

    • 谢谢德鲁。我设法做到了。但是我遇到了另一个问题。它运行良好,但在全局启用时它甚至可以在 minibuffer 上运行。能否给我一些建议如何在迷你缓冲区中禁用该次要模式??
    • 一个函数可以测试(minibuffer-window-active-p WINDOW)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多