Как заставить Cx Ce отображать только десятичное и шестнадцатеричное? - PullRequest
2 голосов
/ 19 июля 2011

Это продолжение Как заставить Cx Ce отображать результат в восьмеричном и шестнадцатеричном виде по умолчанию?

Есть ли способ получить Cx Ce чтобы отобразить результат только в десятичном и шестнадцатеричном виде?

Например,

(+ 40 2)

должно выдать

42 (#x2a)

вместо

42 (#o52, #x2a, ?*)

1 Ответ

2 голосов
/ 19 июля 2011

Вам просто нужно переписать / настроить подпрограмму, которая создает печатный формат для этого. Добавьте следующее в ваш .emacs, и все будет хорошо.

(require 'simple)
(defun eval-expression-print-format (value)
  "Format VALUE as a result of evaluated expression.
Return a formatted string which is displayed in the echo area
in addition to the value printed by prin1 in functions which
display the result of expression evaluation."
  (if (and (integerp value)
           (or (not (memq this-command '(eval-last-sexp eval-print-last-sexp)))
               (eq this-command last-command)
               (if (boundp 'edebug-active) edebug-active)))
      (let ((char-string
             (if (or (if (boundp 'edebug-active) edebug-active)
                     (memq this-command '(eval-last-sexp eval-print-last-sexp)))
                 (prin1-char value))))
        (format " (#x%x)" value value))))
...