ubuntu下sublime关于中文的问题
2014-09-09 11:01
267 查看
关于Pyhton的编码工具我选来选出还是觉得Sublime Text这款工具简单好用,Vim配置太过复杂了,我折腾了一天就放弃了,SublimeText的中文输入有一点问题,所以要写一个C的将文字传送给Sublime Text~~(貌似是这样,我也是个菜鸟,这个C文件的作用我也不是太懂,我说错了的话看到这篇文章的大大给我解释一下吧- -),下面具体说下安装方式把。
我是直接在Sublime Text的官网上下的压缩文件,解压后文件夹内的SublimeText2程序是可以直接运行的,但是这个时候是无法输入中文的。
首先因为要用编译C文件,所以我们要下载相应的C工具包,在shell里输入下面的命令即可:
然后将下面这段代码保存成sublime-imfix.c文件
然后用cd命令进入你存放C文件的地方,运行下面这条命令编译文件(这行命令要一次性运行)
运行后如果没有大的问题你会发现目录下出现了一个.so文件,把这个文件用mv命令移动到SublimeText的目录下面,然后用shell进入SublimeText目录后运行下面这个脚本就可以打开SublimeText输入中文了。(我的SublimeText放在Home目录下的APP文件夹下面,这里你们要改成你们自己的路径)
当然,你也可以把SublimeText的desktop文件的Exce路径改成这个脚本文件的路径,然后就可以通过启动器启动软件了。
我是直接在Sublime Text的官网上下的压缩文件,解压后文件夹内的SublimeText2程序是可以直接运行的,但是这个时候是无法输入中文的。
首先因为要用编译C文件,所以我们要下载相应的C工具包,在shell里输入下面的命令即可:
<!-- lang: cpp --> sudo apt-get install build-essential sudo apt-get install libgtk2.0-dev
然后将下面这段代码保存成sublime-imfix.c文件
<!-- lang: cpp --> #include <gtk/gtk.h>#include <gdk/gdkx.h> typedef GdkSegment GdkRegionBox; struct _GdkRegion{ long size; long numRects; GdkRegionBox *rects; GdkRegionBox extents; }; GtkIMContext *local_context; voidgdk_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; if(rectangle->width == 2 && GTK_IS_IM_CONTEXT(local_context)) { gtk_im_context_set_cursor_location(local_context, rectangle); } } 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); }
然后用cd命令进入你存放C文件的地方,运行下面这条命令编译文件(这行命令要一次性运行)
<!-- lang: cpp --> gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
运行后如果没有大的问题你会发现目录下出现了一个.so文件,把这个文件用mv命令移动到SublimeText的目录下面,然后用shell进入SublimeText目录后运行下面这个脚本就可以打开SublimeText输入中文了。(我的SublimeText放在Home目录下的APP文件夹下面,这里你们要改成你们自己的路径)
<!-- lang: cpp --> SUBLIME_HOME="$HOME/APP/SublimeText2" LD_LIB="$SUBLIME_HOME/libsublime-imfix.so" sh -c "LD_PRELOAD=$LD_LIB $SUBLIME_HOME/sublime_text $@"
当然,你也可以把SublimeText的desktop文件的Exce路径改成这个脚本文件的路径,然后就可以通过启动器启动软件了。
相关文章推荐
- ubuntu 14.04 安装sublime以及解决中文输入问题
- 解决ubuntu下用sublime-text2不能输入中文的问题 fcitx
- 关于Ubuntu16.04中WPS不能输入中文的问题
- ubuntu系統解决sublime无法输入中文的问题
- 三步解决Ubuntu下Sublime无法输入中文的问题
- 关于ubuntu10.04触摸板不能禁用和gedit文本编辑器中文乱码问题的一个解决方案
- 关于sublime中文问题
- ubuntu16下安装sublime-text-3,同时解决不能输入中文的问题。
- ubuntu sublime中文输入问题解决办法
- ubuntu sublime无法输入中文问题
- 关于Ubuntu14.04 中文字体乱码问题
- 关于“Ubuntu所有文件都出现在桌面“或者“UBUNTU根目录中文文件夹修改为英文名称“等问题的解决方案
- 关于ubuntu下sublime text 3 的安装和中文配置问题
- 完美解决ubuntu下sublime中文输入问题
- 关于ubuntu下 gedit 编辑器中文打开乱码的问题
- Ubuntu安装Sublime并解决中文输入问题
- ubuntu下sublime中文无法输入的问题
- 解决ubuntu下sublime 3无法输入中文问题
- ubuntu下sublime3用搜狗无法输入中文问题
- 关于windows 下sublime编译运行C中文不显示问题