emacs: второстепенный режим для отображения чисел во всех видах radix - PullRequest
0 голосов
/ 09 декабря 2018

Я ищу пакет Emacs, который может распознавать числа и их основание.

Я бы хотел, чтобы он был интерактивным (чтобы указать значение выбранного номера или точки).

Возвращенные значения могут быть напечатаны в минибуфер (затем буфер сообщений) или в отдельный буфер.

Может кто-нибудь объяснить, как я могу получить доступ к этим значениям и какие шаги мне нужно предпринять, чтобы создать такую ​​функцию?

1 Ответ

0 голосов
/ 09 декабря 2018

У меня нет полного, прямого ответа для вас, но вот пара библиотек, в которых вы можете найти идеи для реализации этого самостоятельно.Часть вопроса зависит только от того, как вы хотите отобразить / вернуть число.


Если для распознаваемого текста используется стандартная форма Emacs для осевого и числового значений в этом осевом, то вы можете определить radix-number-at-point.Эта форма документирована в руководстве Elisp, узел Основы целочисленного типа .Например, #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, например, автоматически пробовать различные радиусы, последовательно и, скажем, используя самый низкийоснование, которое возвращает число.

...