云梦
www.htcp.net

Sublime Text for Linux 解决不支持中文搜狗输入法问题

案例

万恶的 Sublime Linux 版本竟然不支持 GTK。于是我们只能添加 hooks 让它实现支持搜狗拼音输入法。

适用 Linux 发行版本

Ubuntu 14.04+

解决过程

1. 安装依赖:

sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev

2. 复制下面的代码将其粘贴到终端中并回车:

cat >> ~/sublime_imfix.c <<EOF
#include <gtk/gtkimcontext.h>
void gtk_im_context_set_client_window (GtkIMContext *context,
         GdkWindow    *window)
{
 GtkIMContextClass *klass;
 g_return_if_fail (GTK_IS_IM_CONTEXT (context));
 klass = GTK_IM_CONTEXT_GET_CLASS (context);
 if (klass->set_client_window)
   klass->set_client_window (context, window);
 g_object_set_data(G_OBJECT(context),"window",window);
 if(!GDK_IS_WINDOW (window))
   return;
 int width = gdk_window_get_width(window);
 int height = gdk_window_get_height(window);
 if(width != 0 && height !=0)
   gtk_im_context_focus_in(context);
}
EOF

3. 编译:

cd ~
gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC

4. 移动至 Sublime 安装目录:

sudo mv libsublime-imfix.so /opt/sublime_text/

5. 修改 /usr/bin/subl:

vim /usr/bin/subl

将“exec /opt/sublime_text/sublime_text "$@"”修改为:

LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"

6. 修改鼠标右键打开调用:

sudo vim /usr/share/applications/sublime_text.desktop

在 [Desktop Entry] 中:

将“Exec=/opt/sublime_text/sublime_text %F”修改为:

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text %F"

在 [Desktop Action Window] 中:

将“Exec=/opt/sublime_text/sublime_text -n”修改为:

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text -n"

在 [Desktop Action Document] 中:

将“Exec=/opt/sublime_text/sublime_text --command new_file”修改为:

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text --command new_file"

注意

修改时请一定要加英文半角双引号 "",否则会导致不能打开文件名带有空格的文件。
此处仅修改了 /usr/share/applications/sublime-text.desktop,但可以正常使用了。位于 /opt/sublime_text/ 目录下的 sublime-text.desktop 可不必修改。

赞(0) 打赏
文章通过 CC 4.0 BY-NC-ND 协议发布,转载请注明出处:云梦 » Sublime Text for Linux 解决不支持中文搜狗输入法问题

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    太感谢了!可以说是网上最简洁明了的教程了!

    萝卜姓胡11个月前 (11-20)回复

如果您觉得文章有用,可以支持一下本站

支付宝扫一扫打赏

QQ 扫一扫打赏