欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu 16.04 LTS 的 Sublime Text 3 安装及中文配置

程序员文章站 2022-05-30 18:44:55
...

最近闲来无事,开始学习 Python,选择用 Sublime Text 3 作为开发的 IDE。然而发现安装完毕 Sublime Text 3 之后,不能在其中输入中文,查询了《Ubuntu 16.04下Sublime Text 3 的安装和中文配置》,感觉其中有些内容说明不明确。笔者趁着正在 pip 安装 Python 模块的时间,在该教程基础上进一步说明。

一. sublime text 3 在 Ubuntu 16.04 LTS 下的安装

1. 下载压缩包

笔者使用的是 Sublime Text 的 3 版本,可以直接从官网上下载。
官方下载地址:https://www.sublimetext.com/3

2. 解压

解压命令:

tar xvf sublime_text_3_build_3143_x64.tar.bz2

此时用 cd 命令进入解压的 Sublime Text 3 的文件夹,运行 ./sublime_text 即可打开 Sublime Text 3,但此时还不支持中文输入。
后面说明如何配置 Sublime Text 3 的中文输入法支持。

二. Sublime Text 3 中文输入法配置

1. Ubuntu 16.04 下安装搜狗输入法

笔者个人习惯使用 fcitx 的搜狗输入法。笔者以前也写过在 Ubuntu 上安装搜狗输入法的教程,地址如下:
《Ubuntu 14.04 LTS 安装配置搜狗拼音输入法》
《Ubuntu 14.04 LTS 搜狗拼音输入法不能使用的情况》

笔者在写这两篇博客时还在使用 Ubuntu 14.04 LTS,前几天重新装了 16.04,同样使用上面两篇博客的安装方法,亲测有效。

2. 生成支持中文输入法的 .so 文件

(1) 安装依赖库

首先安装一些依赖库,输入指令如下:

sudo apt-get install libgtk2.0-dev

(2) 新建代码文件

进入 ~ 目录,并新建文件 sublime_imfix.c,指令如下:

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

(3) 生成共享库 .so 文件

在 ~ 路径下用 gcc 指令生成共享库 libsublime-imfix.so,指令如下:

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

(4) 复制共享库文件到 Sublime Text 3 所在文件夹

根据自己的 Sublime Text 3 所在路径,将刚刚生成的 libsublime-imfix.so 复制过去。以笔者为例,指令如下:

sudo cp libsublime-imfix.so /home/grq/kit/sublime_text_3/

3. 配置共享库文件

(1) 修改 /usr/bin/subl

此时在 /usr/bin 路径中创造脚本文件,令运行脚本后打开 Sublime Text 3。这时候 /usr/bin 路径中应该没有 subl 文件(如果有该文件,则后续内容中将对应内容进行修改即可),新建文件的命令如下:

sudo gedit /usr/bin/subl

将下面的代码复制进 subl 中(其中第二行内容为 Sublime Text 3 所在位置,此处以笔者的环境为例):

#!/bin/sh
LD_PRELOAD=/home/grq/kit/sublime_text_3/libsublime-imfix.so exec /home/grq/kit/sublime_text_3/sublime_text "aaa@qq.com"

为 subl 提供执行权限,指令如下:

sudo chmod +x subl

此时输入指令:

subl

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

(2) 更改 .desktop 文件

为了使用鼠标右键打开文件时能够使用中文输入,还需要修改 Sublime Text 3 目录中文件 sublime_text.desktop 的内容。进入 Sublime Text 3 所在路径并修改文件,指令如下(以笔者的工作环境为例,具体需要根据实际情况进行改正):

sudo gedit ~/kit/sublime_text_3/sublime_text.desktop

[Desktop Entry] 中的字符串

Exec=/opt/sublime_text/sublime_text %F

修改为:

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

[Desktop Action Window] 中的字符串

Exec=/opt/sublime_text/sublime_text -n

修改为:

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

[Desktop Action Document] 中的字符串

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

到此处,已经将 Sublime Text 3 的安装与中文配置执行完毕了。完成后的截图如下:
Ubuntu 16.04 LTS 的 Sublime Text 3 安装及中文配置