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

安装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也支持中文输入。

           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值