¿Qué hace esto?emacs/elisp: ¿Para qué se utiliza el símbolo hash (libra, signo numérico, octothorp)?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
... y es lo diferente que
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
¿Qué hace esto?emacs/elisp: ¿Para qué se utiliza el símbolo hash (libra, signo numérico, octothorp)?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
... y es lo diferente que
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
No hay diferencia:
(eq 'my-add #'my-add)
produce t
El #
se puede utilizar en frente de un lambda
expresión que indica al compilador de bytes que el siguiente exp la ression puede ser compilada por byte, vea los documentos para Anonymous Functions. Pero no hay nada que compilar en el caso de un símbolo.
En general, se usa en el printed representation junto con el corchete angular izquierdo (<) para indicar que el objeto impreso es una descripción (pero no se puede leer). Por ejemplo:
#<buffer foo.txt>
También se utiliza en construcciones por el lector para representar estructuras circulares. Consulte los documentos para Read Syntax for Circular Objects.
Y luego tiene su uso para denotar el base for integers, p. Ej. #x2c -> 44
.
Más, estoy seguro.
La lista debería ser exhaustiva se puede encontrar en la parte superior de Emacs lisp reference index.
Editar: O incluso más convenientemente, desde dentro de Emacs en sí:
Mxinfo
RET (abrir el navegador de información)
dmelisp
RET (abrir el manual elisp)
I#
RET (listar las entradas para #
en el índice)
me encontré con esta pregunta durante la búsqueda de lo que el hash entiende en algo que encontrado, mientras que la piratería mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
que es un formato utilizado para text properties in strings whe Re:
"-%-"
, texto que se propertized: un guión y un %-construct que se traduce en "rayas suficiente para llenar el resto de la línea de modo", lo que resulta en la famosa Emacs ------
.0
, el primer carácter sobre el que se aplican las propiedades del texto.3
, el último carácter sobre el que se aplican las propiedades del texto, es decir, todo el "-%-"
.(help-echo "...")
, una propiedad y una cadena como argumento.Esto puede ser creado con el propertize
function:
(propertize "Hover over me!" 'help-echo '"congratulations!")
sería el mismo que #("Hover over me!" 0 14 (help-echo "Congratulations!"))
: modo de bloqueo de fuente
Si está utilizando , usando el comandante buffer-substring
d podría producir algo como esto:
(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))
por lo que podría crear algo así como:
Whoa, impresionante. La enciclopedia emacs/elisp. – Cheeso
Según [este artículo] (http://endlessparentheses.com/get-in-the-habit-of-using-sharp-quote.html), una buena razón para aplicar '#' a un símbolo solitario es obtener el diagnóstico en tiempo de compilación si ese símbolo no está definido. – ajk
No es del todo cierto que "no hay nada que compilar en el caso de un símbolo". El compilador de bytes interpreta que # 'car significa' Siempre me estoy refiriendo a la función 'foo', no al símbolo foo ". En realidad, puede alinear la definición de foo en la salida compilada en byte. (Editar: no, eso está realmente mal. # 'El símbolo no se compilará en bytes de forma diferente que' símbolo - es solo un marcador de intención.) –