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

先在ubuntu中安装中文输入法

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


ubuntu 中sublime不支持中文输入法的问题_第1张图片
image.png
$sudo dpkg  -i sogoupinyin_2.2.0.0108_amd64.deb  
$sudo apt-get install -f

然后进行设置:


ubuntu 中sublime不支持中文输入法的问题_第2张图片
image.png

ubuntu 中sublime不支持中文输入法的问题_第3张图片
image.png

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

最后添加汉语


ubuntu 中sublime不支持中文输入法的问题_第4张图片
image.png

设置完以后重启系统

ubuntu 中sublime不支持中文输入法的问题_第5张图片
image
ubuntu 中sublime不支持中文输入法的问题_第6张图片
image

ubuntu 中sublime不支持中文输入法的问题_第7张图片
image

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

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

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


ubuntu 中sublime不支持中文输入法的问题_第8张图片
image
ubuntu 中sublime不支持中文输入法的问题_第9张图片
image

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

首先安装依赖库:

sudo apt-get install libgtk2.0-dev

在新建文件 sublime_imfix.c

$ gedit sublime_imfix.c

在 sublime_imfix.c 中输入如下代码:

#include 
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"

即可全部完成

你可能感兴趣的:(ubuntu 中sublime不支持中文输入法的问题)