Ubuntu/Debian安装sublime text 3 编辑器并配置中文输入

sublime text 3是一款非常好用的编辑器,在ubuntu下可以作为pythonIDE使用,出于这个目的,我在ubuntu下安装了sublime test3(后面简称安装sublime3)编辑器,安装方法同样适用于debiandeepin2014。下面将分享整个安装配置过程

安装sublime3

1
2
3
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer
  • key
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sublime Text Build 3065 License key
复制如下任意一个正版注册码即可(收集于互联网,如失效请自己查找)
----- BEGIN LICENSE -----
K-20
Single User License
EA7E-940129
3A099EC1 C0B5C7C5 33EBF0CF BE82FE3B
EAC2164A 4F8EC954 4E87F1E5 7E4E85D6
C5605DE6 DAB003B4 D60CA4D0 77CB1533
3C47F579 FB3E8476 EB3AA9A7 68C43CD9
8C60B563 80FE367D 8CAD14B3 54FB7A9F
4123FFC4 D63312BA 141AF702 F6BBA254
B094B9C0 FAA4B04C 06CC9AFC FD412671
82E3AEE0 0F0FAAA7 8FA773C9 383A9E18
------ END LICENSE ------
----- BEGIN LICENSE -----
J2TeaM
2 User License
EA7E-940282
45CB0D8F 09100037 7D1056EB A1DDC1A2
39C102C5 DF8D0BF0 FC3B1A94 4F2892B4
0AEE61BA 65758D3B 2EED551F A3E3478C
C1C0E04E CA4E4541 1FC1A2C1 3F5FB6DB
CFDA1551 51B05B5D 2D3C8CFE FA8B4285
051750E3 22D1422A 7AE3A8A1 3B4188AC
346372DA 37AA8ABA 6EB30E41 781BC81F
B5CA66E3 A09DBD3A 3FE85BBD 69893DBD
------ END LICENSE ------

配置sublime3支持中文输入

使用上述步骤安装好sublime3后发现编辑框不能使用中文输入,瞬间感觉好坑。马上谷歌了下,发现好多网友都遇到了这个问题,还好有解决方案,这里记录下来,希望能帮到遇到同样问题的人。步骤如下;

安装依赖:

1
2
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev

vim ~/sublime_imfix.c加入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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);
}

将上一步的代码编译成共享库libsublime-imfix.so,命令

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

然后将libsublime-imfix.so拷贝到sublime_text所在文件夹

1
sudo mv libsublime-imfix.so /opt/sublime_text/

修改文件/usr/bin/subl的内容

sudo gedit /usr/bin/subl

1
2
#!/bin/sh
exec /opt/sublime_text/sublime_text "$@"

修改为

1
2
#!/bin/sh
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"

此时,在命令中执行 subl 将可以使用搜狗for linux的中文输入

为了使用鼠标右键打开文件时能够使用中文输入,还需要修改文件sublime_text.desktop的内容。

命令

1
sudo gedit /usr/share/applications/sublime-text.desktop

1 将[Desktop Entry]中的字符串

Exec=/opt/sublime_text/sublime_text %F

修改为

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text %F"

2 将[Desktop Action Window]中的字符串

Exec=/opt/sublime_text/sublime_text -n

修改为

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text -n"

3 将[Desktop Action Document]中的字符串

Exec=/opt/sublime_text/sublime_text --command new_file

修改为

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text --command new_file"

注意:

修改时请注意双引号"",否则会导致不能打开带有空格文件名的文件。

此处仅修改了/usr/share/applications/sublime-text.desktop,就可以正常使用了。

opt/sublime_text/目录下的sublime-text.desktop可以修改,也可不修改。

经过以上步骤我们能在Sublime中输入中文了。