我在Emacs中做了一些颜色上的更改,现在唯一的问题是光标变成了黑色,在黑色背景上看不清,我需要解决这个问题。我该怎么办?
我在Emacs中做了一些颜色上的更改,现在唯一的问题是光标变成了黑色,在黑色背景上看不清,我需要解决这个问题。我该怎么办?
如果您正在运行较新版本的emacs,您可以使用:
; Set cursor color to white
(set-cursor-color "#ffffff")
你可以使用任何颜色代替#ffffff
。要获取16进制代码列表,请搜索谷歌并访问http://www.tayloredmktg.com/rgb/。
也许你会喜欢这个... 以下代码将在每次闪烁时更改光标颜色。只需评估代码即可运行:
; 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)))
)
请注意,此代码替换了 emacs 函数 'frame.el' 中的 'blink-cursor-timer-function'。
M-x customize-face
命令,然后回车。
2. 输入cursor
,然后回车。
3. 选择你喜欢的背景颜色。
4. 点击“state”,保存设置以供将来使用。试一下这个:
(setq default-frame-alist
'((cursor-color . "palegoldenrod")))
如果你想要保留 default-frame-alist
中的其他值,可以使用 Mark 的建议:
(add-to-list 'default-frame-alist '(cursor-color . "palegoldenrod"))
default-frame-alist
通常已经包含一些 X 特定的内容(例如默认框架大小)。你是不是想说 (add-to-list 'default-frame-alist '(cursor-color . "palegoldenrod"))
? - Alexander Gromnitskydefault-frame-alist
默认似乎只有 ((menu-bar-lines . 1) (tool-bar-lines . 1))
- 这个不会被太过想念。我会调整回答。 - Trey Jackson
*cursorColor: #ff7700
对我而言,按照其他答案的建议在初始化时设置光标颜色并不能真正起作用,因为可能会与我加载的主题和软件包发生干扰。我的解决方案是添加以下内容:
(add-hook 'after-init-hook
(lambda () (run-with-timer 5 nil #'set-cursor-color "SystemRedColor")))
这个解决方案使得对set-cursor-color的调用将会在初始化完成5秒后才会发生,从而充分留出时间让其他所有包和主题更改完全加载。
我在我的.emacs
文件中添加了(set-face-attribute 'cursor nil :background "#A0F")
,使我的光标变成了漂亮的紫色。
我不确定版本和系统信息有多重要,但我在Ubuntu 22.04.1 LTS上以GUI模式运行GNU Emacs 27.1。(Emacs 28.2可从GNU网站下载,因此可能会有所不同。)
你可以使用这个来自定义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)
progn
包装器。 - phils还有一个命令行选项:
--cursor-color, -cr COLOR color of the Emacs cursor indicating point
default-frame-alist
。 - Scott Weldon