web-dev-qa-db-ja.com

emacsでカーソルの色を変更する方法

私はEmacsの色にいくつかの変更を加えましたが、現在間違っているのはカーソルが黒の背景に黒であり、それを変更する必要があることです。私は何をしますか?

30
fakedrake

Emacsの最新バージョンを実行している場合は、以下を使用できます。

; Set cursor color to white
(set-cursor-color "#ffffff") 

の代わりに #ffffff好きな色を使えます。 16進コードのリストについてgoogleは言う: http://www.tayloredmktg.com/rgb/


たぶんこれが好きかも...次のコードはblinkごとにカーソルの色を変更します。ただ評価コードとその実行:

; Using in Emacs 24.0 

(defvar blink-cursor-colors (list  "#92c48f" "#6785c5" "#be369c" "#d9ca65")
  "On each blink the cursor will cycle to the next color in this list.")

(setq blink-cursor-count 0)
(defun blink-cursor-timer-function ()
  "Zarza wrote this cyberpunk variant of timer `blink-cursor-timer'. 
Warning: overwrites original version in `frame.el'.

This one changes the cursor color on each blink. Define colors in `blink-cursor-colors'."
  (when (not (internal-show-cursor-p))
    (when (>= blink-cursor-count (length blink-cursor-colors))
      (setq blink-cursor-count 0))
    (set-cursor-color (nth blink-cursor-count blink-cursor-colors))
    (setq blink-cursor-count (+ 1 blink-cursor-count))
    )
  (internal-show-cursor nil (not (internal-show-cursor-p)))
  )

このコードは、「frame.el」のemacs関数「blink-cursor-timer-function」を置き換えることに注意してください。

39
Zarza

上記のどれも私にとってはうまくいかなかったので、自分で少し調査しました。 EmacsWikiから:

14.20カーソルの表示

テキスト端末では、カーソルの外観は端末によって制御されますであり、主にEmacsの制御外です。一部の端末には、「可視」静的カーソルと「非常に可視」点滅カーソルの2つの異なるカーソルがあります。デフォルトでは、Emacsは非常に目に見えるカーソルを使用し、Emacsを開始または再開するとカーソルがそれに切り替わります。 Emacsが起動または再開するときに変数visible-cursorがnilの場合、通常のカーソルを使用します。

グラフィカル表示では、テキストカーソルのさらに多くのプロパティを変更できます。色をカスタマイズするには、カーソルという名前の顔の:background属性を変更します(顔のカスタマイズを参照)。 (この面の他の属性は無効です。カーソルの下に表示されるテキストは、フレームの背景色を使用して描画されます。)形状を変更するには、バッファーローカル変数のカーソルタイプをカスタマイズします。可能な値は、box(デフォルト)、hollow(中空ボックス)、bar(垂直バー)、(bar。n)(nピクセル幅の垂直バー)、hbar(水平バー)、(hbar。n)(水平バー(高さnピクセル)、またはnil(カーソルなし)。

カーソルの点滅を無効にするには、変数blink-cursor-modeをnilに変更するか(簡単なカスタマイズを参照)、または行(blink-cursor-mode 0)をinitファイルに追加します。または、リスト変数blink-cursor-alistをカスタマイズして、カーソルが「点滅」したときのカーソルの外観を変更できます。リスト内の各要素は(on-type。off-type)という形式でなければなりません。これは、カーソルが点滅したときにオンタイプとして表示される場合(on-typeは上記のカーソルタイプの1つです)、点滅したときにオフタイプとして表示されます。

タブ文字などの一部の文字は「非常に幅広」です。カーソルがそのような文字の上に置かれると、通常はデフォルトの文字幅で描画されます。変数x-stretch-cursorをnil以外の値に変更することで、カーソルをストレッチしてワイド文字をカバーできます。

カーソルは通常、選択されていないウィンドウでは点滅していない中空のボックスとして表示されます。 (バーカーソルの場合は、代わりに細いバーとして表示されます。)選択されていないウィンドウでカーソルをオフにするには、変数cursor-in-non-selected-windowsをnilに変更します。

カーソルをさらに見やすくするには、ポイントを含む線を強調表示するマイナーモードであるHL Lineモードを使用できます。 M-x hl-line-modeを使用して、現在のバッファーで有効または無効にします。 M-x global-hl-line-modeは、同じモードをグローバルに有効または無効にします。

これがその方法です:1. M-x customize-face、2と入力します。cursor Enter 3.お好みの背景色を選択します。 4.状態をクリックし、将来のセッションのために保存します。

ここのスクリーンショット:

enter image description here

enter image description here

enter image description here

enter image description here

14
qed

これを試して:

(setq default-frame-alist
  '((cursor-color . "palegoldenrod")))

default-frame-alistの他の値を保持したい場合は、Markの提案に従ってください。

(add-to-list 'default-frame-alist '(cursor-color . "palegoldenrod"))
9
Trey Jackson

Xウィンドウシステムを使用している場合は、このようなものを.Xdefaults

*cursorColor: #ff7700
5
modular

コマンドラインオプションもあります:

--cursor-color, -cr COLOR       color of the Emacs cursor indicating point
1

これを使ってemacsの色をカスタマイズできます。

(defun good-colors ()
  (progn
     ;; Set cursor color
     (set-cursor-color "Black")

     (set-background-color "grey46")
     (set-foreground-color "White")
     (set-border-color "dark orange")
     (set-mouse-color "dark orange") 
))

(good-colors)
1
0xAX