终端下的emacs有没有办法修改光标的形状或者颜色什么的呀?

像用evil什么的各种模式切换, 虽然mode-line可以提示, 但是总觉得不如光标上有变化来的更直观。 不过我用的是终端下的emacs, 试过各种修改光标样式,颜色的函数,都不起作用呀。有没有什么办法可以解决呀?

已加入melpa豪华午餐

看起来似乎不错, 可是我用的putty上毫无效果呀。 (tty-display-color-cells) 16777216 我这应该也是真彩色了呀。

Now, works in XTerm, Gnome Terminal(Gnome Desktop), iTerm(Mac OS X), Konsole(KDE Desktop), dumb(etc. mintty), Apple Terminal.app(restrictive supporting).

在终端要区别不同状态,配置里写个函数把modeline/headine颜色改了就行。思路就是这样。

请问在windows wsl2 里有解决方案吗?使用什么终端才可以?

我用的windows terminal是可以的

好滴,我试一试

使用了这个package,确实好了不少,但是有个小问题是,当处于Normal State退出的时候,会把windows terminal的光标也变成box了,不知道有没有好的办法,也许可以在退出的时候加个hook改回去?

你可以这样试试

  (defun yu/reset-cursor-shape ()
    "Reset terminal cursor shape to user default."
    (interactive)
    (send-string-to-terminal "\e[0 q"))

(add-hook 'kill-emacs-hook #'yu/reset-cursor-shape)

escape sequence 参考

手头没有windows,你可以试一下