linux中写脚本不能写中文,Linux系统中Sublime Text无法输入中文怎么办?

Sublime Text是一个代码编辑器,拥有强大的功能,但Sublime Text 在Linux下运行的时候存在无法输入中文的问题,遇到该问题该如何解决呢?下面小编就给大家介绍下Linux下Sublime Text 无法输入中文的解决方法。

618e8dcc83d840a5f5be4d1da2e07b0e.png

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);

}

2.编译动态库:

代码如下:

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

3. 设置 LD_PRELOAD 并启动 Sublime Text:

代码如下:

LD_PRELOAD=。/libsublime-imfix.so sublime_text

为了不用每次启动Sublime Text都打这么一长串东西,写了个启动Sublime的脚本:

代码如下:

#!/bin/bash

SUBLIME_HOME=“/opt/sublime_text”

LD_LIB=$SUBLIME_HOME/libsublime-imfix.so

sh -c “LD_PRELOAD=$LD_LIB $SUBLIME_HOME/sublime_text $@”

把libsublime-imfix.so放到Sublime Text目录下并修改脚本中的SUBLIME_HOME,这样Sublime Text 就可以输入中文了。

上面就是Linux下Sublime Text 无法输入中文的解决方法的介绍了,只要按照上面的步骤,就能在Sublime Text 中输入中文了,是不是很简单呢?赶紧试试看吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习引擎的终极形态是什么?

来源:微软研究院AI头条概要:1月17日,院友袁进辉博士回到微软亚洲研究院做了题为《打造最强深度学习引擎》的报告,分享了深度学习框架方面的技术进展。1月17日,院友袁进辉博士回到微软亚洲研究院做了题为《打造最强深度…

linux进程映像由哪些构成,Linux编程开发进程映像类型分析

