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 "$@"

爲 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 的安裝與中文配置執行完畢了。完成後的截圖如下:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章