emacs / elisp: для чего используется символ хэша (фунт, знак числа, октоторп)?
что это значит?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
...и это отличается от
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
3 ответа:
нет никакой разницы:
(eq 'my-add #'my-add)
доходность
t
The
#
можно использовать передlambda
выражение, указывающее байт-компилятору, что следующее выражение может быть скомпилировано байтом, см. документы для Анонимные Функции. Но нет ничего, чтобы скомпилировать в случае символа.в общем, он используется в печатные представление вместе с левой угловой скобки (
#<buffer foo.txt>
он также используется в конструкциях читателем для представления круговых структур. См. документы для чтение синтаксиса для круговых объектов.
и тогда у вас есть его использование для обозначения база для чисел, например,
#x2c -> 44
.плюс еще, я уверен.
я нашел этот вопрос при поиске того, что хэш означал в чем-то, что я нашел во время взлома
mode-line-format
:#("-%-" 0 3 (help-echo "Display as tooltip when mouse hovers or with display-local-help."))
который является форматом, используемым для свойства текста в строки где:
"-%-"
, текст должен быть пропертизирован: один тире и A %-строительство что приводит к "тире достаточно, чтобы заполнить оставшуюся часть линии режима", в результате чего знаменитый Emacs------
.0
, первый символ, к которому применяются свойства текста.3
, последний символ, к которому применяются свойства текста,т. е. весь"-%-"
.(help-echo "...")
свойства и строку в качестве аргумента.это может быть создано с помощью
propertize
функция:(propertize "Hover over me!" 'help-echo '"congratulations!")
было бы то же самое, что
#("Hover over me!" 0 14 (help-echo "Congratulations!"))
:если вы используете режим блокировки шрифта, используя
buffer-substring
команда может произвести что-то вроде этого:(buffer-substring 1 28) ; First 27 characters in the current buffer ⇒ #(";; This buffer is for notes" 0 3 (fontified t face font-lock-comment-delimiter-face) 3 27 (fontified t face font-lock-comment-face))
так что вы могли бы создать что-то вроде:
должен быть полный список можно найти в верхней части Emacs lisp reference index.
Edit: или еще удобнее, изнутри самого Emacs:
M-x
info
RET (открытия браузера)dm
elisp
RET (откройте elisp руководство)я
#
RET (список записи#
в индексе)