ubuntu16.04 安装sublime-text3 汉化并中文支持



ubuntu 16.04 LTS sublime -text3安装注册汉化并中文支持的步骤


安装sublime-text3

1.deb安装:官网下载最新版deb安装包:http://www.sublimetext.com/3 

2.命令行安装:

sudo add-apt-repository ppa:webupd8team/sublime-text-3 #添加sublime text 3的仓库
sudo apt-get update #更新软件库
sudo apt-get install sublime-text-installer #安装Sublime Text 3

3.安装后ctrl+alt+T打开终端,输入subl运行sublime


sublime注册

运行sublime发现左上角显示UNREGISTERED

要去掉的话先注册,步骤:

将sublime全屏,左上角找help-enter license

3114版

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

3104版

               —– 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 ——
选择一个注册码,记得不要留空格


sublime中文输入支持

1.选择一个目录,比如我的是 /home/sam/file/touchfile

2. 打开终端运行 sudo touch sublime-imfix.c 

3. 编辑文件 gedit sublime-imfix.c,将这段代码黏贴进去

/*
sublime-imfix.c
Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.
By Cjacker Huang <jianzhong.huang at i-soft.com.cn>
gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC
LD_PRELOAD=./libsublime-imfix.so sublime_text
*/
#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); 
}
2. 安装c/c++编译环境和gtk libgtk2.0-dev
sudo apt-get install build-essential libgtk2.0-dev
3. 在新建sublime-imfix.c的目录下,执行命令编译共享库

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

4. 执行完 输入ls,发现多了一个文件:libsublime-imfix.so,执行

mv  libsublime-imfix.so /opt/sublime_text

5. 再切换到application,编辑sublime-text.desktop 
cd /usr/share/applications/
gedit sublime_text.desktop

6. 更改Exec的值,我的在第7行
Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text"


7. 点击win键搜索sublime打开,看看是不是可以输入中文了。
8. 此时命令行输入subl ,仍然无法输入中文,因为bash 命令并没有载入so库,输入
cd /usr/bin
sudo chmod -R 777 subl
gedit subl



#!/bin/sh
exec /opt/sublime_text/sublime_text "$@"
修改为
#!/bin/sh
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so  /opt/sublime_text/sublime_text "$@"


9. 此时终端输入subl,也可以输入中文了




sublime汉化
1.https://github.com/Ihavee/st3-zh_CN/releases/latest 下载最新的 Source code (tar.gz)文件
2.运行 Sublime Text 3,点击 Preferences -- Browse Packages,会打开 Packages 目录
3.将 st3-zh_CN-0.3.tar.gz 移动到 Packages 下的 user 目录下之后提取


sublime安装html emmet快速开发插件
sublime 安装emet插件

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值