Emacs 24では、カラーテーマが適用される順序が重要であるようです。これは、M-xcolor-theme-selectを実行した場合に明らかです。あなたがicする順序
誰かがこの問題について何か洞察を持っていますか?
再起動せずに、次のカラーテーマを切り替えられるようにしたいと思います。
Emacsにはcss-resetに相当するものが必要だと思います。非常に貴重なもう1つのヒントは、悪を使用する場合はこの行が必要であるか、カーソルが黒のままであるということです。これは暗いテーマにとっては恐ろしいことです。
(setq evil-default-cursor t)
これは関連する問題です: Emacs(<v.24)のカラーテーマの切り替え 。私はEmacs24.0を使用しています。この質問を投稿するのは、24.1より前の回避策、または24.1が十分に安定している場合のアドバイスを探しているからです。
Emacs 24でも、古い(そしてメンテナンスされていない)カラーテーマパッケージを使用しているように思えます。 Emacs 24には組み込みのカラーテーマインフラストラクチャがあり(そして zenburn や solarized のようなテーマが移植されています)、代わりに使用することをお勧めします。 deftheme
とその友達の詳細については、 ここ をご覧ください。
色のテーマに関する特定の質問に答えてください。テーマは通常、前のテーマが微調整した可能性があり、問題を引き起こすすべての顔を定義するわけではありません。テーマ間でデフォルトのテーマに移動することは、おそらくcssリセットに似ていると見なされる可能性があります。
新しいテーマをロードする前に現在のテーマを自動的に無効にするには、アドバイスを使用することもできます。
(defadvice load-theme
(before theme-dont-propagate activate)
(mapcar #'disable-theme custom-enabled-themes))
以下のコードを.emacs/init.elに挿入して、バインドしました C-t 指定された順序でテーマの固定リストを循環します。これはEmacs24と互換性があります。
;;;;; Theme ;;;;;
;; Cycle through this set of themes
(setq my-themes '(solarized-light solarized-dark zenburn railscast))
(setq my-cur-theme nil)
(defun cycle-my-theme ()
"Cycle through a list of themes, my-themes"
(interactive)
(when my-cur-theme
(disable-theme my-cur-theme)
(setq my-themes (append my-themes (list my-cur-theme))))
(setq my-cur-theme (pop my-themes))
(load-theme my-cur-theme t))
;; Switch to the first theme in the list above
(cycle-my-theme)
;; Bind this to C-t
(global-set-key (kbd "C-t") 'cycle-my-theme)
emacsが新しいテーマに切り替わる前に現在のテーマを無効にする関数を書きました。
次のスニペットをinit.elに貼り付けて、M-xl0ad-themeを使用できます。
https://github.com/maruks/.emacs.d
;; color themes
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(setq current-t43m3 nil)
(defun enab-theme (theme)
(if current-t43m3 (disable-theme current-t43m3))
(setq current-t43m3 theme)
(load-theme theme t))
(defun disab-current-theme ()
(if current-t43m3 (disable-theme current-t43m3))
(setq current-t43m3 nil))
(global-set-key (kbd "C-c ltwo") '(lambda () (interactive) (enab-theme 'wombat)))
(global-set-key (kbd "C-c ltze") '(lambda () (interactive) (enab-theme 'zenburn)))
(global-set-key (kbd "C-c ltsd") '(lambda () (interactive) (enab-theme 'solarized-dark)))
(global-set-key (kbd "C-c ltsl") '(lambda () (interactive) (enab-theme 'solarized-light)))
(global-set-key (kbd "C-c ltne") '(lambda () (interactive) (enab-theme 'tomorrow-night-eighties)))
(global-set-key (kbd "C-c ltni") '(lambda () (interactive) (enab-theme 'tomorrow-night)))
(global-set-key (kbd "C-c ltnb") '(lambda () (interactive) (enab-theme 'tomorrow-night-bright)))
(global-set-key (kbd "C-c ltto") '(lambda () (interactive) (enab-theme 'tomorrow)))
(global-set-key (kbd "C-c ltta") '(lambda () (interactive) (enab-theme 'tango)))
(global-set-key (kbd "C-c ltdb") '(lambda () (interactive) (enab-theme 'deeper-blue)))
(global-set-key (kbd "C-c ltdi") '(lambda () (interactive) (enab-theme 'dichromacy)))
(global-set-key (kbd "C-c dct") '(lambda () (interactive) (disab-current-theme)))
(defun l0ad-theme (name)
(interactive
(list
(intern (completing-read "Load custom theme: "
(mapcar 'symbol-name (custom-available-themes))))))
(enab-theme name))
(setq d3fault-theme (getenv "EMACS_DEFAULT_THEME"))
(when d3fault-theme
(enab-theme (intern d3fault-theme)))
他の人が言ったように、テーマのEmacs24バージョンに切り替えます。それを使用したら、disable-theme
を使用してテーマを「元に戻す」ことができます。 load-theme
に渡したのと同じ引数を指定するだけで、白紙の状態に戻るはずです。次に、新しいテーマをロードします。
次のいずれかのライブラリを使用して、カスタムテーマまたはカラーテーマを切り替えることができます。
Do Re Mi 、コマンドdoremi-custom-themes+
およびdoremi-color-themes+
。必要です doremi-cmd.el
このため。
つらら 、マルチコマンドicicle-custom-theme
およびicicle-color-theme
。
Iciclesコマンドを使用すると、テーマのセットを絞り込んで循環させたり、さまざまな方法で並べ替えたりすることもできます(つまり、サイクルの順序を変更します)。