zsh的自动完成辅助工具:oh-my-zsh
什么是Zsh
Zsh和bash一样,是一种Unix shell,但大多数Linux发行版本都默认使用bash shell。但Zsh有强大的自动补全参数、文件名、等功能和强大的自定义配置功能。
替换Mac的bash
Zsh虽然功能强大,但刚上手配置比较麻烦。别担心,Github已经有开源项目oh-my-zsh。按照官方的文档安装,非常简单。
一、使用curl自动安装
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
二、手动安装
1.使用git clone 项目
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
2.备份~/.zshrc文件
cp ~/.zshrc ~/.zshrc.orig
3.创建新的zsh配置文件
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
4.设置zsh为默认shell
chsh -s /bin/zsh
5.重启Terminal或新建一个Terminal就可以看到效果了
接下来配置适合自己Zsh
1.主题修改,我比较喜欢前面是$符号,所以选择了steeef这款主题
$ vim ~/.zshrc
配置文件里找到:
ZSH_THEME="robbyrussell"
修改为:
ZSH_THEME="steeef"
这里是官方提供的各种主题,有截图参考oh-my-zsh-themes
2.插件的选择,支持git、brew、vi、osx等插件,具体请查看这里oh-my-zsh-plugins
3.按两下tab会有惊喜,比如git
选择oh-my-zsh
oh-my-zsh是基于zsh的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。
在Github上找关于zsh的项目时发现的,试用了一下觉得很方便,不用像上面文章里面提到的那么复杂,配置一些插件的名称即可使用相应的功能。
官网:https://github.com/robbyrussell/oh-my-zsh
评价:https://github.com/robbyrussell/oh-my-zsh/wiki/Testimonials
截图欣赏(Git插件):
再来一个自动完成:
定义hash快速进入目录:
在~/.zshrc中定义:
hash -d blog="/home/henryyan/work/blog/henryyan.github.com"
安装oh-my-zsh
进入Github的oh-my-zsh主页 https://github.com/robbyrussell/oh-my-zsh ,在下面有详细的安装方式。
自定义主题
在 https://github.com/robbyrussell/oh-my-zsh/wiki/themes 里面有很多主题可以选择,安装后只需要修改~/.zshrc的ZSH_THEME为文件夹的名称即可。
使用截图的主题
刚刚的几个截图的主题是我基于robbyrussell修改的,添加了当前登录用户的名称和主机名称。
但是oh-my-zsh的作者太懒了,我在Github上Fork了项目然后提交我修改后的主题一直也没有合并,如果喜欢的话可以直接Clone我的oh-my-zsh分支,然后使用手动安装的方式安装oh-my-zsh;
手动安装完以后可以把当前的PATH变量设置到~/.zshrc中:
1 2 | echo "export PATH=$PATH" >> ~/.zshrc source ~/.zshrc |
修改主题:
1 | vi ~/.zshrc |
1 | source ~/.zshrc |
自己修改主题
如果提供的主题没有一个如意的(我就没有看中一个),你可以参考别人主题截图:https://github.com/robbyrussell /oh-my-zsh/wiki/themes 然后看一下对应的~/.oh-my-zsh/themes/foo 的源码,然后根据自己的需要自定义,最后再修改一下~/.zshrc的ZSH_THEME配置就可以了。
启用插件
在~/.oh-my-zsh/plugins/里面有很多插件可以选择启动,默认已经启用git插件,如果你像我一样是一个开发人员(Java),我的插件启用如下:
1 | plugins=(ant mvn svn git) |
Maven插件的截图
工欲善其事,必先利其器,享受zsh带给你的快捷吧。