Что это значит?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
... и чем он отличается от
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
Ответы:
Нет никакой разницы:
(eq 'my-add #'my-add)
дает t
#
Может быть использовано в передней части lambda
выражения , указывающее на байты-компилятор , что следующее выражение может быть составлены байтами, см документации для анонимных функций . Но в случае с символом компилировать нечего.
Как правило, он используется в печатном изображении вместе с левой угловой скобкой (<), чтобы указать, что напечатанный объект является описанием (но не может быть прочитан). Например:
#<buffer foo.txt>
Он также используется читателем в конструкциях для представления круговых структур. См. Документацию по синтаксису чтения для круглых объектов .
И тогда у вас есть его использование для обозначения базы для целых чисел , например #x2c -> 44
.
Плюс еще я уверен.
'symbol
представляет (quote symbol)
и #'symbol
представляет (function symbol)
синтаксически.
Список, который должен быть исчерпывающим, можно найти в верхней части справочного указателя Emacs lisp .
Изменить : Или, что еще удобнее, из самого Emacs:
M-x info
RET (откройте информационный браузер)
d m elisp
RET (открыть руководство по elisp)
I #
RET(перечислите записи #
в указателе)
Я нашел этот вопрос, когда искал, что означает хеш в том, что нашел во время взлома mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
формат, используемый для свойств текста в строках, где:
"-%-"
, текст, который нужно присвоить: одно тире и % -конструкция, которая дает «тире, достаточные для заполнения оставшейся части строки режима», в результате получается знаменитый 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))
Итак, вы можете создать что-то вроде:
#
к одиночному символу - получить диагностику во время компиляции, если этот символ не определен.