张文永 發表於 2024-2-22 00:00:00

Ubuntu14.4下Sublime Text 3无法输入中文解决方法

<p>
        本教程是向大家介绍Ubuntu14.4下Sublime Text 3无法输入中文解决方法,不是很难,方法很实用,同时感谢原创作者LunnLew的分享,希望这篇教程对大家有所帮助!</p>
<p>
        工具/原料</p>
<p>
        Ubuntu14.04</p>
<p>
        搜狗输入法 for Linux</p>
<p>
        Sublime text 3</p>
<p>
        已知前置条件</p>
<p>
        本经验目前在Ubuntu14.04环境下,已有搜狗输入法 for Linux和Sublime Text 3的情况下安装成功。</p>
<p align="center">
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" alt="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/002e692beda0c253b9aa6edd4cf3b8cb.jpg" width="500"></p>
<p>
        1</p>
<p>
        保存下面的代码到文件sublime_imfix.c(位于~目录)</p>
<p>
        #include <gtk gtkimcontext.h=""></gtk></p>
<p>
        void gtk_im_context_set_client_window (GtkIMContext *context,</p>
<p>
        GdkWindow *window)</p>
<p>
        {</p>
<p>
        GtkIMContextClass *klass;</p>
<p>
        g_return_if_fail (GTK_IS_IM_CONTEXT (context));</p>
<p>
        klass = GTK_IM_CONTEXT_GET_CLASS (context);</p>
<p>
        if (klass-&gt;set_client_window)</p>
<p>
        klass-&gt;set_client_window (context, window);</p>
<p>
        g_object_set_data(G_OBJECT(context),"window",window);</p>
<p>
        if(!GDK_IS_WINDOW (window))</p>
<p>
        return;</p>
<p>
        int width = gdk_window_get_width(window);</p>
<p>
        int height = gdk_window_get_height(window);</p>
<p>
        if(width != 0 &amp;&amp; height !=0)</p>
<p>
        gtk_im_context_focus_in(context);</p>
<p>
        }</p>
<p align="center">
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" alt="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/3282c56b5b4a8595bf1a97840a1199a4.jpg" width="500"></p>
<p>
        2</p>
<p>
        将上一步的代码编译成共享库libsublime-imfix.so,命令</p>
<p>
        cd ~</p>
<p>
        gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC</p>
<p align="center">
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" alt="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/351771a31e45605761a4838cb900378f.jpg" width="500"></p>
<p>
        3</p>
<p>
        然后将libsublime-imfix.so拷贝到sublime_text所在文件夹</p>
<p>
        sudo mv libsublime-imfix.so /opt/sublime_text/</p>
<p align="center">
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" alt="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/c065a41e0771bcef5c836b910e8de708.jpg" width="500"></p>
<p>
        4</p>
<p>
        修改文件/usr/bin/subl的内容</p>
<p>
        sudo gedit /usr/bin/subl</p>
<p>
        将</p>
<p>
        #!/bin/sh</p>
<p>
        exec /opt/sublime_text/sublime_text "$@"</p>
<p>
        修改为</p>
<p>
        #!/bin/sh</p>
<p>
        LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"</p>
<p>
        此时,在命令中执行subl将可以使用搜狗for linux的中文输入</p>
<p align="center">
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" alt="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/af6be2a7b1ab7fde942bc145b5b44198.jpg" width="500"></p>
<p>
        5</p>
<p>
        为了使用鼠标右键打开文件时能够使用中文输入,还需要修改文件sublime_text.desktop的内容。</p>
<p>
        命令</p>
<p>
        sudo gedit /usr/share/applications/sublime_text.desktop</p>
<p>
        将中的字符串</p>
<p>
        Exec=/opt/sublime_text/sublime_text %F</p>
<p>
        修改为</p>
<p>
        Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text %F"</p>
<p>
        将中的字符串</p>
<p>
        Exec=/opt/sublime_text/sublime_text -n</p>
<p>
        修改为</p>
<p>
        Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text -n"</p>
<p>
        将中的字符串</p>
<p>
        Exec=/opt/sublime_text/sublime_text --command new_file</p>
<p>
        修改为</p>
<p>
        Exec=bash -c "LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text --command new_file"</p>
<p>
        注意:</p>
<p>
        修改时请注意双引号"",否则会导致不能打开带有空格文件名的文件。</p>
<p>
        此处仅修改了/usr/share/applications/sublime-text.desktop,但可以正常使用了。</p>
<p>
        opt/sublime_text/目录下的sublime-text.desktop可以修改,也可不修改。</p>
<p align="center">
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" alt="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/658e94b5d8d930c78cf562d81f963357.jpg" width="500"></p>
<p>
        6</p>
<p>
        经过以上步骤我们能在Sublime中输入中文了。</p>
<p align="center">
        <img style="max-width:100%!important;height:auto!important;"title="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" alt="Ubuntu14.4下Sublime Text 3无法输入中文解决方法" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/276b1c558d14f4decfadbff4b5f0ba90.jpg" width="500"></p>
頁: [1]
查看完整版本: Ubuntu14.4下Sublime Text 3无法输入中文解决方法