Fcitx5 输入法在 Emacs 中启用预编辑文本显示时遇到的问题

来自之前的讨论: 从今天开始,Emacs里面可以运行任何你想要的程序 (Linux & Windows & Mac) - #2215,来自 oldosfan

感谢 @oldosfan 对 Emacs 的贡献,现在在 X11 下 emacs 29.0.50 支持系统输入法(我用的是fcitx5)显示也能显示预编辑文本。
只需要在 ~/.Xresource 中设置 Emacs.inputStyle: native 即可。

但是目前还有以下问题:

  1. 输入过程中,偶尔会出现卡顿,要等很长时间才可以自动恢复。

  2. 有时输入的字母会落到最前面。 比如下面输入的是:gegeguojiayou,最后的u跑前面去了。
    这种情况没法稳定重现,重新输入同样的内容不一定会发生。

  3. 不知道能否实现固定光标在预编辑的开头?

GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.31, cairo version 1.17.4) of 2022-01-09

这是因为 Emacs 暂时还不支持在预览文字中设定光标位置,过几天我会修好。

4 个赞

这个功能赞啊

1、2 已经修好了,麻烦测试 3 也因该好了,如果默认没用可以调整 `x-display-cursor-at-start-of-preedit-string’

1 个赞

更新到 emacs-git: 29.0.50.153464-1

GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.31, cairo version 1.17.4) of 2022-01-10

1 和 2 问题还存在,3 已经好用了 :+1:
不知道是不是我的版本不够新,我晚上再试试看。

之前就是因为Emacs没有办法预览所以才换成使用emacs-rime的,没想到现在也已经不是问题了。不过现在Emacs rime感觉也挺顺手的了,而且我还利用它写了一个五笔搜索的插件。

1 和 2 其他 GTK 程序也有吗?

在chromium 里面都是正常的,不知道是gtk吗

我以前也都是用 Emacs-rime,也挺好用。段时间在Mac 上切回用系统的拼音+sis,手感很好,而且可以和手机同步。于是,就把所有平台都换成系统输入法了。

chromium 不是 gtk

有什么推荐的程序我可以用来测试吗?晚上我再试试。 现在 Linux 机器不在手上。

建议测试 gedit(

1 个赞

Chromium 也是 gtk 的吧。

condy@Youmu ~ % pacman -Qi chromium
Name            : chromium
Version         : 97.0.4692.71-2
Description     : A web browser built for speed, simplicity, and security
Architecture    : x86_64
URL             : https://www.chromium.org/Home
Licenses        : BSD
Groups          : None
Provides        : None
Depends On      : gtk3  nss  alsa-lib  xdg-utils  libxss  libcups  libgcrypt  ttf-liberation  systemd  dbus  libpulse  pciutils
                  libva  desktop-file-utils  hicolor-icon-theme  fontconfig  libjpeg  icu  flac  snappy  libxml2  ffmpeg  libwebp
                  minizip  opus  harfbuzz  re2  libxslt  libpng  freetype2
Optional Deps   : pipewire: WebRTC desktop sharing under Wayland [installed]
                  kdialog: support for native dialogs in Plasma
                  org.freedesktop.secrets: password storage backend on GNOME / Xfce
                  kwallet: support for storing passwords in KWallet on Plasma
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 252.71 MiB
Packager        : Evangelos Foutras <foutrelis@archlinux.org>
Build Date      : Sun 09 Jan 2022 08:00:11 PM CST
Install Date    : Mon 10 Jan 2022 11:52:58 AM CST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

有个 GTK 依赖。

Chromium 只是用 GTK 来提供窗口装饰,不使用 GtkIMContext

@oldosfan 刚才在 gedit下测试了,一切正常,很流畅。

在刚更新的 Emacs-git 中还是存在上述的 1 和 2 的情况。

奇怪,你可以 report-emacs-bug 吗?

没给核心报过bug,我可以试试。需要我尝试触发问题,然后发 Email?

有其他用 Fcitx5 的朋友测试过吗? 如果只是我这边有这种情况的话,那就是设置问题了。

可以用 M-x report-emacs-bug,再把里面的内容粘贴到自己喜欢的 MUA 中发送。

已经发送了,标题:29.0.50; fcitx5 will freeze Emacs with pre-edited text enabled

再次感谢 @oldosfan 大佬对 Emacs 的贡献。

经过测试,目前 Fcitx5 输入法在最新版本的 Emacs 29.0.50 中可以流畅使用了,效果和其他软件中一样。

当前的最新 commit: