Ubuntu安装Sublime并解决中文输入问题

1添加源

sudo add-apt-repository ppa:webupd8team/sublime-text-2

2安装sublime

sudo apt-get update

sudo apt-get install sublime-text

3.解决中文输入问题

3.1保存下面的代码到文件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);
}

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

1、cd ~

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

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

sudo mv libsublime-imfix.so /opt/sublime_text_2/

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

将#!/bin/sh

/opt/sublime_text_2/sublime_text "[email protected]"

修改为

#!/bin/sh

LD_PRELOAD=/opt/sublime_text_2/libsublime-imfix.so exec /opt/sublime_text_2/sublime_text "[email protected]"

3.5重启电脑,此时可以在sublime text 2中输入中文了

时间: 2024-11-07 20:02:38

Ubuntu安装Sublime并解决中文输入问题的相关文章

完美解决Ubuntu下Sublime Text 2中文输入(Fcitx)

sudo apt-get install build-essential libgtk2.0-dev gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC sublime_text.sh #!/bin/bash sh -c "LD_PRELOAD=/home/eechen/apps/sublime_text_2/libsublime-imfix.so /home

《转载》ubuntu Sublime text 3 解决中文输入问题

其实,在这个文章之前,网上都有好多教程了.不知道是不是因为复制黏贴的传播太多,导致有些字符串的丢失,导致编译失败,so库文件无法载入,从而不能输入中文.折腾了许久之后,终于搞定了.记录下来,方便自己下次重装系统的时候用到. 按照这个教程装好ST之后,按下面的命令步骤来操作即可使用中文输入. 1.下载所需要的文件,并解压: wget  http://y4nwen.googlecode.com/files/sublime_text_chinese-input-method.tar.gz tar zx

Ubuntu 14.04 LTS+SublimeText3+中文输入

文本编辑器,我习惯用Sublime Text,因为很好用啊,至于那些大神们说的Vim, Emacs,我目前还用不上:Vim偶尔会用到,gedit也会常用到,emacs几乎没用过,也不会: 如何安装 Sublime Text 3 呢? 1.官网去下载amd64.deb包, 2.点击安装 3.安装 Package Control : 打开Sublime,按ctrl+`, 输入 import urllib.request,os; pf = 'Package Control.sublime-packag

Eclipse+PyDev解决中文输入和注释问题

Eclipse的设置 window->preferences->general->editors->text editors->spelling->encoding->UTF-8,编辑器的编码格式 window->preferences->workspace->text file encoding->UTF-8 打开eclipse安装目录->eclipse.ini,末行加上”-Dfile.encoding=UTF-8” 更改空白模块默

ubuntu安装mysql乱码解决

ubuntu安装mysql乱码解决 1.问题描述: 插入汉字: 乱码显示: 2.解决方法: 执行下面命令: 添加如下粉色区域内容: 即:character-set-server= utf8 保存退出. 重启mysql: 3.验证乱码是否解决: 重新建一个数据库: 进入数据库: 创建表: 插入包含汉字数据: 查询表内容: 汉字正常显示: 更改后,汉字正常显示.

【转】解决Ubuntu下Sublime Text 3无法输入中文

前言 sublime很好用,但是ubuntu下不能输入中文,这是一个很大的问题.不知道为什么开发着一直也不解决,好在还是有高手在,总能找到方法.网上方法很多,但是也很乱,现在我将自己的经验总结一下. 首先,我参考了好几篇文章,都是蛮不错的,先列出来: sublime-text-imfix:首先推荐这个方法,最简单,但是在我的系统上有些问题.可用这个的强烈推荐用这个 完美解决 Linux 下 Sublime Text 中文输入:讲的比较明白,也可用参考. Ubuntu下Sublime Text 3

解决Ubuntu下Sublime Text 3无法输入中文

前言 sublime非常好用,可是ubuntu下不能输入中文,这是一个非常大的问题.不知道为什么开发着一直也不解决,好在还是有高手在.总能找到方法. 网上方法非常多,可是也非常乱,如今我将自己的经验总结一下. 首先,我參考了好几篇文章.都是蛮不错的.先列出来: sublime-text-imfix:首先推荐这种方法.最简单.可是在我的系统上有些问题. 可用这个的强烈推荐用这个 完美解决 Linux 下 Sublime Text 中文输入:讲的比較明确.也可用參考. Ubuntu下Sublime

Ubuntu安装Sublime Text并输入中文

Sumblime Text3是一款传说中的神级代码编辑器,具有下面特点: 1.代码高亮,自己主动补全 2.各种插件扩展 3.外观简洁舒适 4.跨平台(Windows,Linux,OS X) 简而言之就是一款让人爱不释手的编辑器.事不宜迟,立即介绍下怎样在Ubuntu中安装它并使其能输入中文 測试环境:Ubuntu Kylin 14.04 步骤: 1.安装搜狗输入法 2.安装sublime text3 3.安装package control(非必须,但推荐安装) 4.改动sublime_imfix

Ubuntu菜鸟入门(十八)————解决Ubuntu下Sublime Text 3无法输入中文

一.下载我们需要的文件,打开终端,输入: git clone https://github.com/lyfeyaj/sublime-text-imfix.git 二.将subl移动到/usr/bin/,并且将sublime-imfix.so移动到/opt/sublime_text/(sublime的安装目录) cd ~/sublime-text-imfix sudo cp ./lib/libsublime-imfix.so /opt/sublime_text/ sudo cp ./src/sub