进程与线程问题是程序员在学习编程开发语言需要重点掌握的编程知识之一,而今天我们就一起来了解一下,Linux编程开发中进程映像的执行标准。什么是进程映像呢?进程映像是执行程序时所需要的可执行文件,通常会包括下面这些东西代码段(codesegm…

AI芯片之争白热化的当下,如何设计一款真正适用于终端的AI芯片?

来源:36氪概要:2017年,人工智能最火的风口一定是AI芯片。2017年,人工智能最火的风口一定是AI芯片。AI芯片的出现,与深度学习技术的成熟及应用密不可分。深度学习的过程可以简化理解为利用大量标注的数据进行训练&#…

李开复:AI巨头是有史以来最难以打破的垄断

来源:凤凰网概要:李开复认为目前最需要的是小的AI公司,甚至于打破巨头垄断局面的“破局者”也会是这些由小变大的AI公司。当地时间周二(1月23日),世界经济论坛在瑞士达沃斯小镇正式举行,各国政要、企业家、学者云集。创…

杨立昆辞Facebook人工智能实验室主任,任首席科学家

来源:澎湃新闻概要:他将不再担任Facebook 人工智能实验室主任一职,改任Facebook首席人工智能科学家,从而能更加专注于带领科学研究与AI策略。当地时间1月23日,执掌Facebook人工智能实验室(FAIR)…

Redis系列一、redis介绍与安装

一、Redis介绍 redis是一种基于键值对(key-value)数据库,其中value可以为string、hash、list、set、sorted set等多种数据结构,可以满足很多应用场景。还提供了键过期,发布订阅,事务,流水线&am…

redhat6.3的linux内核版本,1-6-RHEL6.3-内核升级(Red Hat Enterprise Linux Server6.3)@树袋飘零...

本节介绍内容:1、内核的概述2、源码编译安装文件系统中的ntfs内核模块案例分析1、内核的概述Linux操作系统是用来跟硬件和用户程序互联的支撑平台,设备的驱动程序完全可以访问硬件,而设备的驱动程序以模块化的形式设置,可以进行安…

MIT人工突触芯片新突破:指甲大小的芯片有望媲美超算

原作 Jennifer ChuRoot 编译自 MIT News量子位 出品 | 公众号 QbitAI论传递信息的能力,计算机的二进制目前还比不上人脑。因为大脑神经元之间传递的信号形式远多过0或1两种:根据突触(神经元之间的结构)间不同的神经递质&#xff0…

Redis系列二、redis的五种数据结构和相关指令之String

redis是一种基于键值对(key-value)的内存数据库,redis数据结构可以分为string、hash、list、set、sorted set。本节中将介绍Redis支持的主要数据结构中的string,以及相关的常用Redis命令。 redis的五种数据结构和相关指令之Strin…

体积最小桌面linux,Tiny Core Linux - 体积最小的精简 Linux 操作系统发行版之一 (仅10多MB) - 蓝月网络...

Tiny Core Linux (TCL) 是一款极体积极小且高度可扩展的微型 Linux 发行版,它将一个 Linux 操作系统精简到仅有 10 多 MB 左右的大小,似乎小巧得有点让人叹为观止!要知道无论是常见的 Ubuntu、CentOS、Debian 的体积动辄就是几百MB甚至要上GB…

美国公布长达35页的《2016-2045年新兴科技趋势报告》

来源:云谷资本概要:前段时间美国公布的一份长达35页的《2016-2045年新兴科技趋势报告》。该报告是在美国过去五年内由政府机构、咨询机构、智囊团、科研机构等发表的32份科技趋势相关研究调查报告的基础上提炼形成的。前段时间美国公布的一份长达35页的《…

Redis系列三、redis的五种数据结构和相关指令之Hash

本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令。redis是一种基于键值对(key-value)的内存数据库,redis数据结构可以分为string、hash、list、set、sorted set。 redis的五种数据结构和相关指令之Hash 哈希hash …

深度学习在推荐系统上的应用

作者:陈仲铭,知乎 ID:ZOMI深度学习最近大红大紫,深度学习的爆发使得人工智能进一步发展,阿里、腾讯、百度先后建立了自己的AI Labs,就连传统的厂商OPPO、VIVO都在今年开始筹备建立自己的人工智能研究所。确…

Redis系列四、redis的五种数据结构和相关指令之List

本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令。redis是一种基于键值对(key-value)的内存数据库,redis数据结构可以分为string、hash、list、set、sorted set。 redis的五种数据结构和相关指令之List 列表list …

那些顶级的AI机器人“大脑”

来源:机器人创新生态概要:如果说AI是赋予各个下游产业的“大脑”,那分布在世界各地的研究院就是AI的“大脑”。如果说AI是赋予各个下游产业的“大脑”,那分布在世界各地的研究院就是AI的“大脑”。从地域来看,美国依然…

Redis系列五、redis的五种数据结构和相关指令之Set

本节中将介绍Redis支持的主要数据结构中的set,以及相关的常用Redis命令。 redis的五种数据结构和相关指令之set 集合set 集合(set)与列表类似,都是用来保存多个字符串,但集合与列表有两点不同:集合中的元…

srt编辑的文件在linux显示乱码,解决看本地视频srt字幕乱码问题教程-srt文件

大家好,我是Ysaku,今天给大家带来一个解决srt字幕乱码问题的教程,今天在做视频的时候发现下载的视频配上srt字幕后显示的字幕会出现乱码情况,在修正问题后,我想大家也会也到这样的情况,那正好今天分享给大家…

李开复对话李飞飞:AI要理解人类的情感,还早着呢

来源:创业家第48届世界经济论坛年会在瑞士达沃斯召开,主题为“在分化的世界中打造共同命运”。达沃斯当地时间1月23日中午,在MIT的午餐会上,创新工场董事长李开复与李飞飞(Google Cloud AI/ML领域首席科学家&#xff0…

Redis系列六、redis的五种数据结构和相关指令之Sorted Set

本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令。redis是一种基于键值对(key-value)的内存数据库,redis数据结构可以分为string、hash、list、set、sorted set。 redis的五种数据结构和相关指令之有序集合sorted …

AI时代的高科技读心术:算法解码脑中图像

来源:科研圈翻译 李杨,审校 张梦茜,编辑 魏潇让我们想象一下:只要在心里浮现出某个人物或风景,就能从一堆数码照片中把它搜索出来。或者不用动笔就能画出一个新的厨房设计。又或者给心爱的人发送一张想象中的落日照…