source - emacs para mac
emacs/elisp: ¿Para qué se utiliza el símbolo hash(libra, signo numérico, octothorp)? (3)
¿Qué hace esto?
(add-hook ''compilation-mode-hook #''my-setup-compile-mode)
... y es diferente de
(add-hook ''compilation-mode-hook ''my-setup-compile-mode)
Encontré esta pregunta mientras buscaba lo que el hash significaba en algo que encontré mientras pirateaba el mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
que es un formato usado para propiedades de texto en cadenas donde:
-
"-%-"
, texto que debe ser propiedad: un guion y un %-construct que da como resultado "guiones suficientes para llenar el resto de la línea de modo", lo que da como resultado los famosos 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 , el"-%-"
completo. -
(help-echo "...")
, una propiedad y una cadena como argumento.
Esto se puede crear con la función propertize
:
(propertize "Hover over me!" ''help-echo ''"congratulations!")
Sería lo mismo que #("Hover over me!" 0 14 (help-echo "Congratulations!"))
:
Si está utilizando el modo de bloqueo de fuentes, usar el comando buffer-substring
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))
Entonces podrías crear algo como:
La lista de debe ser completa se puede encontrar en la parte superior del índice de referencia de ceceo de Emacs .
Editar : O incluso más cómodamente, desde el propio Emacs:
Mx
info
RET (abra el navegador de información)d m
elisp
RET (abra el manual de elisp)I
#
RET (enumere las entradas para#
en el índice)
No hay diferencia:
(eq ''my-add #''my-add)
rinde t
El #
se puede usar frente a una expresión lambda
que indica al compilador de bytes que la siguiente expresión se puede compilar en bytes, consulte los documentos para Funciones anónimas . Pero no hay nada que compilar en el caso de un símbolo.
En general, se usa en la representación impresa 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 usa en construcciones por el lector para representar estructuras circulares. Consulte los documentos para la sintaxis de lectura para objetos circulares .
Y luego tiene su uso para denotar la base para enteros , por ejemplo, #x2c -> 44
.
Además estoy más seguro.