zoukankan      html  css  js  c++  java
  • 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后面到底是哪几个参数了。

    强大的目录自动跳转命令,会记忆你曾经进入过的目录,用模糊匹配快速进入你想要的目录。

    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带给你的快捷吧
    正因为当初对未来做了太多的憧憬,所以对现在的自己尤其失望。生命中曾经有过的所有灿烂,终究都需要用寂寞来偿还。
  • 相关阅读:
    项目需求分析
    对软件开发的感想
    趣拼图最后完成及总结
    UML用例图
    数据流图和数据流程图
    第三代迭代目标
    Scrum的三种角色划分及小组成员分工
    WBS Model
    团队开发—百科全书软件项目
    开发流程
  • 原文地址:https://www.cnblogs.com/candlia/p/11920122.html
Copyright © 2011-2022 走看看