Ubuntu 16.04 LTS 的 Sublime Text 3 安装及中文配置
最近闲来无事,开始学习 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 的安装与中文配置执行完毕了。完成后的截图如下: