您的位置:首页 > 运维架构 > Linux

linux 下解决sublime text 的中文显示乱码与输入问题

2016-11-25 14:16 676 查看

安装Package Control

     点击Perference菜单,如果出现Package Control 与Package Settings 两个子菜单,则说明已安装。

  否则,简单通过以下方法安装:

   1、打开命令行(Ctrl + `),在命令行输入 

import urllib.request,os,hashlib;
 h = '7183a2d3e96f11eeadd761d777e62404e330c659d4bb41d3bdf022e94cab3cd0';
pf = 'Package Control.sublime-package';    
ipp = sublime.installed_packages_path();
 urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) );
by = urllib.request.urlopen('http://sublime.wbond.net/' + pf.replace(' ', '%20')).read();
 dh = hashlib.sha256(by).hexdigest();
print('Error validating download (got %s instead of %s), please try manual install' % (dh, h))  if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by) 


   2、此时点击Perference菜单,如果出现Package Control 与Package Settings 两个子菜单,则说明已安装。若未显示,则重启软件。

安装解决乱码相关的包

    1、点击Perference->Package Control (或快捷键 Ctrl + Shift +p),在出现的输入框输入:Install Package。

       2、在新出现的包搜索框里输入ConvertToUTF8,按Enter 安装。

    3、重启软件。或出现Error : codec missing 提示, 按照相同步骤安装codecss包。重启,中文显示正常。

                  

  

解决中文输入问题

  1、终端进入sublime text的安装目录(如/opt/sublime_text),通过sudo gedit sublime_imfix.c命令新建c文件,并在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、编译c文件,生成sublime-imfix.so文件:     
sudo gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC


        3、使得桌面方式打开的sublime text支持搜狗中文输入:             

终端输入:sudo gedit /usr/share/applications/sublime_text.desktop
在打开的文件中,将[Desktop Entry]下的Exec字段注释掉,在注释下方重新定义字段:
Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text %F"
又将[Desktop Action Windows]下的Exec字段替换为:
Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text -n"
同理替换[Desktop Action Document]下的Exec字段为:
Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text --command new_file"

      4、使得终端命令打开的sublime text 支持中文输入:

             终端打开:         sudo gedit /usr/bin/subl

            同样替换字段exec为:                   
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"

            重启终端输入subl 命令打开的sublime text也支持中文输入。

           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: