1.写好文件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);

}

2.编译sublime_imfix.c文件。

命令行输入(在sublime_imfix.c文件目录下编译)gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
如果报错如果出现如下的错误:fatal error: gtk/gtkimcontext.h: 没有那个文件或目录
需要在命令行输入apt-get install libgtk2.0-dev然后再继续编译,之后会在该目录生成一个文件libsublime-imfix.so

3.将libsublime-imfix.so文件复制到sublime_text所在文件夹

命令:mv libsublime-imfix.so /opt/sublime_text

4.接着,修改文件/usr/bin/subl的内容:

vim /usr/bin/subl,修改的内容如下:

#!/bin/sh

exec /opt/sublime_text/sublime_text “$@”

修改为:

#!/bin/sh

LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text “$@”

5.修改sublime_text.desktop文件

vim /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”

6.将文件克隆到本地git clone https://github.com/lyfeyaj/sublime-text-imfix.git

7.运行脚本 :cd sublime-text-imfix && ./sublime-imfix

最新文章

  1. 使用 ExecuteMultiple 提高批量数据加载的性能
  2. No plugin found for prefix &#39;mybatis-generator&#39; in the current project
  3. ThinkPHP 3.2.3 使用 Swift Mailer 邮件系统发送邮件
  4. SQLite剖析之内核研究
  5. Jquery_AjaxFileUpload插件的使用记录
  6. SQL——字符串处理函数
  7. JS中的event 对象详解
  8. [IT新应用]如何部署CITRIX 虚拟桌面
  9. Sde表结构分析
  10. 10、WPF程序集
  11. 苹果iphone4s完美越狱后破解4g网络方法
  12. Hibernate学习之映射关系
  13. HDU 5611 Baby Ming and phone number
  14. temp-存储过程 以前的
  15. OI回忆录——一个过气OIer的智障历程
  16. Linux下的Shell编程(2)环境变量和局部变量
  17. redis详解(三)-- 面试题(转载)
  18. 【转载】关于nginx以及内核参数的配置
  19. 查看class实际执行的类路径
  20. fopen

热门文章

  1. 3 Linux性能优化之 CPU上下文
  2. ng打包
  3. Prometheus 基于文件的服务发现
  4. Prometheus 标签使用示例整合
  5. How to signout from an Azure Application?(转载)
  6. linux学习-防火墙指令
  7. APS.NET MVC + EF (02)---深入理解ADO.NET Entity Framework
  8. nc 从服务器上传下载文件
  9. MAC电脑下Appium + python3 + robotframework ios的真机测试环境搭建
  10. Spring的配置文件找不到元素 &#39;beans&#39; 的声明