Emacs光标移动挂钩,如JavaScript mousemove事件

Emacs光标移动挂钩,如JavaScript mousemove事件,emacs,Emacs,我想跟踪当前缓冲区中的“当前字”。另一个(网络化)应用程序将知道的 我可以通过每次光标移动时发送请求来实现这一点,无论是单击、滚动或箭头等,即光标在缓冲区中的位置发生变化时 e、 g 使用post命令挂钩这将在每个命令后运行,包括移动命令 显然,这将比您想要的更频繁地触发,因此在钩子中,您可以做一些事情,例如跟踪钩子运行时您所处的最后一个位置,并且仅当当前点与最后一个点不同时才会触发网络请求,例如: (defvar最后一个post命令位置0 “保存上次运行post命令挂钩时的光标位置。”) (将

我想跟踪当前缓冲区中的“当前字”。另一个(网络化)应用程序将知道的

我可以通过每次光标移动时发送请求来实现这一点,无论是单击、滚动或箭头等,即光标在缓冲区中的位置发生变化时

e、 g


使用
post命令挂钩
这将在每个命令后运行,包括移动命令

显然,这将比您想要的更频繁地触发,因此在钩子中,您可以做一些事情,例如跟踪钩子运行时您所处的最后一个位置,并且仅当当前点与最后一个点不同时才会触发网络请求,例如:

(defvar最后一个post命令位置0
“保存上次运行post命令挂钩时的光标位置。”)
(将变量缓冲区设为本地“最后一个post命令位置”)
(如果移动了post命令()则取消执行操作)
(除非(等于(点)最后一个指挥所位置)
(让((我当前的词(点上的事物词)))
用代码替换(消息…)
(邮件“%s”我的当前单词)))
(setq最后一个post命令位置(点)))
(添加到列表“post命令挂钩”#do-stuff-if-moved-post-command)

会让我相信您可以使用输入的
左点
道具,但情况似乎并非如此。有关详细信息,请参阅。您应该能够通过确保缓冲区中的每个潜在“当前单词”都有不同的文本属性来实现这一点,以便触发输入的
钩子,但我不确定这有多实用(性能方面)…这是个好主意。我想我希望我的状态同时是行位置和缓冲区名称。buffer-name被处理,因为最后一个post命令位置是buffer-local,所以比较总是特定于缓冲区的。每个buffer.reading最后一个post命令位置的值不同,如果将记录器添加到钩子中,则命令似乎是以下命令之一:键盘/鼠标事件、交互功能、Emacs服务器请求。完成了吗?
(add-hook 'cursor-move-hook 'post-request-with-current-word)