如果我运行emacs --daemon
(在.xinitrc
或更高版本中)然后emacsclient -c
,则新创建的框架具有黑色光标颜色,无论是colortheme还是其他任何设置。更准确地说,在我输入任何内容之前,光标颜色是白色(或其他颜色),但是第一个按键变为黑色,无法通过set-cursor-color
进行更改。默认和我的自定义colorthemes都是黑色,所以它使编辑非常不舒服。
如果我运行emacs
和M-x server-start
而不是emacs --daemon
,则不会出现此问题。但是这样我需要保留一个emacs“主”帧而不是偶然杀死它,这似乎不是一个很好的解决方案。
我在.emacs.d/init.el
中有以下阻止,但它无效:
(set-cursor-color "red")
(setq initial-frame-alist '((cursor-color . "red")))
(setq default-frame-alist '((cursor-color . "red")))
(add-hook 'window-setup-hook '(lambda () (set-cursor-color "red")))
(add-hook 'after-make-frame-functions '(lambda (f) (with-selected-frame f (set-cursor-color "red"))))
如果我运行M-x describe-face RET cursor
,我会:
(...)
Defined in `faces.el'.
Family: unspecified
Foundry: unspecified
Width: unspecified
Height: unspecified
Weight: unspecified
Slant: unspecified
Foreground: unspecified
Background: black
Underline: unspecified
Overline: unspecified
Strike-through: unspecified
Box: unspecified
Inverse: unspecified
Stipple: unspecified
Font: unspecified
Fontset: unspecified
Inherit: unspecified
答案 0 :(得分:7)
我相信在最近的Emacsen中,使用框架属性设置光标颜色不是首选方法。因此 使用set-cursor-color
或initial-frame-alist
/ default-frame-alist
,请尝试:
(set-face-background 'cursor "red")
或者,或许:
(set-face-attribute 'cursor nil :background "red"`)
答案 1 :(得分:6)
好吧..可以通过添加
解决此问题(setq default-frame-alist '((cursor-color . "white")))
虽然我不明白为什么以前不是问题。
请参阅this论坛帖子。
答案 2 :(得分:5)
Bwahahaha!我认为过去两年没有人发布解决方案,因为你们都是EVIL emacs用户!
说实话,我现在正在尝试邪恶模式,我刚刚在我的系统上解决了这个问题。把它放在.emacs文件中并抽烟:
'(evil-default-cursor (quote (t "white")))
我刚刚在bitbucket中针对Evil存储库打开了a bug。
对于我自己来说,我发现在6年左右的时间里,它已经真正精通emacs,多键的和弦对我的肌腱很难。邪恶模式可能允许我再次使用emacs,这是一件好事。正如Benedict所说(在函数式编程的上下文中),“Some evil is often necessary to get work done.”似乎也适用于Emacs。
P.S。 对于任何人来说,感觉这个答案只是DH0或其他不成熟和不合适的,Emacs和VI用户之间的大多数tongue feud已经肆虐多年。 Emacs有自己的Church of Emacs,VI有视频游戏World War VI。因此,对Emacs最成功的VI键绑定端口被命名为邪恶模式(邪恶中有VI这个词)也就不足为奇了。我喜欢这两位编辑,并赞扬那些最终使得VI键绑定在emacs中工作的邪恶开发者。
答案 3 :(得分:1)
这对我有用:
(setq evil-default-cursor t) ;; Now evil takes the default cursors
(set-cursor-color "white") ;; Set it to white
(set-mouse-color "white") ;; Same
答案 4 :(得分:0)
我也有同样的问题,多年来。
就我而言,我这样做:
M-x
set-cursor-color
"white"<ENTER>
这对我有用但我必须每次都这样做,这是sux ..
回到我原来的工作场所,我已经解决了这个问题,但是我没有过去曾经在我的旧工作场所拥有的init.el现在我需要重新解决这个问题,希望有人会在这里找到这个在我面前。