[ubuntu入门手册]-19-解决Sublime编辑器无法输入中文

引言

SublimeText是一款跨平台的代码编辑器,功能十分强大,但其在Ubuntu系统中却无法调用中文输入法,这篇文章提供一种解决方案,使Ubuntu下的"Sublime Text 3"能够支持中文输入。

文章目录

0×1.安装SublimeText3

获取软件:

通过SublimeText官方网站下载安装包:SublimeText官方网站

目前的最新版是3114,如有更新并且激活Key失效,请留意本页更新。

					#安装最新版
					qing@qingsword.com:~$ sudo dpkg -i sublime-text_build-3114_amd64.deb

					#安装完成后可以在终端输入"subl"启动它,也可以在快速启动栏Ubuntu按钮中搜索"sublime"启动它
					

启动后,在软件顶部点击"Help">"Enter License",粘贴下面的激活序列号:

3103版序列号:

—– BEGIN LICENSE —–
Michael Barnes
Single User License
EA7E-821385
8A353C41 872A0D5C DF9B2950 AFF6F667
C458EA6D 8EA3C286 98D1D650 131A97AB
AA919AEC EF20E143 B361B1E7 4C8B7F04
B085E65E 2F5F5360 8489D422 FB8FC1AA
93F6323C FD7F7544 3F39C318 D95E6480
FCCC7561 8A4A1741 68FA4223 ADCEDE07
200C25BE DBBC4855 C4CFB774 C5EC138C
0FEC1CEF D9DCECEC D3A5DAD1 01316C36
—— END LICENSE ——

3114版序列号:

—– BEGIN LICENSE —–
Alexey Plutalov
Single User License
EA7E-860776
3DC19CC1 134CDF23 504DC871 2DE5CE55
585DC8A6 253BB0D9 637C87A2 D8D0BA85
AAE574AD BA7D6DA9 2B9773F2 324C5DEF
17830A4E FBCF9D1D 182406E9 F883EA87
E585BBA1 2538C270 E2E857C2 194283CA
7234FF9E D0392F93 1D16E021 F1914917
63909E12 203C0169 3F08FFC8 86D06EA8
73DDAEF0 AC559F30 A6A67947 B60104C6
—— END LICENSE ——

0×2.解决Ubuntu下SublimeText3无法输入中文

为了方便大家,我已经将以下要用到的全部源码打包到百度网盘中提供下载,源码包中包含"sublime-imfix.c"源文件,一个已经编译好的"libsublime-imfix.so",修改好的"subl"和"sublime_text.desktop"文件,大家可以根据下面的步骤将这些现成的文件复制到对应目录即可,下载地址:Sublime支持中文源码

1)请点击这里下载"sublime-imfix.c"源码文件;如果浏览器没有关联下载器,将会打开一个源码页面,请复制其中所有内容,保存为"sublime-imfix.c"文件

2)安装编译环境

						qing@qingsword.com:~$ sudo apt-get install build-essential libgtk2.0-dev
					

3)在sublime-imfix.c文件所在目录执行下面的命令,编译库文件

						qing@qingsword.com:~$ gcc -shared -o libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
					

4)将编译好的库文件复制到Sublime安装目录下

						qing@qingsword.com:~$ sudo cp libsublime-imfix.so /opt/sublime_text/
					

5)修改命令行启动文件subl和桌面启动文件sublime_text.desktop

						#修改subl命令行启动文件内容
						qing@qingsword.com:~$ sudo gedit /usr/bin/subl

						#用下面的内容替换原内容
						#!/bin/sh
						sublime_dir="/opt/sublime_text"
						LD_PRELOAD="$sublime_dir/libsublime-imfix.so" "$sublime_dir/sublime_text" "$@"

						#修改sublime_text.desktop桌面启动文件内容
						qing@qingsword.com:~$ sudo gedit /usr/share/applications/sublime_text.desktop

						#用下面的内容替换原内容
						[Desktop Entry]
						Version=1.0
						Type=Application
						Name=Sublime Text
						GenericName=Text Editor
						Comment=Sophisticated text editor for code, markup and prose
						Exec=/usr/bin/subl %F
						Terminal=false
						MimeType=text/plain;
						Icon=sublime-text
						Categories=TextEditor;Development;
						StartupNotify=true
						Actions=Window;Document;

						[Desktop Action Window]
						Name=New Window
						Exec=/opt/sublime_text/sublime_text -n
						OnlyShowIn=Unity;

						[Desktop Action Document]
						Name=New File
						Exec=/opt/sublime_text/sublime_text --command new_file
						OnlyShowIn=Unity;
					

至此,无论是命令行输入subl启动,还是通过ubuntu按钮搜索到sublime桌面图标启动,都能正常使用中文输入法了,唯一的bug就是,中文输入法只能定格在sublime的下方无法跟随光标,暂无解决方法,不过并不影响使用。

Ps:在ubuntu16.04中sublime的中文和英文输入看起来很奇怪,在一行内,中文总是低于英文显示,这是sublime默认字体导致的,解决方法是,在菜单中打开sublime的"Preferences">"Settings-User",在中括号中添加一行"font_face": "文泉驿微米黑",下面是我的配置:

					{
						"detect_slow_plugins": false,
						"font_size": 16,
						"font_face": "文泉驿微米黑",
						"ignored_packages":
						[
							"Vintage"
						]
					}
					

如果打开"Settings-User"没有内容,请自己添加一个中括号,并在其中输入font_face这一行,注意末尾是有逗号的,设置完成后字体马上就变得正常了。