为ZSH实现Fish Shell的效果

很久之前就见过同事用过Fish Shell,看到几个非常棒的特性和效果,比如下面两个特性就非常吸引我。

Fish Shell的炫酷

智能提示

语法高亮

Fish Shell智能提示语法高亮,是我觉得非常酷炫的功能,让我眼馋,为此我也试用过多次Fish Shell,但是每次都坚持不了多久,因为还是有很多地方不习惯:

  • 无插件系统,功能上还是比Oh My ZSH少了很多
  • 不兼容bash语法,导致我之前的很多脚本无法运行

Oh My ZSH才是我的真爱!

Oh My ZSH

那么问题来了,oh-my-zsh中有没有插件可以实现类似的功能?

我先是在oh-my-zsh官方插件库里找了一下,但是没找到,后来发现了这样一个项目:

zsh-users

上面的介绍说是:Zsh community projects,感觉是非官方的项目。

里面有两个插件:

  1. zsh-autosuggestions
  2. zsh-syntax-highlighting

安装插件

这两个插件安装起来非常简单。

创建一个目录。

mkdir -p ~/.zsh/plugins

clone这两个项目到刚刚创建的目录下。

git clone git://github.com/zsh-users/zsh-autosuggestions.git ~/.zsh/plugins/zsh-autosuggestions
git clone git@github.com:zsh-users/zsh-syntax-highlighting.git ~/.zsh/plugins/zsh-syntax-highlighting

设置.zshrc中的$ZSH_CUTOM变量

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
ZSH_CUSTOM=~/.zsh

添加插件配置

plugins=(zsh-autosuggestions zsh-syntax-highlighting)

最终效果图如下:

autosuggestions

途中可以看到git是绿色的,代表存在这个命令,如果打错了,它就是红色的:

color

一目了然,不用等出错了再去修正错误了。