oh my zsh我以为挺好的7点

理由1:zsh 支持命令选项补全git

zsh 除了支持目录的补全,还支持命令选项的补全,例如 ls -<TAB><TAB> 会直接列出全部 ls 的参数,不再会出现一个命令打到一半,忘记参数致使重开一个 terminal man 一把。程序员

nine reasons to use zshweb


理由2:zsh 支持命令参数补全tomcat

之前想 kill 掉一个进程,个人作法是 ps aux | grep "进程名" 而后记下 id,再 kill id。在 zsh 下,只须要 kill 进程名<TAB>,zsh 就会自动补全进程的 pid。bash

nine reasons to use zshapp


其他我经常使用的补全还有:less

·ssh <TAB><TAB> 时 zsh 会自动列出你访问过的主机和用户名来补全 ssh 的参数。ssh

·brew install <TAB><TAB> 来补全软件包名,除了 homebrew 之外,一样支持 port/apt-get 等其余包管理器。curl


理由3:zsh 支持更加聪明的目录补全webapp

之前好比想进入一个比较深的目录,好比 /Users/pw/workspace/project/src/main/webapps/static/js,就得在 bash 下面打半天,不停的 tab 去补全一个正确的路径出来。在 zsh 下,只须要输入每一个路径的头字母而后 tab 一下: cd /u/p/w/p/s/m/w/s/j<TAB>


 理由4:zsh 强大的快速目录切换

之前最苦逼的事情莫过于频繁在两个工做目录下切换,总要打一长串 cd 路径。也尝试过 popd 和 pushd 来解决这个问题,但每每是目录已经切换了才想起来没用 pushd。而 zsh 会记住你每一次切换的路径,而后经过 1 来切换到你上一次访问的路径,2 切换到上上次……一直到 9,还能够经过 d 查看目录访问历史。

zsh 还能够配合 autojump 一块儿使用,autojump 会记录下每个你访问过的目录,而后经过 j 来快速跳转。


理由5:zsh 支持全局 alias 和后缀名 alias

bash 的 alias 只能作命令的缩写,而 zsh 更进一步,使 alias 能够缩写命令的一部分,例如参数或环境变量设置。

$ alias -s log=less

$ ~/package/tomcat/log/catalina.log 

# 至关于 less ~/package/tomcat/log/catalina.log

$ alias -g PR=http_proxy=127.0.0.1:$ PR curl https://twitter.com 

# 至关于 http_proxy=127.0.0.1:8087 curl https://twitter.com


理由6:zsh 有着丰富多彩的命令行提示符

bash 下经过设置 $PS1 已经能够实现很丰富的提示符了,而 zsh 更进一步,能够实现诸如多行提示符、提示符右对齐等功能。oh-my-zsh 配置文件中提供了很是丰富的提示符 theme 供选择,我使用的是 gentoo 主题,比较简洁,还能够显示当前 git 仓库的状态。


理由7:zsh 有更多优雅的语法


例如修改 PATH,bash 下设置 $PATH 要求全部路径都要写在一行里,目录多了之后看起来就很难看。zsh 支持更加符合程序员审美观的设置方式。

path=(

    ~/bin

    $path

    ~/package/smartsprites/bin

)

相关文章
相关标签/搜索