我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux 下 Sublime Text 中文输入问题的如何解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux 下 Sublime Text 中文输入问题的如何解决

这篇文章主要介绍“Linux 下 Sublime Text 中文输入问题的如何解决”,在日常操作中,相信很多人在Linux 下 Sublime Text 中文输入问题的如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux 下 Sublime Text 中文输入问题的如何解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.保存下面的代码为sublime_imfix.c

代码如下:


#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 中文输入问题的如何解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux 下 Sublime Text 中文输入问题的如何解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux 下 Sublime Text 中文输入问题的如何解决

这篇文章主要介绍“Linux 下 Sublime Text 中文输入问题的如何解决”,在日常操作中,相信很多人在Linux 下 Sublime Text 中文输入问题的如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
2023-06-13

Ubuntu14.4下Sublime Text 3无法输入中文的解决方法

这篇文章主要介绍“Ubuntu14.4下Sublime Text 3无法输入中文的解决方法”,在日常操作中,相信很多人在Ubuntu14.4下Sublime Text 3无法输入中文的解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好
2023-06-13

ubuntu sublime中文输入问题解决办法

ubuntu sublime中文输入问题解决办法 概述:ubuntu下面使用sublime写代码,不能输入中文写注释都比较麻烦,所以就搜了一下如何输入中文。写篇博客记录一下,测试成功。 测试环境 系统:ubuntu 14.04lts sub
2022-06-04

Ubuntu下Sublime Text无法输入中文最简单的解决方案

Sublime Sublime Text 是一个代码编辑器(Sublime Text2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,
2022-06-04

快速解决linux下中文输入法问题

故事背景:最近在做资产上报相关功能,要支持中文输入,如果正常快捷方式启动程序没问题,但是升级或者卸载重新安装,自启的时候是使用su usr -C XX.sh启动,root下启动没办法获取用户的环境变量,下面开始咱们探险之路。。。 探索之路:
2022-06-04

Ubuntu12.04下如何解决无法使用中文输入法的问题

这篇文章主要介绍“Ubuntu12.04下如何解决无法使用中文输入法的问题”,在日常操作中,相信很多人在Ubuntu12.04下如何解决无法使用中文输入法的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”U
2023-06-13

如何解决mysql表输入中文出现问号的问题

当在MySQL表中输入中文出现问号时,可能原因包括字符集不匹配、数据库连接编码错误、客户端编码错误、数据长度超出限制、字符串包含无效字符、第三方库问题、MySQL版本过低或数据库服务器配置错误。解决方案包括更改字符集、指定字符集、选择正确字符集、增加列长度、过滤无效字符、检查第三方库文档、升级MySQL版本或检查服务器配置。确保数据库、客户端和数据使用相同的字符集。
如何解决mysql表输入中文出现问号的问题
2024-04-02

linux中文输入法打不出中文如何解决

在 Linux 中,可以通过以下方式解决无法输入中文的问题:1. 安装中文输入法:许多 Linux 发行版都有预装了一些中文输入法,你可以在系统设置中查看并启用它们。如果没有预装中文输入法,你可以手动安装一些流行的中文输入法,例如:fcit
2023-09-05

解决MySQL无法输入中文字符的问题

文章目录 问题描述问题排查解决方案1️⃣创建数据库时设置字符集为utf82️⃣修改数据库配置文件【比较麻烦】 写在最后 前几日在使用MySQL数据库的时候,出现了一处保存,故作此记录✍ 问题描述 下面是我这样exa
2023-08-16

如何解决win10系统输入文件就死机的问题

小编给大家分享一下如何解决win10系统输入文件就死机的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!解决方法/步骤:1.打开电脑中的设备管理器,直接展开键盘
2023-06-27

Java 输出中文乱码问题如何有效解决?(java输出中文乱码如何解决)

在Java编程中,输出中文乱码是一个常见且令人困扰的问题。本文将详细介绍解决Java输出中文乱码的步骤,帮助开发者轻松应对这一难题。一、了解乱码产生的原因Java中输出中文乱码主要是由于字符编码的不匹配导致的。在Ja
Java 输出中文乱码问题如何有效解决?(java输出中文乱码如何解决)
Java2024-12-18

Linux下如何解决日志文件过大的问题

这篇文章主要介绍Linux下如何解决日志文件过大的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如何让应用程序在后台执行:linux后台执行命令:&与nohup的用法通过以上方法,应用程序的日志会一直输出到日志文
2023-06-15

如何解决win7中输入法图标不见的问题

不知js道怎么回事输入法图标在系统任务栏就看不见了,这种情况有时重启下电脑就好,当然有时重启电脑是不管用的,现在就来说说WIN7系统中输入法图标不见了的解决方法:1、点开始--控制面板 2、打开控制面板窗口后,点击&ldandroidquo
2023-06-05

Java 中无法输出中文的问题该如何解决?(java无法输出中文怎么解决)

在Java编程中,有时候会遇到无法输出中文的情况,这可能会给开发者带来一些困扰。下面将为大家详细介绍解决Java无法输出中文的方法,分为以下两步:一、检查字符编码字符编码是Java处理文本的基础,错误的字符编码可能导
Java 中无法输出中文的问题该如何解决?(java无法输出中文怎么解决)
Java2024-12-14

如何解决Ubuntu系统下zend for linux中文乱码问题

这篇文章主要讲解了“如何解决Ubuntu系统下zend for linux中文乱码问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决Ubuntu系统下zend for linux中文
2023-06-13

Zookeeper中如何解决zookeeper.out文件输出位置问题

这篇文章主要介绍了Zookeeper中如何解决zookeeper.out文件输出位置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-14

编程热搜

目录