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. 下載壓縮包
2. 解壓
解壓命令:
tar xvf sublime_text_3_build_3143_x64.tar.bz 2
此時用 cd 命令進入解壓的 Sublime Text 3 的資料夾,執行 ./sublime_text 即可開啟 Sublime Text 3,但此時還不支援中文輸入。
後面說明如何配置 Sublime Text 3 的中文輸入法支援。
二. Sublime Text 3 中文輸入法配置
1. Ubuntu 16.04 下安裝搜狗輸入法
筆者在寫這兩篇部落格時還在使用 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 "[email protected]"
為 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 的安裝與中文配置執行完畢了。完成後的截圖如下: