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 -/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插件):

zsh的自动完成辅助工具:oh-my-zsh

再来一个自动完成:

zsh的自动完成辅助工具:oh-my-zsh

定义hash快速进入目录:

在~/.zshrc中定义:

hash -d blog="/home/henryyan/work/blog/henryyan.github.com"

zsh的自动完成辅助工具:oh-my-zsh

安装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
修改  ZSH_THEME 为kafeitu,
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的自动完成辅助工具:oh-my-zsh


官方插件一览:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins-Overview

插件安装方法

参考此处安装好 zsh 和 oh-my-zsh 后,打开文件~/.zshrc,其中有如下行:

plugins=(git)

将需要的插件按空格分开,放于此处即可。我的配置如下:

plugins=(git extract z sublime)

修改完后,如果需要在当前shell中生效,需要执行

source ~/.zshrc

git

oh-my-zsh 默认开启的插件,提供了大量 git 的alias。
详细列表请参见:
https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git。

extract

功能强大的解压插件,所有类型的文件解压一个命令x全搞定,再也不需要去记tar后面到底是哪几个参数了。

zsh自动完成辅助工具_第1张图片强大的目录自动跳转命令,会记忆你曾经进入过的目录,用模糊匹配快速进入你想要的目录。 zsh自动完成辅助工具_第2张图片

sublime

平时使用sublime比较多,该插件可以使用命令行打开sublime。
常用命令如下:

st          # 直接打开sublime
st file_a   # 用sublime打开文件 file
st dir_a    # 用sublime打开目录 dir
stt         # 在sublime打开当前目录,相当于 st .

各种命令自动补全插件

除上面各种常用的插件外,官方还提供了大量插件,大部分是针对某些功能的命令补全,如docker, python, pip, ruby, vagrant等。

虽然 oh-my-zsh 提供了很多插件,不过也不要贪多哦,大量的插件会拖慢打开的速度,因此只安装你常用的就好了。


安装zsh-syntax-highlighting插件

同样地,我们要先下载它的源码,但在这里,我们可以利用一下oh-my-zsh的插件管理功能:

    cd ~/.oh-my-zsh/custom/plugins
    git clone git://github.com/zsh-users/zsh-syntax-highlighting.git

然后,我们打开~/.zshrc文件,找到以下段落;

    # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
    # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
    # Example format: plugins=(rails git textmate ruby lighthouse)
    # Add wisely, as too many plugins slow down shell startup.
    plugins=(git)

按照注释中的提示改成plugins=(git zsh-syntax-highlighting)即可。

安装autojump插件。

同样地,我们需要先下载源码:

    git clone git://github.com/joelthelion/autojump.git 

然后安装该程序:

    cd autojump
    ./install.py

最后,我们只需在~/.zshrc文件中加入以下代码即可。

    # install autojump
    [[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

安装Powerline-Shell插件

其过程与autojump的安装基本相同,先下载源码:

    git clone https://github.com/milkbikis/powerline-shell

再安装:

    cd powerline-shell
    ./setup.py install 

最后再配置~/.zshrc文件,在其末尾加入如下代码:

# install powerline-shell
function powerline_precmd() {
    PS1="$(powerline-shell --shell zsh $?)"
}

function install_powerline_precmd() {
  for s in "${precmd_functions[@]}"; do
    if [ "$s" = "powerline_precmd" ]; then
      return
    fi
  done
  precmd_functions+=(powerline_precmd)
}

if [ "$TERM" != "linux" ]; then
    install_powerline_precmd
fi

然后在cygwin中,我们就看到如下最终效果:

zsh自动完成辅助工具_第3张图片


工欲善其事,必先利其器 ,享受zsh带给你的快捷吧

你可能感兴趣的:(linux-shell)