从oh my zsh到oh my fish

为什么今天连发两篇文章呢?大概是想纪念一下四年一度的2.29吧(笑

起因

众所周知,shell有很多种,其中最常用的有bashzsh,而oh my zsh是基于zsh的一个拓展工具集,自从接触linux,我一直在使用zsh & oh my zsh。它易用,易拓展,但也有一个很大的缺点:太!慢!了!

想象你需要打开terminal切换到blog路径,运行terminal的瞬间,你开始输入命令,你希望看到的结果:

1
2
3
4
5
6
~
⟩ j blog
/home/jeasonlau/File/blog

~/File/blog

但实际的结果却是:

1
2
3
4
5
6
j ~
⟩ blog
unknown command : blog

~

惊不惊喜?意不意外?

在多次遭遇这种状况后,我实在无法忍受,开始了更换shell之路…

更换

曾经也听说过另一款著名的shellfish。在NEU lug群里吐槽zsh慢的时候,意外发现几位群友都在使用fish,于是决定更换。

搜索fish文档,发现arch系发行版可以直接安装,于是

1
sudo pacman -S fish

安装成功之后,使用

1
chsh -s /usr/local/bin/fish

将默认shell更换为fish。体验一番后感觉确实比zsh快了不少,同时原生支持命令高亮、命令建议等功能,不需要自己去手动配置,可以说是开箱即用了。

主题

更换成功之后,更重要的任务是换主题!秉持着(命令行不花里胡哨怎么行!)的基本原则,我开始搜索fish的主题推荐,虽然没有找到什么结果,但让我发现了另一个东西:oh my fish

它是一个类似oh my zsh的,对fish shell进行拓展的工具,具体来说包括插件和主题,于是参考文档进行安装:

1
curl -L https://get.oh-my.fish | fish

安装完成之后就可以在available themes里进行挑选啦,找到心仪的主题后只需要执行

1
omf install <theme name>

即可成功安装。


把全部主题看了一遍,顺便做一下主题推荐吧。

我个人喜欢的有四款:

  1. pure(慎用)

    该主题是我在zsh上使用的主题,也被移植到了fish上,但试用后发现其兼容并不好,总会出一些奇奇怪怪的问题,但因为日久生情,还是将其排在第一位吧。

  2. clearance

    另一款极简主题,实际使用效果和pure相差不多,只是截图显得比较丑。

  3. tomita

    截图很好看,但默认颜色与截图有部分不同,同时因为鱼标的颜色默认为浅黄,对亮色背景不够友好。(当然也可以自行修改配置文件来修改颜色)

  4. nai

    如果上面的是极简,这个就是极度极简,但麻雀虽小五脏俱全,简简单单反而有种别样的魅力。