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 incluye 0y números negativos.
Modos menores
Tomemos un ejemplo específico. Escriba C-hfblink-cursor-mode y presione RETpara ver la documentación de la función para blink-cursor-mode:
(modo de cursor parpadeante y ARG opcional)
Alternar el cursor parpadeando (modo de cursor de parpadeo). Con un argumento de prefijo ARG, active el modo de parpadeo del cursor si ARG es positivo, y desactívelo de lo contrario. Si se llama desde Lisp, habilite el modo si se omite ARG o es nulo.
Podemos habilitar el modo Cursor de parpadeo de cualquiera de las siguientes maneras:
(blink-cursor-mode) ; Omitted argument
(blink-cursor-mode 1) ; Positive argument
(blink-cursor-mode t) ; True argument
(blink-cursor-mode nil) ; nil argument (don't use this)
Tenga en cuenta que un argumento de tfuncionará, 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 nilfuncionará. Recomiendo encarecidamente que nilno lo haga de esta manera porque deja en claro su intención. Si estuviera hojeando su código lisp y viera un nilargumento, supondría que desea deshabilitar el modo menor.
También podemos desactivarlo blink-cursor-modede las siguientes maneras:
(blink-cursor-mode 0) ; Non-positive argument
(blink-cursor-mode -1) ; Negative argument
Observe nuevamente que esa nonil 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-hvtruncate-linesy presione RETpara ver la documentación de la variable truncate-lines:
truncate-lines es una variable definida en el 'código fuente C'.
No nulo significa no mostrar líneas de continuación. En su lugar, asigne a cada línea de texto una sola línea de pantalla.
Puede activar el truncamiento de cualquiera de las siguientes maneras:
(setq truncate-lines t) ; Boolean true value (non-nil)
(setq truncate-lines 1) ; Positive value (non-nil)
(setq truncate-lines 0) ; Zero value (non-nil)
(setq truncate-lines -1) ; Negative value (non-nil)
Puede sorprenderte que el 0y el -1funcionen. Una vez más, recomendaría no usarlos porque deja en claro sus intenciones.
La única forma de deshabilitar el truncamiento es esta:
(setq truncate-lines nil) ; nil value
En otras palabras, puede establecer truncate-linesnúmeros iguales, letras, cadenas, listas o cualquier otra cosa que desee, siempre y cuando no se evalúe nil, permitirá el truncamiento. (Pero realmente deberías quedarte con to 1).