好。我先用github上的吧。多谢。
其实我一直在等smart-input-source支持emacs-rime。 能不能考虑提高一点优先级?不知道实现起来麻烦不。
好。我先用github上的吧。多谢。
其实我一直在等smart-input-source支持emacs-rime。 能不能考虑提高一点优先级?不知道实现起来麻烦不。
你是什么Emacs?GNU官方的么?
改成了(setq cursor-type 'hbar) 没效果过,估计是hook 没有成功。 我是通过brew 安装的emacs mac port 28.0.50
返回结果如下:
➜ ~ defaults read org.gnu.Emacs
{
ApplePressAndHoldEnabled = NO;
NSFontPanelAttributes = "1, 1";
NSNavLastRootDirectory = "~";
NSNavLastUserSetHideExtensionButtonState = 1;
NSNavPanelExpandedSizeForSaveMode = "{712, 448}";
"NSWindow Frame NSFontPanel" = "766 268 445 240 0 0 1440 877 ";
"NSWindow Frame NSNavPanelAutosaveName" = "546 534 347 181 0 0 1440 877 ";
}
顺便请教下 这里的 ApplePressAndHoldEnabled = NO; 怎么打开? 不知道什么时候mac给我全局关上了,长按按键没法输入字符。
defaults write org.gnu.Emacs ApplePressAndHoldEnabled -bool true
试试?
或者
defaults delete org.gnu.Emacs ApplePressAndHoldEnabled
?
全局的话:
defaults delete -g ApplePressAndHoldEnabled
?
两种都试过。通过m-x smart-input-source-switch 也确认过了。
你在hook里面加个 (print "enter hook")
,
我觉得hook没调用的可能性不大,
那块太直接了,没有什么出错的空间
有没有可能:
你repo/emacs-smart-input-source目录下(或者build/smart-input-source目录下)有 elc文件
而你只更新了el文件,
这样emacs载入还是会选elc文件。
你是说emacs-smart-input-source这个包下面的elc吧?
我是直接下载这个仓库,加入到load path 然后 (require ‘smart-input-source)的,没有手动编译过elc,应该不会自动生成吧。我检查了下包的目录下没有.elc
去 smart-input-source.el
文件
(print 222)
和 (print 228)
(progn (print 215) (run-hooks 'smart-input-source-set-english-hook))
(print 216)
hook这块,没有兼容性问题,也特别直接。不应该连hook都运行不了的。
另外,之前switch不会触发hook,已修正。
set-english, set-other以前应该就是没有问题的。
测试cursor,请确保用的是这个版本的文件:
❯ md5 smart-input-source.el
MD5 (smart-input-source.el) = 76c31e3e0ac7639fe3d5a9386743e222
直接git pull 是这个最新的吗? 我刚git pull 以后,切换中文的时候,光标形状会变化了。改颜色还是没变化
这个和你的emacs有关,
可能是你的版本(28)太新,成熟度不够,或者接口变了?
我是26.3
只要能读到状态,就好办,我再研究一下。
一直复现不了你提的这个问题。
事实上,按<esc>
是不会退出inline english region的,
<esc>
会退出evil insert mode,
完了那个时候 inline english region仍然是激活状态。
这样可以方便地在region里移动,继续编辑。
可否录屏?注意需要文字描述一下按键序列(不放在录屏里也可以)
@aqua0210 你能复现他提的这个issue么?
我不用evil-mode,我在Emacs标准模式下 按Esc是不会影响inline english region的。没法重现他这个问题。
@goumao 关于光标颜色显示问题,我仔细看了下,看起来是hook没有正常生效。 我用emacs-rime的时候是通过 cursor-chg.el这个包自动切换的,不过我通过下面的配置,并没有生效。 这个包的原理是根据当前输入法的状态自动切换颜色,为nil时是红色,为其他值时是黄颜色。
单独执行 (setq current-input-method nil)
是可以改变光标为红色的,
单独执行 (setq current-input-method "rime")
光标为黄色。
(add-hook 'smart-input-source-set-english-hook
(lambda ()
(setq current-input-method nil)))
(add-hook 'smart-input-source-set-other-hook
(lambda ()
(setq current-input-method "rime")))
我猜测问题不是出现我这个hook里,
而是 current-input-method
是和emacs内置的输入法框架有关的。
但是我这里跟emacs内置的输入法框架是无关的。
你之前改光标形状能成功,说明还是被调用了的。
而你自己直接在emacs里手工执行(set-face-background 'cursor "orange")
没效果
说明就是语句本身的问题。
我去看下 cursor-chg.el 是怎么改光标颜色的,然后把那个迁移过来,应该就可以了。