TL; DR
変数を設定する前に、その変数の解釈方法を知っておく必要があります。同様に、(マイナーモードの切り替えに使用される関数を含む)関数を呼び出す前に、その関数の引数がどのように解釈されるかを知っておく必要があります。
C-hfおよびC-hvを使用して、問題の関数または変数のドキュメントを調べます。予想される値を指定する必要があります。
「Non-nil」とは、文字通りではないものを意味しnil
ます。これには0
負の数が含まれます。
マイナーモード
具体例を見てみましょう。入力C-hfblink-cursor-mode
とヒットRETのための機能のドキュメントを参照してくださいblink-cursor-mode
。
(点滅カーソルモードとオプションのARG)
カーソルの点滅を切り替えます(カーソルの点滅モード)。プレフィックス引数ARGを使用して、ARGが正の場合は点滅カーソルモードを有効にし、そうでない場合は無効にします。Lispから呼び出された場合、ARGが省略されているかnilの場合、モードを有効にします。
次のいずれかの方法で、点滅カーソルモードを有効にできます。
(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
繰り返しますが、これはこのマイナーモードを無効にする方法の1つでnil
はありません。これは、発生するほとんどすべてのマイナーモードに当てはまります。
変数
次に、変数の例を見てみましょう。入力C-hvtruncate-lines
しRETて、変数のドキュメントを確認しますtruncate-lines
:
truncate-linesは、「Cソースコード」で定義されている変数です。
非nilは、継続行を表示しないことを意味します。代わりに、テキストの各行に1画面行のみを指定してください。
次のいずれかの方法で切り捨てをオンにできます。
(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
)。