关于sublime的配置

前言

最近这两天sublime text 3做了一些较大的更新,当前更新后的版本是3126。更新后,导致原来的一些配置出现无法使用的情况,所以需要重新配置一下,所以我也趁着这次刚配置完,把一些配置记录下来,方便以后查阅。

在修复这些问题的时候,我查了许多资料,翻看了很多博客,也依据其尝试了很多方法,网上的资料很杂很乱,而且大部分可能时间较旧,所以根本无法解决现有的问题,所以这也是我写这一篇东西来总结一下。

ubuntu下sublime无法输入的中文问题

sublime在ubuntu的系统环境下,是无法输入中文的,这好像是它的一个bug,但是作者一直没有修复这个问题,只能依靠一些第三方的手段来达到输入中文的目的。

步骤

1. 下载

首先我们需要在Github上下载/克隆一个repo

1
$ git clone https://github.com/lyfeyaj/sublime-text-imfix.git

2. 执行

克隆到本地之后,执行

1
2
3
$ cd sublime-text-imfix
$ sudo cp ./lib/libsublime-imfix.so /opt/sublime_text
$ sudo cp ./src/subl /usr/bin/

这里我们将之前克隆下来的东西里面的一些文件复制到了本地sublime的安装目录里

3. 运行

之后,我们来执行这条命令:

1
LD_PRELOAD=./libsublime-imfix.so subl

这条命令尝试启动sublime,如果启动成功后,我们尝试输入中文,如果可以输入中文,那么就成功了。

注意: 这里有一点需要注意,在我使用的过程中,每当sublime需要比较大的更新时(就是需要从官网上重新下载然后安装下),都需要重新配置,已解决中文输入问题。

今天因为更新了下sublime,所以我打开并配置完sublime后,并没有成功,所以只能接着想办法了。

4. 问题修复

通过寻找,我找到了另外一个方法来修复这个问题

  1. 首先,我们先来更新并升级一下系统,因为较新的系统可能会解决很多可能出现的问题

执行:

1
$ sudo apt-get update && sudo apt-get upgrade
  1. 安装C/C++的编译环境和gtk libgtk2.0-dev
1
2
$ sudo apt-get install build-essential
$ sudo apt-get install libgtk2.0-dev
  1. 编译共享内库

这里在之前克隆的文件目录内,执行即可

1
$ gcc -shared -o lib/libsublime-imfix.so src/sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
  1. 将libsublime-imfix.so(之前克隆仓库中的一个文件)移动到/usr/lib/
1
$ sudo mv libsublime-imfix.so /usr/lib/
  1. 再次启动sublime

这次我们通过如下命令来启动

1
$ LD_PRELOAD=/usr/lib/libsublime-imfix.so subl
  1. 这样子在命令行中输入明显很麻烦,所以我们可以新建一个shell脚本来简化操作

在sublime中新建已个文件,输入:

1
2
#!/bin/bash
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so subl

(资料中这里是这样写的,我试了一下,这样也是可以完成的,不过会报错,但是为了配合之前的更改,这里还需做调整)

然后将文件另存为sublime(注意:无后缀),然后放到/home文件夹中。

之后,我们只需要在终端中输入

1
$ bash ~/sublime

就可以启动了。

不需要输入中文的话,就按原来的方式打开就好。需要输入中文,还是要用命令来打开。

(可能还有一些部分没有说到,之后继续添加)

sublime 更换Iosevka字体

这几天看到了一个叫做Iosevka字体,感觉很好看,所以撸下来,做了系统默认字体和sublime的默认字体

1. 首先,我们需要下载Iosevka字体到本地

当前环境: ubuntu 16.04
当前sublime版本: 3126

项目地址:
https://github.com/be5invis/Iosevka
字体下载地址:
https://be5invis.github.io/Iosevka/inziu.html

2. 解压文件并安装

解压压缩文件后,我们可以看到很多字体文件(.ttf),这里我们选择一个喜欢的,双击,就可以预览到字体中英文数字的一些样例示范了。

预览时可以看到右上角有一个安装按钮,点击,这个字体文件就被安装了。

但是,这里还没有完,我们还需要继续进行设置。

  1. 首先,我们将选中的字体文件拷贝出来,放到桌面或者/home文件夹下都可以。

  2. 执行命令,将字体文件拷贝到/usr/share/fonts/文件夹下
    (这里以在/home文件夹下为例, *代表你所选择的那个字体的名称)

    1
    $ sudo cp /home/*.ttf /usr/share/fonts/
  3. 开始安装

1
2
3
4
$ cd /usr/share/fonts/
$ sudo mkfontscale
$ sudo mkfontdir
$ sudo fc-cache -fv

简单说下几条命令:

  • 首先进入/usr/share/fonts目录下
  • 创建字体的fonts.scale文件,它用来控制字体旋转缩放
  • 创建字体的font.dir文件,它用来控制字体的粗斜体产生
  • 最后,建立字体缓存信息,也就是让系统认识此字体

3. 修改系统默认字体

这里我们需要安装一个ubuntu个性化调节工具unity-tweak-tool

此工具可以自定义ubuntu的外观等配置,在更换主题时也会用到。

程序安装:

1
2
$ sudo apt-get install unity-tweak-tool
$ sudo apt-get update && sudo apt-get upgrade

安装后,我们在dash菜单的搜索中可以找到unity-tweak-tool这个工具,打开,看到字体一项,点击就可以设置刚才安装的字体了。

这个时候就应该能看到字体已经应用到系统上了

4. 修改sublime默认字体

因为sublime有了较大的改动,所以设置也需要变化。

原来sublime修改字体设置的地方在Preferences->Settings-User, 而现在更新后,已经没有这个选项了,出现了三个新的设置选项SettingsSettings-Syntax Specific以及Settings-Distraction Free

修改字体,我们需要设置前两个选项

选项点击后会弹出设置文件,我们只需要在配置文件中添加(*代表你所选择的那个字体的名称)

1
"font_face": "*"

此时,sublime字体应该已经更换了。

注意: 我在设置这个字体的时候,去除了字体名称后的Regular字样才使字体设置成功,如果设置字体没有成功的话尝试修改字体名称

再次注意: 还有一个问题,就是当前为了修复在ubuntu环境下sublime无法输入中文的问题,会导致一些额外的问题,暂时可能无法避免,只能静等作者修复了。我尝试以能输入中文的状态打开sublime,但是发现字体没有改变过来,在此环境下,再次设置字体可能会导致sublime崩溃。

(可能有一些没有说清楚的地方,后续将继续改进……)


2016年10月3日

最近几天突然发现,sublime设置完字体之后,只有在JavaScript文件里才会显示之前设置的字体,其他例如HTML文件字体均没有改变。通过思索与尝试,想了一个办法:

  • sublime进入preferences
  • 选择Browse Packages
  • 进入User文件夹
  • 创建HTML.sublime-settings文件
  • 在文件增加font-face字段,并设置字体

在打开sublime就可以看到HTML文件已经变成了新的字体了。


参考

解决Ubuntu下Sublime Text 3无法输入中文:
http://www.jianshu.com/p/bf05fb3a4709
sublime-text-imfix:
https://github.com/lyfeyaj/sublime-text-imfix
sublime2-fcitx-fix:
https://github.com/pavelhurt/sublime2-fcitx-fix
Iosevka:
https://github.com/be5invis/Iosevka
ubuntu下安装字体并切换字体
https://my.oschina.net/itblog/blog/278566