欢迎尝试 emacs-rime,计划中功能已全部完成。

在这个变量前打印出来?

没法打印啊,override原来的function就没问题了,都不知道怎么debug :joy:

emacs-rime感觉挺好用的,只是还不知道怎么配置,而且感觉你开的buffer不同,输入法切换的方法居然可以做到不一样。 我用两个buffer折腾了一下: scrath ,空白的,有时候输入中文,空格后变成英文,结果中文就调不出来了 org buffer: 我这个buffer 大量的中文,它很智能的转到中文 一个空格后出英文,自己绑定了 rime-inline-acii 快捷键后,貌似可以切换中英文,但总觉得有点儿怪怪的,就好像你吃一条鱼,总感觉有一根骨头在那里可是你有找不着。 其实我的想法很简单,evil-insert 模式下切换到evil-normal模式自动转成英文, 而由evil-normal 模式转为 evil-insert 模式时,根据光标的环境自动判断具体应该输入中文还是英文,比如光标左右被字母、特殊字符、空格包围的应该是英文,而左右都是中文的情况则应该是中文,另外,有一个函数可以在任意状态下将当前输入法 切换,我感觉好像是 rime-inline-ascii,但感觉又不像,因为有时我用这个函数没法切换,非常奇怪。我的配置是: win10 家庭版 emacs: 27 网上照抄的配置:

(add-to-list 'load-path (expand-file-name "e:/gitrep/emacs-rime"))
;;; Require
(require 'rime)
(require 'posframe)
;;; Code:
(when (eq system-type 'windows-nt)
  (setq rime-user-data-dir "~/.emacs.d/emacs-rime/Rime")
  (setq rime-share-data-dir "~/.emacs.d/emacs-rime/data")
  (setq rime-posframe-properties
        (list :background-color "#333333"
              :foreground-color "#dcdccc"
              :font "华文楷体"
              :internal-border-width 10)))

(setq default-input-method "rime"
  rime-show-candidate 'posframe)
(global-set-key (kbd "C-\\") 'toggle-input-method)

(setq rime-disable-predicates
      '(rime-predicate-evil-mode-p
        rime-predicate-after-alphabet-char-p
        rime-predicate-prog-in-code-p))
(define-key rime-mode-map (kbd "C-;") 'rime-inline-ascii)
(provide 'init-rime)

大佬们讨论了600多页,可不可以给个好用的配置给我们这些半桶水一点好用的配置呀。先谢过了。 ------------------------------------更新---------------------------- 在某个org文件又使用了我以上的配置,又感觉非常顺滑了,太感谢了,evil 中文输入问题终于得到近乎完美的解决了。

1 个赞

我很觉得 emacs-rime 很有必要搞个 better-default。一个可以简单说明白,大部分人能直接上手的方式。

虽然提供了很多功能是为了满足不同的需求,但感觉输入法完全有必要开箱即用。

4 个赞

太多的选择有时候确实意味着不幸 :rofl:

可以详细描述一下您是怎么解决这个问题的吗?我安装了Symbola字体还是一样的效果:

我就安装了Symbola字体,没做其他操作。不过我这边也没完全解决这个问题,只是emoji图标都解决了,个别字体还是有乱码。 比如下面这个特殊的𫔭字。 image

image

安装 HanaMin 花园明朝字体可以解决

我也不太能搞明白这字体选择是什么规则。可能不同系统上 fallback 的字体还不同。。

我的理解,如果你在 emacs 中这些字体都没问题,然后你不指定那个 posframe 的字体,这样是肯定 ok 的。

如果要候选有不同的字体,这事好像还有点麻烦。

有人帮我把 case 改成 cl-case 了。。不知道这样有没有影响

没关系,那些显示不出来的都是些很生僻的字,几乎都不会用到,按照几位的建议,字体装了,font不设定都不行,先不折腾了,不影响使用

最近使用rime经常出现这样的问题,无法调出中文输入法,使用:

rime-inline-acsii
rime-force-enable

都无法调出,不知何故,用

toggle-input-method

关闭打开也不行 然后右下角显示出一个“m"的字样,比较奇怪。 image 有大佬碰到过这样的问题吗?

default-input-method 设了么,确认下是什么,你用 toggle-input-method 激活的不是 rime

果然不是

default-input-method is a variable defined in ‘mule-cmds.el’.
Its value is "rfc1345"
Original value was nil

可怎么回事呀,我明明已经设置了呀

(setq default-input-method "rime"
  rime-show-candidate 'posframe)
(global-set-key (kbd "C-\\") 'toggle-input-method)

而且设置以后,它还是显示一个"m"字,太奇怪了

不清楚,可能被什么别的 package 影响了

请问 在emacs里面可以切换 中文标点/英文标点 半角/全角吗?

linux下,ibus是用 F4或者 Control+` 唤醒面板进行切换的

参照一下我使用的按键绑定的设置

  :bind
  (:map rime-active-mode-map
   ("<tab>" . 'rime-inline-ascii)
   :map rime-mode-map
   ("C-`" . 'rime-send-keybinding)    ;; <---- 
   ("M-j" . 'rime-force-enable))

我给 C-` 绑定了 rime-send-keybinding,这样的话这个组合键就会发给 librime,这样你就可以呼出菜单了。

3 个赞

多谢了, 可以了

修复了 rime-inline-ascii-holder 的一个 BUG

使用这个功能可以让任意字符都有办法进入 inline ascii 模式,包括标点。一直以来直接上屏的按键(主要是标点)不能进入 inline ascii 模式在很多时候是个麻烦的事。

Peek 2020-10-13 00-46

我用doom-emacs, vterm, 发现在vterm中不能启动输入法, 在其他 mode中没有问题,大佬遇到过这个问题吗?