(defun rime-sync ()
"Sync Rime user data."
(interactive)
(if (not rime--lib-loaded)
(error "You should enable rime before deploy")
(rime-lib-sync-user-data)
(rime-deploy)))
emacs_defun(env, rime, sync_user_data, "rime-lib-sync-user-data", "Sync user data.", 0, 0);
不太可行,这个是调用外部函数的样子。
emacs-rime还是很好用的。惟一不方便的场景就是中英文混输时,如果需要连续输入两个英文单词时,第2个单词不太好输入。请问这个有什么最佳实践吗?比方说,输入“中文 make a test 测试” 这种。
我的配置
(setq rime-disable-predicates
'(rime-predicate-evil-mode-p
rime-predicate-ace-window-p
rime-predicate-hydra-p
+rime-predicate-button-at-point-p
;;rime-predicate-after-ascii-char-p
rime-predicate-after-alphabet-char-p
rime-predicate-prog-in-code-p
rime-predicate-punctuation-after-space-cc-p
rime-predicate-punctuation-after-ascii-p
rime-predicate-auto-english-p
))
(leaf rime
:defvar rime-disable-predicates rime-inline-predicates
:bind (:rime-mode-map
("M-j" . rime-force-enable))
:custom ((rime-user-data-dir . "~/.config/ibus/rime")
(default-input-method . "rime")
(rime-show-candidate . nil))
:config
(setq rime-disable-predicates '(meow-normal-mode-p
meow-motion-mode-p
meow-keypad-mode-p
rime-predicate-prog-in-code-p
rime-predicate-after-alphabet-char-p))
(setq rime-inline-predicates '(rime-predicate-space-after-cc-p
rime-predicate-current-uppercase-letter-p)))
(add-hook 'org-mode-hook (lambda () (set-input-method "rime")))
这是我的配置。
@DogLooksGood 请教下狗哥windows 下加载不了模块是什么情况?
emacs和环境是用scoop安装的,
scoop bucket add extras
scoop install git emacs ripgrep fd llvm
scoop install gcc
scoop bucket add wsw0108 https://github.com/wsw0108/scoop-bucket.git
scoop install librime
rime-compile-module
Compile succeed! 正常,在编译目录下能正常找到生成的 librime-emacs.dll
,但是切换输入法时加载失败。
手工加载模块(module-load "c:/Users/driftcrow/.emacs.d/.local/straight/build-27.2/rime/librime-emacs.dll")
显示(我使用的是doom-emacs 路径):
forward-sexp: Module could not be opened: "c:/Users/driftcrow/.emacs.d/.local/straight/build-27.2/rime/librime-emacs.dll", "ÕÒ²»µ½Ö¸¶¨µÄÄ£¿é¡£"
乱码解码后是: 找不到指定的模块。
按https://github.com/DogLooksGood/emacs-rime/issues/64 中办法将librime的几个依赖dll 拷贝到 librime-emacs.dll
的同目录下错误信息依旧。
我并没有在 windows 上用的经验,大概帮不上忙,你需要等看有没有其它使用 windows 的人了。。
建议你通过 msys2 安装。我之前也试过 scoop的安装方式,折腾了很久没搞定。
@aqua0210 @DogLooksGood 好的,谢谢 。下周上班再去Windows 上折腾MSYS2去,周末在家用的MAC上已经折腾好了
果然还是 MSYS2 好用些 ,直接按狗哥的说明 就 成功了,还有你给的链接说明 更详细些
@DogLooksGood 狗哥,感兴趣用 PopWeb 给emacs-rime写一个前端不?用 Popweb 有几个好处:
Popweb本身自带窗口阴影,不用靠颜色对比来实现区域划分,这样整体背景色可以和Emacs保持一致
Popweb内部用JavaScript或Qt来绘制,很好的控制窗口内 margin
甚至可以直接让用户自定义窗口内背景,实现输入法皮肤自定义的功能
Popweb本身的性能非常好,界面定制能力很强,如果能实现对rime的前端,表现力会比现在 frame 的效果要好很多。
1 个赞
关于字体显示的问题,可以通过下面的设置,就可以正常显示 Emoji 和 HanaMin字体了。
(cl-loop for font in '("Segoe UI Emoji" "Apple Color Emoji" "Noto Color Emoji")
when (find-font (font-spec :name font))
return (set-fontset-font t 'unicode font nil 'append))
(dolist (font '("HanaMinA" "HanaMinB"))
(when (find-font (font-spec :name font))
(set-fontset-font t 'unicode font nil 'append)))
这是目前的我使用的字体设置 。
不知道 Windows Emacs 啥时候支持彩色 Emoji
dbv771
2022 年4 月 21 日 08:14
847
rime可以通过lua获取当前时间的功能,即输入orq会输出当前日期,但是我在emacs里面用emacs-rime,输入org的话仍然显示org,请问在emacs里面可以实现这样的功能吗?
这个跟 emacs-rime 没关系,可能是你安装的 librime 没有支持 lua。你自己编译的话,需要加入lua插件支持。小狼豪默认是支持 lua 的,所以你可以看到日期。
不过我觉得在 Emacs 中插入日期有很多更好的方式,根本不需要用到输入法来输入。
我是用 Yasnippet ,只要在当前buffer 输入 dd 然后回车就搞定了,比如输入法方便多了,不管什么输入法都可以用。
想问一下emacs-rime与key-chord协作的问题,比如我把jk
绑定给了evil-normal-state
,但是在emacs-rime开启的情况下,jk
会进入输入法而不是退出insert state,有没有什么好的解决方案?
"请教一下怎么修改 candidate 的数量,默认为5,我想改成9,谢谢~
这是关于 Rime 的问题,不是 emacs-rime 控制的。修改 default.custom.yaml 文件中的下面字段的值即可
patch:
menu/page_size: 9
aqua0210:
patch:
menu/page_size: 9
可以了!谢谢!从 fcitx-pinyin 转过来的,emacs-rime 确实好用。