解决Ubuntu下sublime中不能输入中文的问题
解决Ubuntu下sublime中不能输入中文的问题
Ubuntu下安装sublime后,不能输入中文,而在其他软件中能正常输入,这是sublime的bug,解决方案是在通过shell在每次运行sublime前自动添加一个动态修正库,解决过程如下:
进入某个目录如~:
cd
新建一个C源代码
subl 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 != && height !=)
gtk_im_context_focus_in(context);
}
在能编译之前可能需要安装依赖包,通过以下命令完成:
sudo apt-get install build-essential
sudo apt-get install libgtk2.-dev
然后编译C文件:
gcc -shared -o libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
接下来在每次运行sublime程序之前告诉程序链接上这个.so库文件即可在sublime中输入中文,其命令是LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@",其中/opt/sublime_text/是sublime安装的默认目录。命令行的subl还是Dash的Sublime Text,或是文件浏览器里的open with> sublime text,他们都能启动sublime程序,但不必寻找他们的启动入口,而后一一改之。他们都依赖于执行/opt/sublime_text/sublime_text,利用此特点,将/opt/sublime_text/sublime_text二进制另存,之后写个名为/opt/sublime_text/sublime_text的shell脚本,其中实现在执行新建此shell脚本以前的/opt/sublime_text/sublime_text二进制之前,告诉程序链接.so修正库文件。过程如下:
cd /opt/sublime_text/ sudo mv sublime_text sublime_text0 sudo vim sublime_text # 不熟悉vim者亦可sudo gedit sublime_text
在一行内写入以下语句后保存:
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text0 "$@"
sudo chmod +x sublime_text
至此应该可以在sublime中输入中文了。
解决Ubuntu下sublime中不能输入中文的问题的更多相关文章
- 解决 Ubuntu 下 Sublime Text 无法输入中文的问题
解决 Ubuntu 下 Sublime Text 无法输入中文的问题 1. 安装依赖库 sudo apt-get install build-essential sudo apt-get instal ...
- 解决Ubuntu下Sublime Text 3无法输入中文
前言 sublime很好用,但是ubuntu下不能输入中文,这是一个很大的问题.不知道为什么开发着一直也不解决,好在还是有高手在,总能找到方法.网上方法很多,但是也很乱,现在我将自己的经验总结一下. ...
- Ubuntu安装Sublime Text并输入中文
Sumblime Text3是一款传说中的神级代码编辑器,具有下面特点: 1.代码高亮,自己主动补全 2.各种插件扩展 3.外观简洁舒适 4.跨平台(Windows,Linux,OS X) 简而言之就 ...
- 完美解决ubuntu下sublime中文输入问题
声明 1.本人整理文章,转载请注明出处. 2.参考资料 http://my.oschina.net/tsl0922/blog/113495 问题描述 在ubuntu下想使用sublime,但是不能输入 ...
- Ubuntu菜鸟入门(十八)————解决Ubuntu下Sublime Text 3无法输入中文
一.下载我们需要的文件,打开终端,输入: git clone https://github.com/lyfeyaj/sublime-text-imfix.git 二.将subl移动到/usr/bin/ ...
- 解决qt5在ubuntu下无法调用fcitx输入中文的问题
如题,在以前安装qt5.2.1的时候就遇到了这个问题.当时上网搜了很多资料,结果都解决不了,发现都是复制来复制去. 这次因为要用qt5.3.0在ubuntu下写个程序,所以不解决这个问题不行了.就继续 ...
- Ubuntu下搜狗拼音突然无法输入中文的解决办法
搜狗输入法前段时间还可以正常使用,突然今天无法输入中文了.这种情况在Ubuntu中非常常见,可能的原因有3个:1.可能依赖有问题.2.配置文件出错了.3运行出错,需要重新启动一下. 因为我的这个是突然 ...
- ubuntu15.10下sublime text3 无法输入中文解决办法
原文链接:http://geek.csdn.net/news/detail/44464 1.首先保证你的电脑有c++编译环境 如果没有,通过以下指令安装 sudo apt-get install bu ...
- ubuntu15.04下sublime text不能输入中文的解决
原因是由于中文输入法的输入焦点不能插入sublime的输入窗口中,需要使用代码强制插入输入焦点. 代码是cjacker 君提供的,可以看原始的讨论帖子: http://www.sublimetext. ...
随机推荐
- hdu1054Strategic Game(树形DP)
链接 归属简单树形DP 挺简单的 跟第一道一样 就是我跑偏了题意..以为要覆盖点 纠结啊 推了N久 推不出啊 然后就郁闷了 打了局游戏 边想边打 实在想不出 看下题解 跑偏了 分两种情况D 方程见代码 ...
- WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案
首先先得瑟一下,有关WPF中不规则窗体与WindowsFormsHost控件不兼容的问题,网上给出的解决方案不能满足所有的情况,是有特定条件的,比如 WPF中不规则窗体与WebBrowser控件的兼 ...
- BZOJ_2179_FFT快速傅立叶_(FFT)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=2179 超大整数乘法 分析 FFT模板题. 把数字看成是多项式,x是10.然后用FFT做多项式乘 ...
- Axis2 java调用.net webservice接口的问题(郑州就维)
这是一个古老的问题,古老到从我若干年前遇到这样的问题就是一个解决之道:反复尝试.其实标准是什么,标准就是一个束缚,一种按既定规则的束缚,错点点,你的调用就可能不成功,不成功后你要花费大量的力气查找原因 ...
- C# 操作 Word 修改word的高级属性中的自定义属性
为 Microsoft Word 创建自动化客户端 启动 Visual Studio .NET. 在文件菜单上,单击新建,然后单击项目.从 Visual C# 项目类型中选择 Windows 应用程序 ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.3
(1). Let $\sed{A_\al}$ be a family of mutually commuting operators. Then, there exists a common Schu ...
- Datatable转换成List实体对象列表 几个实例
一, /// <summary> /// 将Datatable转换为List集合 /// </summary> /// <typeparam name="T&q ...
- Codeforces 439 A. Devu, the Singer and Churu, the Joker
这是本人第一次写代码,难免有点瑕疵还请见谅 A. Devu, the Singer and Churu, the Joker time limit per test 1 second memory l ...
- [codevs1557]热浪
本题地址:http://www.luogu.org/problem/show?pid=1339 http://codevs.cn/problem/1557/ http://www.tyvj.cn/p/ ...
- C(n,k)在n个不重复数中获得k个数
//比如在数组a[]={1,7,89,87} 中k=2的时候 组合为 C(4,2)=6 package 再次开始; import java.util.ArrayList; //本次实现的是在n个不重复 ...