TL; DR
Прежде чем устанавливать какую-либо переменную, вы должны знать, как эта переменная должна интерпретироваться. Точно так же, прежде чем вызывать какую-либо функцию (включая те, которые используются для переключения второстепенных режимов), вы должны знать, как интерпретируются аргументы этой функции.
Используйте C-hfи C-hvдля просмотра документации по рассматриваемой функции или переменной. Следует указать ожидаемые значения.
«Не ноль» означает буквально все, что не является nil
. Это включает 0
и отрицательные числа.
Незначительные режимы
Давайте возьмем конкретный пример. Введите C-hfblink-cursor-mode
и нажмите, RETчтобы увидеть документацию по функциям для blink-cursor-mode
:
(режим мигания курсора и необязательный ARG)
Переключатель курсора мигает (режим Blink Cursor). С префиксным аргументом ARG, включите режим Blink Cursor, если ARG положительный, и отключите его в противном случае. Если вызывается из Lisp, включите режим, если ARG опущен или ноль.
Мы можем включить режим Blink Cursor любым из следующих способов:
(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
будет работать, хотя в строке документа это не упоминается. Хотя это часто имеет место, ваша самая безопасная ставка - использовать то, что подсказывает вам строка документа, что в данном случае является положительным значением.
Также обратите внимание, что аргумент 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 - это переменная, определенная в `C исходном коде '.
Значения, отличные от нуля, не отображают строки продолжения. Вместо этого, дайте каждой строке текста только одну строку экрана.
Вы можете включить усечение любым из следующих способов:
(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
).