【问题标题】:emacs minor mode for temporarily modifying the default faceemacs 次要模式,用于临时修改默认面
【发布时间】:2011-05-26 14:47:30
【问题描述】:

例如,我怎样才能创建一个将默认前景色更改为灰色的次要模式,并且在退出次要模式时,前景色恢复为黑色?当您不希望在您的肩膀上看到某些文本时,此模式可能会很有用。

现在,我运行以下代码将文本颜色变为灰色:

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

然后用下面的代码找回来。

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

但这会影响所有缓冲区。

【问题讨论】:

    标签: emacs elisp highlight emacs-faces


    【解决方案1】:

    您可以使用基于叠加层的缓冲区面模式,它还可以更改缓冲区中文本的背景。

    (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)))
    

    更新:你知道,这不安全。它对人眼有效,但任何人都可以使用相机,然后增加对比度来阅读文本。

    【讨论】:

      猜你喜欢
      • 2013-04-09
      • 1970-01-01
      • 2011-07-21
      • 2012-12-06
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多