12

Linuxでemacs23.3.1を使用する2つの関連する質問:

まず、以下のようにの値show-trailing-whitespacetwithに設定できないのはなぜですか?バージョンを自分setqに入れても、値は変更されません(機能的におよびを使用して表示されます)。setq.emacsM-x describe-variable

(setq show-trailing-whitespace t)  ; Does not change variable value or give error

(custom-set-variables              ; Sets show-trailing-whitespace as expected
 '(show-trailing-whitespace t))

t次に、値をとの間で切り替えるにはどうすればよいnilですか?この答えはまさに私が必要としていたものだと思いましたが、この場合は機能しません。私が使用した:

(global-set-key "\M-ow" 'tf-toggle-show-trailing-whitespace)

(defun tf-toggle-show-trailing-whitespace ()
    "Toggle show-trailing-whitespace between t and nil"
    (interactive)
    (setq show-trailing-whitespace (if (= show-trailing-whitespace nil) t nil))
    (redraw-display))

ヒットM-owするとエラーが発生しますWront type argument: number-or-marker-p, nil。何か案は?

4

2 に答える 2

19

最初に:describe-variableあなたが言うようshow-trailing-whitespaceに、バッファ変数です。これは、実行するsetqと現在のバッファにのみ設定されるため、ファイルで実行しても効果がないことを意味し.emacsます。setq-defaultの代わりに、どのカスタムに似たものを使用する必要がありますかsetq。これはすべてのバッファで機能します。

2番目:setq切り替えの場合、バッファごとにバッファを切り替える場合に使用できます。取得するエラーは=、2つの数値が等しいかどうかをテストするために使用することです。トグルは、を使用してよりクリーンな方法で行われnotます。ちなみに、この(redraw-display)コマンドは何もしていないようです。

(defun tf-toggle-show-trailing-whitespace ()
  "Toggle show-trailing-whitespace between t and nil"
  (interactive)
  (setq show-trailing-whitespace (not show-trailing-whitespace)))
于 2012-07-28T14:32:19.830 に答える
0

書き込み(eq show-trailing-whitespace nil)

またはそれより短い-しかし逆に-

(show-trailing-whitespaceの場合

于 2012-07-28T12:39:23.923 に答える