让它输入中文的原理就是给sublime text3给打上个补丁libsublime-imfix.so,这个补丁可以直接git回来,或者下载补丁的源码编译安装。

Ubuntu可以直接按照下面的教程

sublime text3 输入中文的解决方法

 

1. 下载我们需要的文件,打开终端 ,输入:

git clone https://github.com/lyfeyaj/sublime-text-imfix.git

2. 将下载的文件解压之后,移到当前目录(~目录下边),然后执行下边命令:

cd ~/sublime-text-imfix (前提:解压后的sublime-text-imfix必须在~目录下) 
sudo cp ./lib/libsublime-imfix.so /opt/sublime_text/
sudo cp ./src/subl /usr/bin/

3. 最后把sublime都关掉,然后在终端输入subl,就可以在sublime使用中文了

本人我折腾的是从源码编译安装补丁的

新建文件sub-fcitx.c,建议放在Sublime Text的所在目录下,将下面的代码复制进去

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
sublime-imfix.c
Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.
By Cjacker Huang gcc -shared -o libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
LD_PRELOAD=./libsublime-imfix.so subl
*/
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
typedef GdkSegment GdkRegionBox; struct _GdkRegion
{
long size;
long numRects;
GdkRegionBox *rects;
GdkRegionBox extents;
}; GtkIMContext *local_context; void
gdk_region_get_clipbox (const GdkRegion *region,
GdkRectangle *rectangle)
{
g_return_if_fail (region != NULL);
g_return_if_fail (rectangle != NULL); rectangle->x = region->extents.x1;
rectangle->y = region->extents.y1;
rectangle->width = region->extents.x2 - region->extents.x1;
rectangle->height = region->extents.y2 - region->extents.y1;
GdkRectangle rect;
rect.x = rectangle->x;
rect.y = rectangle->y;
rect.width = 0;
rect.height = rectangle->height;
//The caret width is 2;
//Maybe sometimes we will make a mistake, but for most of the time, it should be the caret.
if(rectangle->width == 2 && GTK_IS_IM_CONTEXT(local_context)) {
gtk_im_context_set_cursor_location(local_context, rectangle);
}
} //this is needed, for example, if you input something in file dialog and return back the edit area
//context will lost, so here we set it again. static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context)
{
XEvent *xev = (XEvent *)xevent;
if(xev->type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) {
GdkWindow * win = g_object_get_data(G_OBJECT(im_context),"window");
if(GDK_IS_WINDOW(win))
gtk_im_context_set_client_window(im_context, win);
}
return GDK_FILTER_CONTINUE;
} 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); if(!GDK_IS_WINDOW (window))
return;
g_object_set_data(G_OBJECT(context),"window",window);
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);
local_context = context;
}
gdk_window_add_filter (window, event_filter, context);
}

安装编译环境(archlinux 不用安装,反正我就不用直接执行编译代码行了)

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

切换到sub-fcitx.c,所在目录,编译生成so文件

1
gcc -shared -o libsublime-imfix.so sub-fcitx.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC

正常的话,目录下会多一个libsublime-imfix.so文件
切换到Sublime Text目录下,通过LD_PRELOAD=./libsublime-imfix.so ./sublime_text命令启动Sublime Text之后,就会发现可以输入中文了,但是这样太麻烦了,通过添加自己的启动脚本可以简化这一过程。

在这里不在安装原贴教程,原贴这里部分的操作是自己直接写一个脚本来打开sublime text的

脚本如下(如果想这样做的话,你把你的安装路径改进下面的脚本里边)

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

SUB3_HOME=$HOME/Software/sublime_text_3
CMD="LD_PRELOAD=./libsublime-imfix.so ./sublime_text"
FILENAME=$1
if [ -n "$1" ]
then
CMD=${CMD}" "`pwd`/$FILENAME
fi
cd "$SUB3_HOME"
eval $CMD

我的(archlinux环境)做法是直接用一个脚本去替换原来在/usr/bin/subl3这个链接文件,这个链接文件是链接到我的安装路径/opt/sublime_text_3/sublime_text文件的,我们安装sublime_text_3的桌面启动文件就是打开这个链接文件的,所以我们直接写一个脚本来替换这个链接文件就可以了,这样就可以在原来的打开图标打开这个脚本(记得你脚本的文件名要和原来链接文件的名字一样哦,archlinux上是subl3),从而输入中文了

脚本如下    (路径自己改一下)

##########################分割符

#!/bin/sh

export LD_PRELOAD=/opt/sublime_text_3/libsublime-imfix.so

exec /opt/sublime_text_3/sublime_text "$@"

##########################分割符

现在你可以把所有sublime text关闭从新打开了,或者直接运行(在命令行敲上subl3)写好的脚本subl3来启动

 

一下是注册内容

Sublime Text3注册码(可用)

作为强大而小巧,性感且快捷的SublimeText,怎么能够允许不时弹个框提醒你购买,并且顶部有未注册这样破坏美感的存在呢?OK,点开Help,填入注册码即可消除此问题。

Sublime text 3 3103 注册码 ! (Update:2016-03-08)

—– 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 ——

—– BEGIN LICENSE —– 
Nicolas Hennion 
Single User License 
EA7E-866075 
8A01AA83 1D668D24 4484AEBC 3B04512C 
827B0DE5 69E9B07A A39ACCC0 F95F5410 
729D5639 4C37CECB B2522FB3 8D37FDC1 
72899363 BBA441AC A5F47F08 6CD3B3FE 
CEFB3783 B2E1BA96 71AAF7B4 AFB61B1D 
0CC513E7 52FF2333 9F726D2C CDE53B4A 
810C0D4F E1F419A3 CDA0832B 8440565A 
35BF00F6 4CA9F869 ED10E245 469C233E 
—— END LICENSE ——

