期待一种让光标像心跳一样在Emacs中闪烁的方法
如何使Emacs中的光标像心跳一样闪烁。就像电脑挂起时笔记本电脑前面板上的LED一样 有变量期待一种让光标像心跳一样在Emacs中闪烁的方法,emacs,elisp,Emacs,Elisp,如何使Emacs中的光标像心跳一样闪烁。就像电脑挂起时笔记本电脑前面板上的LED一样 有变量闪烁光标列表控制光标闪烁,但我不知道如何使用它来满足我的要求 有可能吗?您猜该选项与“闪烁”一词有关。 所以你按C-HA(适当的)并输入“闪烁”。 在emacs上,我有两个选项:闪烁光标模式和闪烁匹配打开。 第一个看起来不错。描述为:“切换闪烁光标模式” 我的emacs上的快捷方式是:。 所以我猜这个选项在菜单的某个地方,也许在“选项”下面。 我打开选项菜单,它是:“闪烁的光标”和一个勾选框 这听起来也是
闪烁光标列表
控制光标闪烁,但我不知道如何使用它来满足我的要求
有可能吗?您猜该选项与“闪烁”一词有关。 所以你按C-HA(适当的)并输入“闪烁”。 在emacs上,我有两个选项:
闪烁光标模式
和闪烁匹配打开
。
第一个看起来不错。描述为:“切换闪烁光标模式”
我的emacs上的快捷方式是:
。
所以我猜这个选项在菜单的某个地方,也许在“选项”下面。
我打开选项菜单,它是:“闪烁的光标”和一个勾选框
这听起来也是一个可以定制的选项。
因此,我键入M-x自定义选项
,然后键入闪烁光标模式
。这允许我切换该值,并将其保存以备将来使用
编辑:要设置光标的打开和关闭间隔,有一个名为闪烁光标间隔的变量。您可以使用M-x自定义变量
,然后闪烁光标间隔
来设置间隔。变量闪烁光标列表
将关闭状态光标类型与打开状态光标类型相匹配,并且与闪烁速度无关
EDIT2:据我所知,没有办法使光标逐渐关闭和打开,因为打开状态下光标的形状可能与关闭状态下的形状不同(因此需要逐渐改变形状)。这个简单的次要模式实现了心跳式闪烁光标。您可以调整心跳光标颜色
,以获得不同的色调或变化
该代码在Emacs24.2.1中进行了测试,但很容易移植到较旧的Emacsen
(require 'cl)
(require 'color)
(defvar heartbeat-fps 16)
(defvar heartbeat-period 5)
(defun heartbeat-range (from to cnt)
(let ((step (/ (- to from) (float cnt))))
(loop for i below cnt collect (+ from (* step i)))))
(defun heartbeat-cursor-colors ()
(let ((cnt (* heartbeat-period heartbeat-fps)))
(mapcar (lambda (r)
(color-rgb-to-hex r 0 0))
(nconc (heartbeat-range .2 1 (/ cnt 2))
(heartbeat-range 1 .2 (/ cnt 2))))))
(defvar heartbeat-cursor-timer nil)
(defvar heartbeat-cursor-old-color)
(define-minor-mode heartbeat-cursor-mode
"Change cursor color with the heartbeat effect."
nil "" nil
:global t
(when heartbeat-cursor-timer
(cancel-timer heartbeat-cursor-timer)
(setq heartbeat-cursor-timer nil)
(set-face-background 'cursor heartbeat-cursor-old-color))
(when heartbeat-cursor-mode
(setq heartbeat-cursor-old-color (face-background 'cursor)
heartbeat-cursor-timer
(run-with-timer
0 (/ 1 (float heartbeat-fps))
(lexical-let ((colors (heartbeat-cursor-colors)) tail)
(lambda ()
(setq tail (or (cdr tail) colors))
(set-face-background 'cursor (car tail))))))))
是的,我知道光标可以闪烁,但它能以慢节奏闪烁吗?不只是简单的开关,开关就像电脑挂起时笔记本电脑前面板上的LED一样。
。谢谢:-)希望Emacs将来能有这个功能。@loushui未来已经到来。:)看我的答案,一个简单的心跳式闪烁光标。难以置信-对你和emacs来说都是荣誉。现在让我们看看您在Eclipse中是如何做到这一点的;-)太神了要使用emacs 24.3.1运行它,我必须将其设置为nil
心跳光标计时器
-(defvar心跳光标计时器nil)@nic感谢您的测试,我现在更新了初始化心跳光标计时器的答案。