关于Linux下修复Sublime无法输入中文的补丁无法安装的解决办法

释放双眼,带上耳机,听听看~!

网上有流传Linux下安装Sublime居然不能输入中文,今天安装Sublime果然也遇到了这个问题;在GitHub找到了一个解决办法。按补丁的要求,在终端里输入subl,嗯没错,根本找不到这个命令;照理来说我应该就不能安装这个补丁了。然后我翻了翻这个项目的两个脚本,发现其实挺简单的问题。


以下是折腾的全过程:

  1. 首先你得把这个项目克隆下来,我是放到~/Downloads下的,下载好之后打开~/Downloads/sublime-text-imfix目录;
  2. 然后按要求运行./sublime-imfix脚本,接着终端里瞬间问我,没见着你安装Sublime,要哥给你装个吗(It seems you do not install Sublime Text 3 in your system.Do you want to install it? [Y/N]:N )?
  3. 真瞎
  4. 思考了一下,我打开了这个sublime-imfix看了看,第4行赫然写着:

    if which subl

  5. 那么问题来了,其实我是没学过shell的,它跟bash是什么关系我至今不懂,可是根据下文的意思来猜,似乎这个脚本的意思就是只要在终端里输入subl就能启动Sublime
  6. 我们知道,要想在终端里输入一个命令就能启动一个什么东西,这个东西一定是放在一个bin目录里的,那么,就让我来试一试

    sudo find / sublime | grep sublime

  7. 刷出一屏幕我看不懂的东西,其中有一个叫:

    /usr/bin/sublime-text-dev

我把这一行复制粘贴到了命令行里,然后我家Sublime就跳出来啦~接下来只要把之前那个脚本里的所有subl全部替换成sublime-text-dev就可以解决啦……


可是一个好剧本怎么能这么简单

  1. 让我们执行一下之前那个脚本来完成“Sublime不能输入中文癌”的治疗吧

    ~/Download/sublime-text-imfix/sublime-imfix

  2. 哈哈,这脚本跐溜地完成了,让我们来启动一下sublime……啊嘞……无论我怎么点击图标,sublime就是不出现了……
  3. 搞事啊!!!
  4. ……好的,让我们看看之前究竟发生了些什么……翻看之前的安装记录的时候我发现了这样两行东西(由于装好了就把窗口关了,所以没有截图,也只能说个大概的意思)

    ./src/sublime-text-dev未找到
    /opt/sublime_text/libsublime-imfix.so未找到

  5. 好吧我写到这里已经有点累了,我就平实一点说吧
  6. ./src/sublime-text-dev这个问题其实很简单,在安装脚本里的subl其实不仅仅指/usr/bin里那个并不存在的subl,还指这个补丁目录下./src里用于替换/usr/bin/sublsubl脚本(这几句话可能有点绕,自己理解一下吧)。所以,接下来我干的事就是把./src/subl的文件名换成了./src/sublime-text-dev
  7. /opt/sublime_text/libsublime-imfix.so的问题更简单了,因为我安装的是ST3,所以打开sublime-imfix脚本把相关内容改成/opt/sublime_text_3/libsublime-imfix.so就行了(这个文件夹也是之前用sudo find / sublime | grep sublime找到的)
  8. 这里我再插入一个我瞄到的细节,由于sublime-imfix脚本里存在这样几行:

     if [ -e '/usr/bin/sublime-text-dev' ]
      then
       sudo rm /usr/bin/sublime-text-dev
     fi
     sudo cp ./src/sublime-text-dev /usr/bin/

    而我比较了/usr/bin/sublime-text-dev./src/sublime-text-dev的内容之后,发现前者(原版)内容完全包括后者(补丁版),还比它更丰富,所以决定保留原始内容,故,把上面找到的这五行全都注释掉了。

  9. 再后来运行的时候死活找不到sublime-text-dev,总是说我没有安装ST3,所以我重装了一下,最后再次运行了这个脚本。

  10. 然后,就能输入汉字啦

后记:实际上有些小问题,现成的解决方案不能满足自己的时候,可以尝试一下,说不定并不是兼容性问题那么大的事情,只是路径和文件名不同而已。

【转自慕课】https://www.imooc.com

Python

python之time模块解析

2022-3-3 12:21:30

Python

【python进阶】深入理解系统进程2

2022-3-3 12:24:16

搜索