—– BEGIN LICENSE —– 
Anthony Sansone 
Single User License 
EA7E-878563 
28B9A648 42B99D8A F2E3E9E0 16DE076E 
E218B3DC F3606379 C33C1526 E8B58964 
B2CB3F63 BDF901BE D31424D2 082891B5 
F7058694 55FA46D8 EFC11878 0868F093 
B17CAFE7 63A78881 86B78E38 0F146238 
BAE22DBB D4EC71A1 0EC2E701 C7F9C648 
5CF29CA3 1CB14285 19A46991 E9A98676 
14FD4777 2D8A0AB6 A444EE0D CA009B54 
—— END LICENSE ——

—– 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 —— 
这份美好来源于这里 Sublime text 3 3103 注册码

 

sublime text3 输入中文的解决方法及注册的更多相关文章

  1. sublime text3 输入中文的解决方法

    1. 下载我们需要的文件,打开终端 ,输入: git clone https://github.com/lyfeyaj/sublime-text-imfix.git 2. 将下载的文件解压之后,移到当 ...

  2. ubuntu14.04 LTS 搜狗输入法安装和不能输入中文的解决方法

    搜狗输入法安装 1.首先通过Ubuntu软件中心,需要安装:fcitx https://pinyin.sogou.com/linux/help.php 2.然后再安装搜狗输入法包 https://pi ...

  3. Linux下sublime 无法输入中文的解决

    个人认为linux下的编辑器,对于小白来说,最好用的就是sublime了,但是,安装之后敲代码无法输入中文 ,很尴尬. 百度后,发现了解决方法. 项目链接:https://github.com/lyf ...

  4. sublime text3输入中文的问题.

    1.新建sublime_imfix.c文件 里面输入: /* * sublime-imfix.c * Use LD_PRELOAD to interpose some function to fix ...

  5. sublime Text3插件无法安装解决方法(提示There are no packages available installation)

    第一步 在sublime Text3界面按"ctrl+."出现一个输入框界面 第二步 在输入框输入: import urllib.request,os,hashlib; h = ' ...

  6. Sublime Text 3中文乱码解决方法以及安装包管理器方法

    一般出现乱码是因为文本采用了GBK编码格式,Sublime Text默认不支持GBK编码. 安装包管理器 简单安装 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令 ...

  7. Sublime Text3中Autoprefixer失效解决方法

    进入CSS文件,默认配置在按下快捷键(Ctrl+Shift+P)后输入Autoprefix,你会发觉它什么事也没干,然后--这什么鬼?抓狂ing-- 原来是因为这玩意还要配置下,以下为配置方法: Pr ...

  8. windows下mysql客户端输入中文显示??解决方法

    >>>>>>>>>>>>>>>>>>>> 1.检查并修改mysql的my.ini ...

  9. Ubuntu14.04安装wineqq国际版出现无法输入中文的解决方法

    执行命令:sudo vim /usr/bin/wine-qqintl 将"export LANG=zh_CN.utf8"改为"export LANG=en_US.utf8 ...

随机推荐

  1. 无法建立SSL连接

    在使用wget工具的过程中,当URL使用HTTPS协议时,经常出现如下错误:“无法建立SSL连接”. 这是因为wget在使用HTTPS协议时,默认会去验证网站的证书,而这个证书验证经常会失败.加上&q ...

  2. 讨论贴:在sp_executesql 中生成的临时表的可见性

    首先创建数据表 IF object_id('TestTable') IS NOT NULL DROP TABLE TestTable GO ,),Info )) GO INSERT TestTable ...

  3. php wampserver 80 端口无法开启的解决方法

    下载Microsoft Visual C++ 2005 Redistributable Package x86 和 x64(vc_redist.x86.exe/vc_redist.x64.exe) 安 ...

  4. 5X + 2Y +Z = 50 的所有非负整数解

    这种题的解题方法都差不多,不停的循环,不过如果做一下细分,效率应该可以提升很多,下面把最常规效率也最低的代码贴上,有时间再优化 #include <iostream> using name ...

  5. Chrome渲染Transition时页面闪动Bug

    前段时间,有同事和会员反馈使用Chrome访问淘宝首页会出现画面闪动的现象,但是我在Mac和Win下面的Chrome都无法重现这个问题,后来重装了一遍Win7下的Chrome Beta版本,终于重现了 ...

  6. javascript获取iframe框架中页面document对象,获取子页面里面的内容,iframe获取父页面的元素,

    javascript获取iframe框架中,加载的页面document对象 因为浏览器安全限制,对跨域访问的页面,其document对象无法读取.设置属性 function getDocument(i ...

  7. Unity Shader——Writing Surface Shaders(3)——Surface Shader Lighting Examples

    Surface Shader 光照例子 这里有一些自定义光照模型和Surface Shaders的例子.通常的Surface Shader例子在这里. 由于延迟光照在某些自定义的逐材质光照模型中表现得 ...

  8. HackerRank "Kitty and Katty"

    It's more of a brain-teaser than a Game Theory problem.. #!/bin/python3 T = int(input().strip()) for ...

  9. Spring MVC中使用 Swagger2 构建Restful API

    1.Spring MVC配置文件中的配置 [java] view plain copy <!-- 设置使用注解的类所在的jar包,只加载controller类 --> <contex ...

  10. Java Socket网络编程的经典例子(转)

    事实上网络编程简单的理解就是两台计算机相互通讯数据而已,对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了,Java SDK提供一些相对简单的Api来完成这些工作.Socket ...