钉子の次元

Dimpurr – an artist, designer and developer from China.

OpenSUSE (Linux) 下安装 Sublime Text

Sublime Text 作为某人御用的编辑器已经到了没有 ST 就不想写代码的地步了 …… 当然因为是 Python 编写, ST 在 Linux 下的安装使用实际上非常简单,唯一需要注意的是输入法 bug 的修复。

Sublime Text 3 with OpenSUSE & fcitx & Google Pinyin

Sublime Text 3 with OpenSUSE & fcitx & Google Pinyin

一 下载主程序

首先进入官网下载官方提供的 Linux 版 tar 压缩包:http://www.sublimetext.com/

tar -xvf sublime*.tar.bz2 # 解压 tar 压缩包
cd sublime*
sudo mkdir /opt/sublime_text/
sudo cp -rf * /opt/sublime_text/ # 拷贝到系统程序目录

实际上此时就已经可以执行其中的 sublime.py 运行了,但是这种情况下会导致 ibus 和 fctix 等中文输入框架无法被激活,另外在 OpenSUSE 下还可以导致菜单栏不正常显示的 bug ,因此需要打个补丁。

二 输入法补丁和菜单项

首先下载稍后需要用到的输入法修复补丁和菜单图标:http://pan.baidu.com/s/1bnvMRDH

注:此链接已失效,请常见 http://www.sublimetext.com/forum/viewtopic.php?f=3&t=7006&start=10#p41343

然后要记得安装好编译环境,如果已经完成了请忽略此步:

sudo zypper in build-essential # 其他发行版同理

然后编译输入法补丁并拷贝到 Sublime Text 目录:

gcc -shared -o libsublime-imfix.so sublime_imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC # 编译 libsublime-imfix.so
sudo cp libsublime-imfix.so /opt/sublime_text/ # 拷贝至安装目录

最后为了方便使用在菜单中添加 Sublime Text 的菜单项:

sudo cp sublime_text.desktop /usr/share/applications/ # 拷贝编辑好的 .desktop 菜单项到系统目录
sudo chmod 777 /usr/share/applications/sublime_text.desktop # 修改权限以使其可识别

三 完成

至此 Sublime Text 就可以正常使用了。剩下的各种配置和安装插件就请自行查阅资料了,不过相信只要安装好包管理器菊苣们就知道该做啥了。在 ST2 中使用 Ctrl + ~ 启动控制台敲入以下命令回车即可:

import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

至于 Sublime Text 3 则是:

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())

最后是吐槽。

之前在查询输入法问题解决办法时找到了官方论坛上的这个反馈贴:Input method support 后来果不其然的在 Hangouts 中提到这个问题时 csslayer 马上开始抱怨 「我都把问题和解决的源码扔上去了这作者还高贵冷艳 再加上这破玩意是闭源的老子连替他擦屁股的方法都没有 」…… 当然其中的 某一楼 还可以看到之前使用的输入法补丁的作者 Cjacker 提供的源码。

而我想表达的是,总觉得作者用的一定是 Mac ……