2010-12-16 11 views
1

たとえば、デフォルトのフォアグラウンドカラーをグレーに変更するマイナーモードを作成し、マイナーモードを終了するとフォアグラウンドカラーが黒に戻ります。このモードは、特定のテキストが肩の上に見えないようにする場合に便利です。今のデフォルトの顔を一時的に変更するためのemacsマイナーモード

、私は灰色にテキストの色をオンにするために、次のコードを実行します。

(set-face-attribute 'default (selected-frame) :foreground "darkgrey") 

そして戻って取得するために、次のコード。

(set-face-attribute 'default (selected-frame) :foreground "SystemWindowText") 

しかし、これはすべてのバッファに影響します。

答えて

7

オーバーレイに基づいてバッファフェイスモードを使用できます。また、バッファ内のテキストの背景を変更することもできます。

(make-face 'hard-to-read-font) 
(set-face-attribute 'hard-to-read-font nil :background "darkgrey" :foreground "grey") 

(define-minor-mode hard-to-read-mode 
    "This mode might be useful when you don't like certain text to be seen over your shoulders." 
    :init-value nil :lighter " hard-to-read" :keymap nil 
    (if hard-to-read-mode 
     (progn 
     (font-lock-mode nil) 
     (buffer-face-mode t) 
     (buffer-face-set 'hard-to-read-font)) 
    (progn 
     (font-lock-mode t) 
     (buffer-face-mode nil)))) 

;; change this to mode you need 
;; or turn it on manually 
;; (add-hook 'text-mode-hook 
;;   (lambda() 
;;    (hard-to-read-mode t))) 

更新:これは安全ではありません。人間の目には効果がありますが、誰でもカメラを使ってコントラストを上げてテキストを読むことができます。

関連する問題