emacs lisp 中是否有区域更改挂钩?

Is there a region change hook in emacs lisp?

我正在尝试获取缓冲区中当前选定区域的内容。我知道空闲计时器,但挂钩应该更多 efficient/cleaner...

一条路似乎在建议handle-shift-selection。 AFAICT 每次通过键盘更改区域时都会调用此函数。响应。建议mouse-drag-region.

不确定 "region change" 是什么意思。如果您的意思是 "the text in the region is modified",那么您需要使用 after-change-functions。如果您的意思是通过更改其边界来修改所选文本,那么您可能需要 post-command-hook 或者一个空闲计时器(这并不比钩子效率低,主要区别在于您获得的保证较少当它得到 运行 时;例如,如果两个命令之间没有空闲时间,则两个命令之间不会 运行,就像 运行 键盘宏时的情况一样)。