TL; DR
Перш ніж встановити будь-яку змінну, ви повинні знати, як цю інтерпретацію слід інтерпретувати. Аналогічно, перед тим, як викликати будь-яку функцію (включаючи ті, які використовуються для перемикання другорядних режимів), ви повинні знати, як інтерпретуються аргументи цієї функції.
Використовуйте C-hfта C-hvперегляньте документацію щодо функції чи змінної. У ньому слід вказати значення, які очікуються.
"Нуль" означає буквально все, що ні nil. Сюди входять 0і від’ємні числа.
Незначні режими
Візьмемо конкретний приклад. Введіть C-hfblink-cursor-mode та натисніть, RETщоб переглянути документацію щодо функцій для blink-cursor-mode:
(режим моргання курсору та необов'язковий ARG)
Увімкніть миготливий курсор (режим блимання курсору). За допомогою аргументу префікса ARG увімкніть режим Blink Cursor, якщо ARG позитивний, і відключіть його інакше. Якщо дзвонить з Lisp, увімкніть режим, якщо ARG опущено або нульове.
Увімкнути режим блимання курсору можна будь-яким із наступних способів:
(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)
Зауважте, що аргумент tбуде працювати, навіть якщо рядок doc його спеціально не згадував. Хоча це часто буває, найбезпечнішою вашою ставкою є використання того, що вказує рядок doc, що в цьому випадку є позитивним значенням.
Також зауважте, що аргумент nilволі працює. Я настійно рекомендую не проти nilцього, оскільки це робить ваш намір неясним. Якби я переглянув ваш код lisp і побачив nilаргумент, я б припустив, що ви хочете вимкнути другорядний режим.
Ми також можемо відключити blink-cursor-modeнаступними способами:
(blink-cursor-mode 0) ; Non-positive argument
(blink-cursor-mode -1) ; Negative argument
Знову зауважте, що nilце не один із способів відключення цього другорядного режиму. Це стосується майже будь-якого другорядного режиму, з яким ви зіткнетесь.
Змінні
Тепер розглянемо приклад змінної. Введіть C-hvtruncate-linesта натисніть, RETщоб переглянути документацію змінної truncate-lines:
truncate-lines - це змінна, визначена у `С вихідному коді '.
Нульові засоби не відображають лінії продовження. Натомість дайте кожному рядку тексту лише один рядок екрана.
Ви можете ввімкнути усічення будь-яким із наступних способів:
(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)
Можливо, ви здивуєте, що 0і -1воля спрацює. Знову я б рекомендував не використовувати їх, оскільки це робить ваші наміри незрозумілими.
Єдиний спосіб відключити усічення:
(setq truncate-lines nil) ; nil value
Іншими словами, ви можете встановити truncate-linesрівні цифри, літери, рядки, списки чи будь-що інше, доки він не оцінить nilце дозволить усікати. (Але ви дійсно повинні дотримуватися tабо 1).