ubuntu下解决sublime text3无法输中文问题

一、系统已成功安装搜狗输入法

二、保存下面的代码到文件sublime_imfix.c(位于~目录)

#include <gtk/gtkimcontext.h>
	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);
	  g_object_set_data(G_OBJECT(context),"window",window);
	  if(!GDK_IS_WINDOW (window))
	    return;
	  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);
	}

如果出现以下问题

则输入以下命令后再编译

sudo apt-get install libgtk2.0-dev

三、将上一步的代码编译成共享库libsublime-imfix.so,命令

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

四、将libsublime-imfix.so拷贝到sublime_text所在文件夹

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

五、修改文件/usr/bin/subl的内容

sudo gedit /usr/bin/subl

#!/bin/sh
	exec /opt/sublime_text/sublime_text "[email protected]"

修改为

#!/bin/sh
	LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "[email protected]"

此时,在命令中执行 subl 将可以使用搜狗for linux的中文输入

六、为了使用鼠标右键打开文件时能够使用中文输入,还需要修改文件sublime_text.desktop的内容

sudo gedit /usr/share/applications/sublime_text.desktop

将[Desktop Entry]中的字符串

Exec=/opt/sublime_text/sublime_text %F

修改为

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text %F"

将[Desktop Action Window]中的字符串

Exec=/opt/sublime_text/sublime_text -n

修改为

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text -n"

将[Desktop Action Document]中的字符串

Exec=/opt/sublime_text/sublime_text --command new_file

修改为

Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text --command new_file"
时间: 2024-10-31 22:57:17

ubuntu下解决sublime text3无法输中文问题的相关文章

ubuntu 16.04 下解决sublime text3无法输中文问题

一 , 参考解决方法 1. 百度经验: http://jingyan.baidu.com/article/f3ad7d0ff8731609c3345b3b.html 2. 写得比较符合我个人情况的:https://my.oschina.net/lee2013/blog/396855 (本人由于在安装完sublime text 3 后就打开并输入激活和安装好相关插件,并直接把软连接到了桌面,在安装完搜狗输入法后也没有进行启动--由于之前的搜狗输入法无法转换为中文的这种情况,本人将其卸载了,从官网上

Ubuntu 16.04 GNOME下解决Sublime Text3中文输入(ibus)(转)

解决方法: 1.进入Sublime Text3插件管理文件夹 cd ~/.config/sublime-text-3/Packages 2.获取InputHelper插件 git clone https://github.com/xgenvn/InputHelper.git 3.如果发现在Sublime Text3中无法使用Ctrl+Shift+Z调出输入框,请检查是否安装pygtk sudo apt-get install python-gtk2-dev 4.每次输入中文时都要输入Ctrl+S

Mac os下解决Sublime Text2或3中文乱码问题

度娘了好久都没有找到Mac os解决Sublime Text2的中文乱码问题的教程, 于是自己琢磨了半天,研究了一下并成功在Mac os下直接用sublime Text2开含中文的文件. (再也不用每次开个dos平台下的东西还要去XCode转个码什么的了...) 步骤如下: 0. 打开Sublime text 1. Control+'~'打开控制台, 输入命令按照Sublime package control,按照这个官网来(https://sublime.wbond.net/installat

Ubuntu下解决解压zip文件中文文件名乱码问题

在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Windows下默认的编码是GBK.对于这个问题,主要有以下三种解决方法: 一.命令行指定解压字符集 在Ubuntu下解压来源于Windows的zip文件,中文文件名会出现乱码问题. 出现这个问题的原因是:Windows和Ubuntu使用的默认编码不相同,而且zip文件自身却不带有任何标识其编码的信息.解决方案

ubuntu 下 安装 sublime Text3

1. 在Ubuntu下 按Ctrl +Alt+T 打开命令窗口 2. 添加sublime Text3 的仓库 sudo add-apt-repository ppa:webupd8team/sublime-text-3   回车,出现很多信息, 按enter 见继续. 3. sudo apt-get update 4. 安装 Sublime Text3: sudo apt-get install sublime-text-installer 接下来... 注册key  百度下即可 比如: —–

解决ubuntu16.04下的sublime text3不能使用中文输入法的问题

Sublime Text 2/3 输入法(Fcitx)修复[Ubuntu(Debian)] 主要目的 安装 Sublime Text 3 安装 Fcitx 输入法 + 皮肤 修复 Sublime Text 2/3's 在 Ubuntu(Debian) 系统下的无法输入中文(CJK 字符)输入法的问题 更新 (new) 修复了 "Package Preference" 无法打开的问题, 感谢 @liberize (new) 通过 Ubuntu 系统图标打开的 Sublime 也支持 Fc

Ubuntu下安装sublime text3并汉化

转载请注明出处:果冻栋吖 通过ppa安装,打开终端,输入以下命令: sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt-get install sublime-text-installer 卸载 sublime text 命令: sudo apt-get remove sublime-text-installer 装完了以后可以激活它,在Help里输入license key(包括B

在ubuntu下用sublime text3编译C++和pascal

编译C++: 选择Tools -> Build System -> New Build System,把下面代码拷贝进去,保存,自己起个名字. 然后打开C++文件,选择Tools -> Builid System ->你刚才保存的名字,按Ctrl + B就可以编译了. {     "cmd": ["g++", "-Wall", "-std=c++11", "${file}", &qu

解决sublime text3 文件名,小框框的办法

解决sublime text3 文件名,小框框的办法 之前一直都是用的英文命名的文件夹,到前几天才发现,用中文,来命名文件夹出现了乱码问题. 今天晚上,自己也在网上去百度了很多方案,好像大部分都不太有用,然后最后找到了一篇,发现还是挺有用,把它分享给大家. 这个也是copy别人的,嘿嘿. 言归正传,下面开始说解决方案,挺简单的. 下面是步骤: (1)打开sublime text3,找到上面的菜单选项(preferences),下面有一个setting-user (2)然后作如下配置 { "dpi