TL; DR
Przed ustawieniem dowolnej zmiennej musisz wiedzieć, jak należy ją interpretować. Podobnie przed wywołaniem dowolnej funkcji (w tym tych używanych do przełączania mniejszych trybów), musisz wiedzieć, jak interpretowane są argumenty tej funkcji.
Użyj C-hfi, C-hvaby przejrzeć dokumentację dla danej funkcji lub zmiennej. Należy określić oczekiwane wartości.
„Non-zero” oznacza dosłownie wszystko , co nie jest nil
. Obejmuje to 0
i liczby ujemne.
Drobne tryby
Weźmy konkretny przykład. Wpisz C-hfblink-cursor-mode
i naciśnij, RETaby zobaczyć dokumentację funkcji dla blink-cursor-mode
:
(tryb migania kursora i opcjonalny ARG)
Przełącz miganie kursora (tryb kursora migania). Z argumentem przedrostka ARG włącz tryb Blink Cursor, jeśli ARG jest dodatni, i wyłącz go w przeciwnym razie. W przypadku wywołania z Lisp włącz tryb, jeśli ARG zostanie pominięty lub zero.
Możemy włączyć tryb kursora mrugania na jeden z następujących sposobów:
(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)
Zauważ, że argument of t
zadziała, mimo że ciąg doc nie wspomniał o nim. Chociaż często tak jest, najbezpieczniejszym rozwiązaniem jest użycie tego, co mówi ci ciąg dokumentów, co w tym przypadku jest wartością dodatnią.
Zauważ też, że argument argumentu nil
zadziała. Zdecydowanie odradzam nil
w ten sposób, ponieważ powoduje to, że twój zamiar jest niejasny. Gdybym przeglądał twój kod lisp i zobaczyłem nil
argument, zakładam, że chciałeś wyłączyć tryb podrzędny.
Możemy również wyłączyć blink-cursor-mode
w następujący sposób:
(blink-cursor-mode 0) ; Non-positive argument
(blink-cursor-mode -1) ; Negative argument
Zauważ ponownie, że nienil
jest to jeden ze sposobów na wyłączenie tego drobnego trybu. Dotyczy to prawie każdego mniejszego trybu, z którym się spotkasz.
Zmienne
Spójrzmy teraz na przykład zmiennej. Wpisz C-hvtruncate-lines
i naciśnij, RETaby przejrzeć dokumentację zmiennej truncate-lines
:
truncate-lines jest zmienną zdefiniowaną w `kodzie źródłowym C '.
Non-zero oznacza, że nie wyświetlają linii kontynuacji. Zamiast tego, daj każdej linii tekstu tylko jedną linię ekranu.
Możesz włączyć obcinanie na jeden z następujących sposobów:
(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)
Może cię to zaskoczyć, że 0
i -1
będą działać. Ponownie odradzam ich używanie, ponieważ powoduje to, że twoje intencje są niejasne.
Jedynym sposobem wyłączenia obcinania jest:
(setq truncate-lines nil) ; nil value
Innymi słowy, możesz ustawić truncate-lines
równe cyfry, litery, ciągi znaków, listy lub cokolwiek innego, o ile nie będzie to miało wpływu nil
, umożliwi to obcięcie. (Ale powinieneś naprawdę trzymać się t
lub 1
).