14

バッファのモードに応じて (Elisp ColorTheme パッケージを使用して) 自動的に異なるカラー テーマを使用するように Emacs に指示するにはどうすればよいですか?

一部の色テーマは、コードの編集時にうまく機能しますが、Dired+、TERM、またはシェル モードでは機能しません。

ありがとう

4

5 に答える 5

13

バッファごとに個別のカラーテーマを設定することはできないようですが、フレームごとに設定することはできます。フレームごとのカラー テーマを設定する手順については、 http://www.emacswiki.org/emacs/ColorTheme#toc8 を参照してください

モードのロード時にロードフックを使用してカラーテーマを自動的に変更できますが、その変更はすべてのバッファに適用されます。

ロード フックを使用してモードをロードするときに、カラー テーマを変更できます。例えば

(add-hook 'dired-mode-hook 'color-theme-emacs-nw)

編集:これは、別の色のテーマを使用して新しいフレームでシェルを開く関数です:

(defun my-shell () 
       (interactive)
         (let ((color-theme-is-global nil))
          (select-frame (make-frame))
          (color-theme-gnome)
                         (shell)))
于 2011-01-02T07:58:48.290 に答える
7

パッケージload-theme-buffer-local(またはcolor-theme-buffer-local.elemacs 24 より前のテーマを使用している場合) は、バッファーごとに異なるフェイスを設定できます。ただし、背景は同じままです。

次のようにモードフックできます。
(add-hook 'js2-mode-hook (lambda nil (load-theme-buffer-local 'tango (current-buffer))))

パッケージは、MELPA ( M-x install-package RET load-theme-buffer-local)、ソース、およびgithub の readme で入手できます。

于 2013-12-11T02:52:32.530 に答える
4

私はzenburnの色を使用しています

(setq font-lock-maximum-decoration (quote ((dired-mode . nil) (t . t))))

私にはうまくいきませんでしたが、

(setq font-lock-maximum-decoration (quote ((dired-mode) (t . t))))

2011/01/04 にリリースされたバージョンの dired+ で完全に動作します。

于 2011-01-13T07:19:35.410 に答える
1

私は過去にターミナルで読めないdiredバッファで同じ問題に直面しました。回避策として、Mx Customize-Option font-lock-maximum-decoration; を実行しました。変数を構成ファイルに直接設定することもできます(setq font-lock-maximum-decoration (quote ((dired-mode . nil) (t . t))))。これは、dired に対してデフォルトの装飾を使用し、それ以外のすべてに対して最大の装飾を使用します (これがデフォルト設定でした)。詳細については実行してくださいC-h v font-lock-maximum-decoration

これは質問に正確に答えるものではありません-バッファごとまたはモードごとのカラーテーマを使用できるかどうかはわかりませんが、根本的な問題を解決するのに役立つかもしれません.

于 2010-12-26T01:36:00.600 に答える