定制组合键序列,无需xim(例如,在Sublime Text 2中)

我有很多自定义的组合键序列。我知道我可以通过使用~/.XCompose文件并将输入法切换到xim来使它们生效。然而,当我使用xim时,Sublime Text 2不接受任何组合键序列。但是,当我使用默认的输入法时,它可以接受这些序列。我记得我一段时间前就报告了这个Sublime Text 2的bug。
使用默认的输入法,我将我的~/.XCompose文件的内容添加到/usr/share/X11/locale/en_US.UTF-8/Compose中,但这并没有改变任何东西。有没有办法让我的~/.XCompose中的组合键序列在不依赖于xim的情况下工作?
4个回答

我知道你在一年前提出了这个问题,但是以防对其他人有帮助,我来告诉你我是如何启用自定义的.XCompose添加的:
sudo apt-get install uim
export "GTK_IM_MODULE=uim"
(log out and in again)
uim是一种输入法,它尊重组合文件的添加,同时还能实现在xim中不可用的功能,例如使用“Ctrl+Shift+U”来输入十六进制Unicode字符ID。
如果OP仍然需要解决方案,这可能适用于他的情况,我不确定。

1终于!在与xim和ibus遇到了这么多问题之后,这终于解决了我的问题。你也可以通过使用export GTK_IM_MODULE=uim subl来仅为Sublime Text启用uim。 - Gui Ambros
理论上听起来很棒,但对我来说也不起作用,Ctrl+Shift+U仍然禁用。 :( - unknown_person_1000

@coteyr 所说的实际上是不正确的。Sublime Text 使用标准的GTK输入法API,但是它使用方式不正确。
我制作了一个修复Sublime Text的软件包。你可以在我的博客文章中找到关于这个错误和我的解决方法的所有细节,但是这里有一个安装的快速概述:
  1. 通过执行以下命令,将 sublime-imethod-fix PPA 添加到您的 APT 源中:

    sudo add-apt-repository ppa:whitequark/sublime-imethod-fix
    
  2. 安装与您的 Sublime Text 版本相对应的错误修复包:

    • 对于 ST2 中的 XCompose 支持:

      sudo apt-get install libsublime-text-2-xim-xcompose
      
    • 对于 ST3 中的 XCompose 支持:

      sudo apt-get install libsublime-text-3-xim-xcompose
      
  3. 重新启动 Sublime Text(如果它正在运行)。组合序列现在应该正常工作。

不支持Sublime 3064开发通道。ST3甚至无法启动。 - Gui Ambros
@GuiAmbros 目前先使用 ST3 稳定版。稍后我会再研究一下。 - whitequark
1我通过将输入法从xim改为uim来解决了这个问题。我在这里写了一篇关于这个经验的文章:https://wrgms.com/using-xcompose-with-chrome-and-sublime-text/ - Gui Ambros
对我来说,它运行得很好。 - opensas

这只是一个非常随机的猜测,但我认为这是因为Sublime Text使用了不同的小部件库,并且该库没有设置为支持xim输入。
如果你还没有尝试过,你可以设置持久配置,具体方法请参考这个链接
如果那样不起作用,你总是可以通过一些技巧来重新添加输入法支持。 这篇文章应该对此有所帮助。
这两种方法都相当技术性,都需要花费一些额外的努力来使其正常工作。

我尝试了你第二个链接中cjacker的解决方案,但是无法使其正常工作。如果有人在这方面有更多的运气,我将非常感激你能够概述一下你的步骤。 - Glutanimate

这是一个针对Sublime Text 2的解决方法。通过此软件包进行安装,可以通过Package Control或手动方式进行安装。
cd ~/.config/sublime-text-2/Packages

git clone https://github.com/xgenvn/InputHelper.git

重新启动Sublime后,您可以使用Ctrl + Shift + Z访问一个输入窗口,用于组合键序列。按下Enter将序列插入光标位置。