前言
最近这两天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 | $ cd sublime-text-imfix |
这里我们将之前克隆下来的东西里面的一些文件复制到了本地sublime的安装目录里
3. 运行
之后,我们来执行这条命令:
1 | LD_PRELOAD=./libsublime-imfix.so subl |
这条命令尝试启动sublime,如果启动成功后,我们尝试输入中文,如果可以输入中文,那么就成功了。
注意: 这里有一点需要注意,在我使用的过程中,每当sublime需要比较大的更新时(就是需要从官网上重新下载然后安装下),都需要重新配置,已解决中文输入问题。
今天因为更新了下sublime,所以我打开并配置完sublime后,并没有成功,所以只能接着想办法了。
4. 问题修复
通过寻找,我找到了另外一个方法来修复这个问题
- 首先,我们先来更新并升级一下系统,因为较新的系统可能会解决很多可能出现的问题
执行:
1 | $ sudo apt-get update && sudo apt-get upgrade |
- 安装C/C++的编译环境和gtk libgtk2.0-dev
1 | $ sudo apt-get install build-essential |
- 编译共享内库
这里在之前克隆的文件目录内,执行即可
1 | $ gcc -shared -o lib/libsublime-imfix.so src/sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC |
- 将libsublime-imfix.so(之前克隆仓库中的一个文件)移动到/usr/lib/
1 | $ sudo mv libsublime-imfix.so /usr/lib/ |
- 再次启动sublime
这次我们通过如下命令来启动
1 | $ LD_PRELOAD=/usr/lib/libsublime-imfix.so subl |
- 这样子在命令行中输入明显很麻烦,所以我们可以新建一个shell脚本来简化操作
在sublime中新建已个文件,输入:
1 | #!/bin/bash |
(资料中这里是这样写的,我试了一下,这样也是可以完成的,不过会报错,但是为了配合之前的更改,这里还需做调整)
然后将文件另存为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),这里我们选择一个喜欢的,双击,就可以预览到字体中英文数字的一些样例示范了。
预览时可以看到右上角有一个安装按钮,点击,这个字体文件就被安装了。
但是,这里还没有完,我们还需要继续进行设置。
首先,我们将选中的字体文件拷贝出来,放到桌面或者
/home
文件夹下都可以。执行命令,将字体文件拷贝到
/usr/share/fonts/
文件夹下
(这里以在/home
文件夹下为例,*
代表你所选择的那个字体的名称)1
$ sudo cp /home/*.ttf /usr/share/fonts/
开始安装
1 | $ cd /usr/share/fonts/ |
简单说下几条命令:
- 首先进入
/usr/share/fonts
目录下 - 创建字体的
fonts.scale
文件,它用来控制字体旋转缩放 - 创建字体的
font.dir
文件,它用来控制字体的粗斜体产生 - 最后,建立字体缓存信息,也就是让系统认识此字体
3. 修改系统默认字体
这里我们需要安装一个ubuntu个性化调节工具unity-tweak-tool
此工具可以自定义ubuntu的外观等配置,在更换主题时也会用到。
程序安装:
1 | $ sudo apt-get install unity-tweak-tool |
安装后,我们在dash菜单的搜索中可以找到unity-tweak-tool
这个工具,打开,看到字体一项,点击就可以设置刚才安装的字体了。
这个时候就应该能看到字体已经应用到系统上了
4. 修改sublime默认字体
因为sublime有了较大的改动,所以设置也需要变化。
原来sublime修改字体设置的地方在Preferences->Settings-User
, 而现在更新后,已经没有这个选项了,出现了三个新的设置选项Settings
、Settings-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