【linux学习笔记】Sublime Text3支持GB2312和GBK编码以及中文输入法
几天在ubuntu15.10下使用Sublime Text3发现中文乱码,以及不能使用中文输入法(搜狗输入法linux版)的问题,捣鼓了半天,终于完善了,下面po一下我的解决方案。
一.支持GB2312和GBK编码
1.1 安装Package Control
按住ctrl+~打开命令行,然后输入如下代码
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())1.2 安装ConvertToUTF8
首先,按住ctrl+shift+p, 
然后,在弹出的搜索框中输入install package 
最后,输入ConvertToUTF8,等待安装 
安装完成后重启subline Text3即可。
二.支持中文输入法
2.1 安装GTK库
sudo apt-get install libgtk2.0-dev2.2 编译动态库
新建文件sublime_imfix.c,输入如下代码:
/**********************************************************
    > File Name: sublime_imfix.c
    > Author: GatieMe
    > Mail: gatieme@163.com
    > Created Time: 2015年04月04日 星期六 20时20分12秒
 **********************************************************/
#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);
}将代码编译成共享库
gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC将生成的so共享库拷贝到/opt/sublime_text目录下
sudo cp libsublime-imfix.so /opt/sublime_text/libsublime-imfix.so修改/usr/bin/subl文件
sudo vim /usr/bin/subl
//sunl文件内容
#!/bin/sh
export LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so//第一行加入如下代码
exec /opt/sublime_text/sublime_text "$@"打开sublime-text.desktop
cd /usr/share/applications/
sudo vim sublime_text.desktop修改sublime-text.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/usr/bin/subl %F//此行路径修改为/usr/bin/subl
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;Utility;
StartupNotify=true
Actions=Window;Document;
X-Desktop-File-Install-Version=0.22
[Desktop Action Window]
Name=New Window
Exec=/usr/bin/subl -n//此行路径修改为/usr/bin/subl
OnlyShowIn=Unity;
[Desktop Action Document]
Name=New File
Exec=/usr/bin/subl --command new_file//此行路径修改为/usr/bin/subl
OnlyShowIn=Unity;至此,重启sublime,大功告成,中文不再乱码,输入法问题解决,愉快的享受sublime吧。
【linux学习笔记】Sublime Text3支持GB2312和GBK编码以及中文输入法的更多相关文章
- [转] Sublime Text 3支持GB2312和GBK编码
		Sublime Text 3与Sublime Text 2的不同 其实有不少人写过如何让Sublime Text 2支持GB2312和GBK编码,例如这篇.基本原理就是先装好Package Contr ... 
- Sublime Text 3技巧:支持GB2312和GBK编码
		From: http://blog.csdn.net/ubuntulover/article/details/21101979 Sublime Text 3与Sublime Text 2的不同 其实有 ... 
- Html5 学习笔记 Sublime text3 和 Emmet 插件
		下载地址 :https://pan.baidu.com/s/1MpkaYdAcZd6RmPpmvOdK7w Emmet 压缩包 并且解压: 安装 Sublime Text 3, 选择首选项 浏览插件 ... 
- Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome
		中文输入法 切换到root用户,运行以下命令: yum install "@Chinese Support" 按照提示,一路Yes等待安装完成.安装完成后点击左上角System - ... 
- 如何让.NET Core支持GB2312和GBK
		在.NET Core中,默认是不支持GB2312和GBK编码的. 例如我们如果新建一个.NET Core控制台项目,然后在其Main方法中使用如下代码: using System; using Sys ... 
- (转)Linux最常用指令及快捷键 Linux学习笔记
		Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ... 
- linux学习笔记2-linux的常用命令
		第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ... 
- Linux学习笔记(一)2015.4.13
		研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ... 
- deepin linux学习笔记
		目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 c ... 
随机推荐
- 阿里Java研发工程师实习面经
			十分幸运 拿到阿里云的offer,感谢周围无数人对我的支持和鼓励,所以写篇面经希望可以帮助大家. 面试中,运气占很大一部分的,所以你们若是没有通过,一定不要气馁,继续加油. 每个努力的人 都值得钦佩, ... 
- Redis Error:/var/redis/run/redis_6379.pid exists, process is already running or crashed
			命令service Redis start /var/redis/run/redis_6379.pid exists, process is already running or crashed 引起 ... 
- JVM体系结构-----深入理解内存结构
			一.概述 内存在计算机中占据着至关重要的地位,任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行.与C和C++相比,使用Java语言编写的程序并不需要显示的为每一个对象编写对应 ... 
- WIN2008虚拟机安装ORACLE11g记录
			---恢复内容开始--- 1.ORACLE11g的安装包下载与解压 官网下载地址:(http://www.oracle.com/technetwork/database/enterprise-edit ... 
- DataOutputStream&DataInputStream
			DataOutputStream&DataInputStream是对输出输入流的扩展,可以直接读写int double等数据类型 下面是今天的练习,细节都写到注释里面了: package Zh ... 
- redis的基本数据类型
			一:redis是一个开源的,使用C语言编写,支持网络,可基于内存亦可持久化的日志型,key-value方式存储的nosql数据库.作为缓存服务器,速度效率都很快,和memcache相似 redis支持 ... 
- SpringMVC之拦截器实现登录验证
			今天回头看之前发的javaweb学习路线图,发现把路线图中的也学的有一半多了,不过还是路漫漫.在前面的博客中有学习过spring的aop,它利用动态代理实现,在springmvc中也是一样,今天使用H ... 
- PHP 表单 - 必需字段
			PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"Name", "E-mail", 和 "Gender" 字段是必须 ... 
- 亲密接触Redis-第三天(Redis的Load Balance)
			前言 上两天讲述了Redis的基本搭建和基于HA的集群布署方式以及相关的策略和注意点.今天开始讲述Redis的Cluster功能,而这块目前来说网上资料不是太全,就算有1,2篇也只是单讲服务端的搭建也 ... 
- WCF Restful调用跨域解决方案
			目前很多项目中CRM更多扮演一个纯后台管理系统,用户更多的操作是在移动端执行,不管是安卓还是IOS甚至是H5.这里以H5为例,CRM提供数据接口,移动web端来调用接口进行数据处理,这里就会涉及到一个 ... 
