Ubuntu下安装的SublimeText无法输入中文解决方案笔记

原创 2016年08月31日 12:20:06

保存下面的代码到文件sublime_imfix.c(位于~目录)

#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);
}

将上一步的代码编译成共享库libsublime-imfix.so,命令

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

然后将libsublime-imfix.so拷贝到sublime_text所在文件夹

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

修改文件/usr/bin/subl的内容

sudo gedit /usr/bin/subl

#!/bin/sh
exec /opt/sublime_text/sublime_text "$@"
修改为

#!/bin/sh
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"
此时,在命令中执行 subl 将可以使用搜狗for linux的中文输入


为了使用鼠标右键打开文件时能够使用中文输入,还需要修改文件sublime_text.desktop的内容。

命令

sudo gedit /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可以修改,也可不修改。











版权声明:本文为博主原创文章,未经博主允许不得转载。

SublimeText3汉化及中文乱码解决方案整理

整理参考:http://www.xinghaixu.com/archives/706 【1】汉化: SublimeText3中文语言包下载地址 http://img.xiumu.or...
  • sakyaer
  • sakyaer
  • 2014年04月14日 17:22
  • 1652

sublime Text3 ubuntu下无法输入中文解决方案

解决思路:输入法采用fcitx框架的搜狗输入法. 保存下面的代码为sublime_imfix.c /* sublime-imfix.c Use LD_PRELOAD to interpose som...
  • xby1993
  • xby1993
  • 2014年04月19日 19:13
  • 855

ubuntu14.10安装搜狗输入法 中文输出错乱解决方案

因为我要敲很多代码 还要输入汉字上网查资料,不是我浪,我真的需要好的输入法 ubuntu自带的中文输入真的很影响速度和心情,为了个输入法我重装了4次系统,因为查到的资料都要卸载,ibus,我卸了之后...

Ubuntu下Rstudio中文输入问题的解决方案

Ubuntu下RStudio中文输入问题的解决方案Linux(私以为)是一个对于科学,学术,码农类工作者更为友好的环境。但不容忽视的是哪怕是Ubuntu版本下,个别环境下的中文输入依旧得不到良好的官方...

Ubuntu Matlab 2010 安装,中文乱码与桌面启动器解决方案

经验:不要安装在/usr/local中,最好安装在home目录下。(因为空间大小的问题) 卸载的时候直接把安装目录 rm -rf 删掉就可以。 http://www.cnblo...
  • PfanAya
  • PfanAya
  • 2011年10月16日 11:50
  • 1206

ubuntu 16.04下搜狗输入法不能输入中文解决(linux下常见软件崩溃问题解决方案)

之前一段时间正常使用的搜狗输入法突然无法输出中文(具体现象是,可以呼出搜狗输入法界面,但是候选词列表无显示),解决之后记录下来,希望能为同样遇到这个问题的人提供参考 困扰了我好几天......还好看...

Linux下SublimeText2中文无法输入问题解决

复制sublime-imfix.c:#include #include typedef GdkSegment GdkRegionBox;struct _GdkRegion { long siz...

在Ubuntu 14.04中使SublimeText 3支持中文输入法

在Ubuntu 14.04中安装了SublimeText 3之后发现既然不支持输入中文,于是在网上搜罗一下,发现很多人遇到了同样的问题,但是解决办法大该就只有一个。下面根据自身的安装及解决办法总结如下...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu下安装的SublimeText无法输入中文解决方案笔记
举报原因:
原因补充:

(最多只允许输入30个字)