fish好用,谁赞成,谁反对?
从大一暑假刚刚开始接触linux开始,我就一直用的是fish, 最近在用服务器的时候,服务器只有zsh没有fish,我也使用了一段时间的zsh,也给自己的电脑配置了一下zsh(mac默认的shell就是zsh,可是我一直没有配置)。两者比较下来,我还是觉得fish是最好用的shell,没有之一。
fish的优点
开箱即用,使用一条命令即可完成安装,不需要额外的配置:
1
2sudo apt install fish # linux
homebrew install fish # mac当然fish也可以使用Oh My Fish自定义主题,但是我感觉自带的主题已经很清晰好看了。
智能的自动补全:zsh安装
autosuggestions
插件之后,也可以实现类似的功能,但是zsh的自动补全更像是根据历史命令来补全,并不关心上下文,而fish的自动补全是基于上下文的,在不同的位置会有不同的补全;而且 fish 还会自动解析 man page,智能补全命令。速度快,相比于配置多种多样插件的zsh来讲,fish的速度更快
fish广为诟病的缺点:不兼容bash!
这确实是fish相比zsh的非常严重的不足之处,每当遇到比较复杂的bash命令时,需要输入bash
先回到bash,再执行bash命令。但是,我觉得这个问题并不是很严重,因为我在使用fish的时候,基本上都是在做一些简单的操作,比如cd
,git
,scp
等,在执行这些命令的时候,智能的自动补全对于我来说是比较重要的;对于比较复杂的操作,通常会写成一个shell脚本,直接使用bash环境执行,
zsh的配置
我也使用了一段时间的zsh,在这里简单分享一下我最简版的zsh配置(出于速度考虑,这里全部使用的是gitee上的镜像仓库):
Oh my zsh安装
第一步 → 把 oh-my-zsh 项目 Clone 下来:
1 | git clone https://gitee.com/mirrors/oh-my-zsh.git ~/.oh-my-zsh |
第二步 → 复制 .zshrc
1 | cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc |
第三步 → 更改你的默认 Shell
1 | chsh -s /bin/zsh |
自动补全插件
1 | git clone https://gitee.com/xiaoqqya/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions |
编辑~/.zshrc
Add the plugin to the list of plugins for Oh My Zsh to load (inside ~/.zshrc
):
1 | plugins=( |
Start a new terminal session.
语法高亮插件
1 | git clone https://gitee.com/mirror-hub/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
和上面的步骤一样
1 | plugins=( [plugins...] zsh-syntax-highlighting) |
字体主题:
如果你和我一样不知道使用什么主题的话,可以先用一段时间的random
,每次打开终端都会随机选择一个主题,直到你找到一个你喜欢的主题为止。
也可以参考一下这个主题列表
现在我使用的是这个主题:af-magic