https://emacs-china.org/uploads/default/original/2X/2/272c4f4f56631dee6c63b85a7a671521fa80dc61.gif
这种小绿点提示效果怎么样?
https://emacs-china.org/uploads/default/original/2X/2/272c4f4f56631dee6c63b85a7a671521fa80dc61.gif
这种小绿点提示效果怎么样?
我觉得你这个方案挺好的,干扰少,就是要一眼就看出输入法变化了就行。 不过我现在习惯使用红色光标,这种方案不知道配什么颜色比较显眼。
不知道,现在我正在摸索阶段
我试了一会,感觉小点不如光标好使,点太小容易忽视,太大又比较难看
确实是有这个问题。我个人是更偏向将整个光标用一种颜色来区分的,比较直观。
很好用,感谢分享!我在 change-cursor-color-on-input-method
函数的 if 里增加了两条断言,可以遵从 emacs-rime 中的 rime-disable-predicates
来改变光标颜色:
(defun change-cursor-color-on-input-method ()
"Set cursor color depending on whether an input method is used or not."
(interactive)
(set-cursor-color (if (and (rime--should-enable-p)
(not (rime--should-inline-ascii-p))
current-input-method)
input-method-cursor-color
default-cursor-color)))
赞。我正在想怎么把 emacs-rime 的断言加进来呢,太及时了。
现在按错Shift 都就一点痕迹都看不出来了😄
我是使用timer , 每0.3s探测一次
刚才看了你的实现,本来想用timer的,刚开始担心post-command-hook会影响性能。后来在Windows 下测试 ,发现并没有影响,而且开了emacs-rime的断言判断也是很流畅,同时还开着1.5s 的auto-save 。其实函数所做的事情就是比对一下条件,并设置光标颜色,计算量应该很低了。
post-command-hook 实现起来简单,如果不存在探测不及时的问题的话,我觉得应该优先考虑。至于性能,一般没问题
目前用下来感觉探测的还是挺准确和实时的,暂时还没发现问题。有待继续观察
这是什么机制,能显示数字吗
这个小点就是一个背景为绿色的posframe
参考 pyim-indicator-with-posframe
确实有探测不到的情况,在切换buffer后,由于没执行任何命令,不会触发颜色更新,得动一下光标才能更新。有什么方法可以在刚切换完buffer的时候,让我执行一次指定的命令吗?
PS: 这个问题是 consult 引入的问题。
可以用window-buffer-change-functions
试试。
这个变量是怎么使用的?我把函数名加入这个变量,没看到有触发。
下面的代码我在Linux上测试是能触发test函数的。
(defun test-window-buffer-change (&optional arg)
(message "arg %S" arg)
(message "current buff %s" (current-buffer))
)
(add-hook 'window-buffer-change-functions #'test-window-buffer-change)
多谢,确实可以触发函数。 不过这样还是解决不了问题,这个问题是consult 这个包造成的。关掉consult 是好的。
buffer-list-update-hook
也可以试试。