tutorial source para mac descargar code emacs elisp

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.