最近閒來無事,開始學習 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 "$@"
爲 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 的安裝與中文配置執行完畢了。完成後的截圖如下: