你好,游客 登录 注册 搜索
背景:
阅读新闻

Debain下解决Sublime Text无法输入中文

[日期:2016-12-16] 来源:cnblogs.com/chongluo  作者:taurus [字体: ]

Sublime Text安装的方法在此不做过多介绍,网上有很多中教程的方式,本文描述在已经安装Sublime Text的前提下如何输入中文。

1.保存下面的代码到文件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);
    }

2.编译成共享文件库文件(命令:gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC)

如果出现以下问题:

linuxidc@linuxidc:~/Downloads$ sudo gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config –libs –cflags gtk +-2.0` -fPIC
sublime_imfix.c:1:30: fatal error: gtk/gtkimcontext.h: 没有那个文件或目录
 #include <gtk/gtkimcontext.h>
                              ^
compilation terminated.

则输入以下命令后再编译

sudo apt-get install libgtk2.0-dev

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

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

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

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

4.修改文件/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 将可以使用中文输入.

5.为了使用鼠标右键打开文件时能够使用中文输入,还需要修改文件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 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"

更多Sublime Text相关资讯阅读读

开发者最常用的 8 款 Sublime Text 3 插件  http://www.linuxidc.com/Linux/2016-02/128719.htm

Ubuntu 安装代码编辑器 Sublime Text 3 (Build 3083)  http://www.linuxidc.com/Linux/2015-03/115534.htm

动图展示16个Sublime Text快捷键用法  http://www.linuxidc.com/Linux/2014-12/110930.htm

Ubuntu 13.04安装Sublime Text 2 http://www.linuxidc.com/Linux/2013-05/84228.htm

编码神器——Sublime Text 包管理工具及扩展大全 http://www.linuxidc.com/Linux/2013-10/91701.htm

如何开发 Sublime Text 2 的插件 http://www.linuxidc.com/Linux/2013-09/90046.htm

文本编辑器Sublime Text 使用体验 http://www.linuxidc.com/Linux/2013-08/89326.htm

Sublime Text 的详细介绍请点这里
Sublime Text 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138434.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款