23

emacs 24では、カラーテーマが適用される順序が重要であるようです。これは、Mxcolor-theme-selectを実行する場合に明らかです。あなたがicする順序

誰かがこの問題について何か洞察を持っていますか?

再起動せずに、次のカラーテーマを切り替えられるようにしたいと思います。

  1. ソラリゼーションライト
  2. ソラリゼーション-ダーク
  3. ゼンバーン
  4. railscasts

emacsにはcss-resetに相当するものが必要だと思います。非常に貴重なもう1つのヒントは、悪を使用する場合はこの行が必要であるということです。そうしないと、カーソルが黒のままになります。これは、暗いテーマにとっては恐ろしいことです。

(setq evil-default-cursor t) 

これは関連する問題です:Emacs(<v.24)のカラーテーマの切り替え。私はEmacs24.0を使用しています。この質問を投稿するのは、24.1より前の回避策、または24.1が十分に安定している場合のアドバイスを探しているためです。

4

6 に答える 6

18

Emacs 24でも、古い(そしてメンテナンスされていない)カラーテーマパッケージをまだ使用しているように思えます。Emacs 24にはカラーテーマインフラストラクチャが組み込まれています(そしてzenburnsolarizedなどのテーマが移植されています)。代わりに使用することをお勧めします。と友達の詳細については、こちらをご覧ください。deftheme

色のテーマに関する特定の質問に答えてください。テーマは通常、前のテーマが微調整した可能性があり、問題を引き起こすすべての顔を定義するわけではありません。テーマ間でデフォルトのテーマに移動することは、おそらくcssリセットに似ていると見なされる可能性があります。

于 2012-03-28T06:46:33.507 に答える
12

新しいテーマをロードする前に現在のテーマを自動的に無効にするには、アドバイスを使用することもできます。

(defadvice load-theme 
  (before theme-dont-propagate activate)
  (mapcar #'disable-theme custom-enabled-themes))
于 2013-03-24T03:56:04.557 に答える
8

以下のコードを.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)
于 2013-09-13T22:21:49.387 に答える
5

emacsが新しいテーマに切り替わる前に現在のテーマを無効にする関数を書きました。

次のスニペットをinit.elに貼り付けて、Mxl0ad-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)))
于 2012-10-23T14:56:17.337 に答える
4

他の人が言ったように、テーマのEmacs24バージョンに切り替えます。それを使用したら、でテーマを「元に戻す」ことができますdisable-theme。渡したのと同じ引数を指定するだけでload-theme、白紙の状態に戻る必要があります。次に、新しいテーマをロードします。

于 2012-03-28T11:27:56.940 に答える
3

次のいずれかのライブラリを使用して、カスタムテーマまたはカラーテーマを切り替えることができます。

  • Re Mi、コマンドdoremi-custom-themes+、およびを実行しますdoremi-color-themes+。これが必要doremi-cmd.elです。

  • つらら、マルチコマンドicicle-custom-themeおよびicicle-color-theme

Iciclesコマンドを使用すると、テーマのセットを絞り込んで循環させたり、さまざまな方法で並べ替えたりすることもできます(つまり、循環順序を変更します)。

于 2013-10-28T20:26:19.763 に答える