Entiendo que nil
, 0
y / o -1
se usan para deshabilitar algunas funciones y t
, 1
y / o +1
se usan para habilitar algunas funciones. Al asignar variables o habilitar / deshabilitar modos menores, ¿cuál debo elegir?
He visto todas estas variaciones utilizadas en un momento u otro. Me lleva a preguntarme si realmente hay una diferencia entre ellos. He visto que a veces usar 0
no funciona para mí, mientras que nil
sí. ¿Hay diferencias de dónde se usan?
Respuestas:
TL; DR
Antes de establecer cualquier variable, debe saber cómo se debe interpretar esa variable. Del mismo modo, antes de llamar a cualquier función (incluidas las utilizadas para alternar modos menores), debe saber cómo se interpretan los argumentos de esa función.
Use C-hfy C-hvpara ver la documentación de la función o variable en cuestión. Debe especificar los valores que se esperan.
"No nulo" significa literalmente todo lo que no es
nil
. Esto incluye0
y números negativos.Modos menores
Tomemos un ejemplo específico. Escriba C-hf
blink-cursor-mode
y presione RETpara ver la documentación de la función parablink-cursor-mode
:Podemos habilitar el modo Cursor de parpadeo de cualquiera de las siguientes maneras:
Tenga en cuenta que un argumento de
t
funcionará, aunque la cadena de documentación no lo mencione específicamente. Si bien este suele ser el caso, su apuesta más segura es usar lo que la cadena de documentos le indica que use, que en este caso es un valor positivo.Además, observe que un argumento de
nil
funcionará. Recomiendo encarecidamente quenil
no lo haga de esta manera porque deja en claro su intención. Si estuviera hojeando su código lisp y viera unnil
argumento, supondría que desea deshabilitar el modo menor.También podemos desactivarlo
blink-cursor-mode
de las siguientes maneras:Observe nuevamente que esa no
nil
es una de las formas de deshabilitar este modo menor. Esto es cierto para casi cualquier modo menor que encuentre.Variables
Ahora veamos un ejemplo de una variable. Escriba C-hv
truncate-lines
y presione RETpara ver la documentación de la variabletruncate-lines
:Puede activar el truncamiento de cualquiera de las siguientes maneras:
Puede sorprenderte que el
0
y el-1
funcionen. Una vez más, recomendaría no usarlos porque deja en claro sus intenciones.La única forma de deshabilitar el truncamiento es esta:
En otras palabras, puede establecer
truncate-lines
números iguales, letras, cadenas, listas o cualquier otra cosa que desee, siempre y cuando no se evalúenil
, permitirá el truncamiento. (Pero realmente deberías quedarte cont
o1
).fuente
Estas son todas las cosas diferentes. 0, 1 y -1 son números diferentes;
nil
Es un símbolo.Cada uno se usa en todo el lugar, para muchas cosas diferentes. Para averiguar para qué se utiliza cada uno en un contexto particular , consulte el documento para ese contexto . Y eso incluye contextos de activar o desactivar diferentes modos, habilitar y deshabilitar diferentes cosas usando variables y muchos otros contextos.
En suma:
El documento para un modo dado generalmente te dice cómo activarlo y desactivarlo. Si le dice que use 1 o -1
nil
o nonil
para algo, entonces eso es lo que significa. Existen algunas reglas generales para activar y desactivar los modos (interactivamente y desde el código Lisp). Pero parece que realmente necesita comenzar obteniendo algunos antecedentes generales.Consulte el documento de Emacs para saber cómo solicitar ayuda y otra información de Emacs : cómo verificar el valor de una variable, cómo ver el documento de una variable o una función (incluida una función que activa / desactiva un modo) , y así.
Puede comenzar usando
C-h C-h
( Ctrl-h Ctrl-h), para aprender sobre el sistema de ayuda de Emacs. Y construir a partir de ahí.C-h r
te lleva al manual de Emacs. Probar el tutorial de Emacs:C-h t
. Y revise la página de Emacs Wiki Newbie y la página sobre LearningEmacs .Para comenzar a aprender sobre Emacs Lisp:,
C-h i
elija el manual con el nombreEmacs Lisp Intro
y comience a leer. Y consulte la página Wiki de Emacs sobre Learning Emacs Lisp .fuente
nil
es el equivalente lógico de falso yt
verdadero y el resto son solo números. Pero no estaba seguro de en qué contextos generalmente se usaban.