emacsで現在の色のテーマを見つける方法


24

emacsの実行中に、現在使用されているカラーテーマを確認するにはどうすればよいですか?

回答:


19

現在のテーマの概念はありません。実際、アクティブな顔のセットを追加的に定義するために、複数のテーマを順番に適用できます。テーマのサポートが最新のEmacsバージョンに追加され(「参考文献」を参照M-x customize-theme)、「一度に複数のテーマを選択する」オプションがまだあります。

要するに、テーマをアクティブにすると、そのテーマに切り替わるのではなく、テーマで指定された変更を、リストされている顔と変数に適用します。

名前付きテーマに明示的に配置されていないすべてのカスタマイズは、実際には非表示のユーザーテーマに配置されるため、常に少なくとも1つのアクティブなテーマがあります。現在有効になっている他のテーマは、変数にリストされていますcustom-enabled-themes


4

color-theme-printを使用して、適用したテーマを取得する例を共有してください。

'Mx color-theme-print'を介して、カラーテーマ情報に関する出力を取得し、異なるカラーテーマに固有の典型的な値を見つけます。emacsの値が537182である 'background-color'を選択します。

カラーテーマライブラリ「color-theme-library.el」を開き、キーワード「537182」でファイルを検索すると、そこにテーマ名が表示されます。

簡単な方法ではありませんが、実際に機能しますが、それが役立つことを願っています!


3

M-x color-theme-print有効なフォントフェースを正確に伝えるのに役立ちます。どの名前のカラーテーマが適用されたかはわかりませんが、initファイルからそれを解決できるはずです。そうでない場合は、独自のカラーテーマを適用するモードを使用する必要があると思います(Proof Generalがこれを行うことは知っていますが、最も苛立たしいことです)。


1
どうやらこれが(require 'color-theme)最初にする必要があります
ロラザロアゼヴェール

1

sanityincの応答に追加するには、自分で設定するか、init.el(dotemacs)ファイルに設定します。

あなたはそれらのいくつかを試してみたので、あなたが尋ねていると思いますか?私が持っていることは知っていますが、メッセージバッファをチェックして最後に適用されたものを見ることができるかどうか疑問に思います。

@sanityincも説明をありがとう。テーマを連続して追加し始めたとき、ミニバッファが変更されないか、最後のテーマの値に設定されるなど、いくつかの領域に気付きました。今、私は理由を知っています。


古いcolor-themeパッケージには、というテーマが相互に干渉しないようにcolor-theme-is-cumulative設定できるvarという変数がありますnil。それは良いアイデアのように聞こえますが、結果は通常完全に予想外であり、テーマは通常組み込みの顔についての仮定を行うためだと思います。

ええ、私もその仮定に気づきました、私が1つを作ったとき...私は「人気のある」ものからコピーしますが、次のものの半分の場所を持っているでしょう...など「望まれている」変数を変更しただけで、何百もの変更が必要だったので、なぜ面倒なのか。関連するメモでは、私はチョコレートレインテーマを使用し、今それを愛しています。私の24.xビルドには何ヶ月もありました。

1
コマンド "color-theme-select"を使用していくつかのカラーテーマを試しましたが、カラーテーマが好きでしたが、それまでにカラーテーマ選択バッファを閉じていて、選択したものを忘れていたので、いくつかの変数は、現在適用されているカラーテーマを格納しています。メッセージバッファーにログがありません

おそらくM-x describe-face RET default RET、(またはデフォルト以外の別の顔を)試してM-x rgrepから、同じ色名/ 16進値を含む色テーマの.elファイルを探すために使用できます。

申し訳ありませんが、メッセージバッファを確認するソリューションは役に立ちません。 M-x load-theme <colortheme>メッセージバッファに何も出力しません。
クリスチャンヘレンツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.