TL; DR
Trước khi bạn đặt bất kỳ biến nào, bạn phải biết biến đó được diễn giải như thế nào. Tương tự, trước khi bạn gọi bất kỳ hàm nào (bao gồm các hàm được sử dụng để chuyển đổi các chế độ nhỏ), bạn phải biết cách các đối số của hàm đó được diễn giải.
Sử dụng C-hfvà C-hvđể xem tài liệu cho chức năng hoặc biến trong câu hỏi. Nó sẽ chỉ định các giá trị được mong đợi.
"Non-nil" có nghĩa đen là bất cứ thứ gì không có nil
. Điều này bao gồm 0
và số âm.
Chế độ nhỏ
Hãy lấy một ví dụ cụ thể. Nhập C-hfblink-cursor-mode
và nhấn RETđể xem tài liệu chức năng cho blink-cursor-mode
:
(nhấp nháy chế độ con trỏ & ARG tùy chọn)
Chuyển đổi nhấp nháy con trỏ (Chế độ con trỏ nhấp nháy). Với ARG đối số tiền tố, bật chế độ Blink Coder nếu ARG dương và tắt nó đi. Nếu được gọi từ Lisp, hãy bật chế độ nếu ARG bị bỏ qua hoặc không.
Chúng tôi có thể kích hoạt chế độ Blink Coder theo bất kỳ cách nào sau đây:
(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)
Lưu ý rằng một đối số t
sẽ hoạt động, mặc dù chuỗi doc không đề cập cụ thể đến nó. Mặc dù điều này thường xảy ra, nhưng cách an toàn nhất của bạn là sử dụng những gì chuỗi doc cho bạn sử dụng, trong trường hợp này là một giá trị dương.
Ngoài ra, lưu ý rằng một đối số nil
sẽ làm việc. Tôi thực sự khuyên bạn nên chống lại nil
theo cách này bởi vì nó làm cho ý định của bạn không rõ ràng. Nếu tôi đang lướt qua mã lisp của bạn và tôi thấy một nil
đối số, tôi sẽ cho rằng bạn muốn tắt chế độ nhỏ.
Chúng tôi cũng có thể vô hiệu hóa blink-cursor-mode
theo các cách sau:
(blink-cursor-mode 0) ; Non-positive argument
(blink-cursor-mode -1) ; Negative argument
Một lần nữa lưu ý rằng đó không phảinil
là một trong những cách để vô hiệu hóa chế độ nhỏ này. Điều này đúng với hầu hết mọi chế độ nhỏ mà bạn sẽ gặp.
Biến
Bây giờ hãy xem một ví dụ về một biến. Nhập C-hvtruncate-lines
và nhấn RETđể xem tài liệu cho biến truncate-lines
:
truncate-lines là một biến được định nghĩa trong 'mã nguồn C'.
Non-nil có nghĩa là không hiển thị các dòng tiếp tục. Thay vào đó, cung cấp cho mỗi dòng văn bản chỉ một dòng màn hình.
Bạn có thể bật cắt ngắn theo bất kỳ cách nào sau đây:
(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)
Nó có thể làm bạn ngạc nhiên rằng 0
và -1
sẽ làm việc. Một lần nữa, tôi khuyên bạn không nên sử dụng chúng vì nó làm cho ý định của bạn không rõ ràng.
Cách duy nhất để vô hiệu hóa cắt ngắn là:
(setq truncate-lines nil) ; nil value
Nói cách khác, bạn có thể đặt truncate-lines
bằng số, chữ cái, chuỗi, danh sách hoặc bất cứ thứ gì bạn muốn, miễn là nó không đánh giá nil
nó sẽ cho phép cắt ngắn. (Nhưng bạn nên thực sự gắn bó với t
hoặc 1
).