ubuntu 中sublime不支持中文输入法的问题

先在ubuntu中安装中文输入法

选择搜狗输入法,下载linux版本,然后进行安装


image.png
$sudo dpkg  -i sogoupinyin_2.2.0.0108_amd64.deb  
$sudo apt-get install -f

然后进行设置:


image.png

image.png

如果没有汉语选项,可以在Install/Remove Language中添加

最后添加汉语


image.png

设置完以后重启系统

image
image

image

此时便可以使用中文输入法了,接下来在sublime里设置:

下载sublime :https://download.sublimetext.com/sublime_text_3_build_3176_x64.tar.bz2

解压后进入目录,打开终端,输入 ./sublime_text


image
image

接下来设置中文输入的问题:

首先安装依赖库:

sudo apt-get install libgtk2.0-dev

在新建文件 sublime_imfix.c

$ gedit sublime_imfix.c

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

然后用用 gcc 指令生成共享库 libsublime-imfix.so

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

最后配置共享库文件:

在 usr/bin/下新建文件subl

sudo gedit /usr/bin/subl

将下面代码写入subl文件中:

#!/bin/sh

LD_PRELOAD=/home/esi/Desktop/sublime_text_3/libsublime-imfix.so exec /home/esi/Desktop/sublime_text_3/sublime_text "$@"
image.png

为subl提供执行权限:

sudo chmod +x /usr/bin/subl

运行subl:

/usr/bin/subl

命令执行后,Sublime Text 3 会弹出运行,且可以支持中文输入。




如果使用鼠标右键打开文件时能够使用中文输入,还需要修改 Sublime Text 3 目录中文件 sublime_text.desktop 的内容。进入 Sublime Text 3 所在路径并修改文件,指令如下:

sudo gedit /home/esi/Desktop/sublime_text_3/sublime_text.desktop

将 [Desktop Entry] 中的字符串

Exec=/opt/sublime_text/sublime_text %F

修改为:

Exec=bash -c "LD_PRELOAD=/home/esi/Desktop/sublime_text_3/libsublime-imfix.so exec /home/esi/Desktop/sublime_text_3/sublime_text %F"

将 [Desktop Action Window] 中的字符串:

Exec=/opt/sublime_text/sublime_text -n

修改为:

Exec=bash -c "LD_PRELOAD=/home/esi/Desktop/sublime_text_3/libsublime-imfix.so exec /home/esi/Desktop/sublime_text_3/sublime_text -n"

将 [Desktop Action Document] 中的字符串

Exec=/opt/sublime_text/sublime_text --command new_file

修改为:

Exec=bash -c "LD_PRELOAD=/home/esi/Desktop/sublime_text_3/libsublime-imfix.so exec /home/esi/Desktop/sublime_text_3/sublime_text --command new_file"

即可全部完成

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容