• shell终极操作


    1、安装zsh

     Mac : 直接看下一节

    Redhat/centos :sudo yum install zsh

    Ubuntu :sudo apt-get install zsh

    2、安装oh my zsh

    自动安装

       wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | 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

    接下来配置适合自己Zsh

        1.主题修改,我比较喜欢前面是$符号,所以选择了steeef这款主题

           $ vim ~/.zshrc

           配置文件里找到:

           ZSH_THEME="robbyrussell"

          修改为:

          ZSH_THEME="steeef"

    3、下载incr

    下载地址: http://mimosa-pudica.net/zsh-incremental.html

    为了防止该网址将来不能访问,因此我把代码摘录如下:

    # Incremental completion for zsh
    # by y.fujii <y-fujii at mimosa-pudica.net>, public domain
    
    
    autoload -U compinit
    zle -N self-insert self-insert-incr
    zle -N vi-cmd-mode-incr
    zle -N vi-backward-delete-char-incr
    zle -N backward-delete-char-incr
    zle -N expand-or-complete-prefix-incr
    compinit
    
    bindkey -M viins '^[' vi-cmd-mode-incr
    bindkey -M viins '^h' vi-backward-delete-char-incr
    bindkey -M viins '^?' vi-backward-delete-char-incr
    bindkey -M viins '^i' expand-or-complete-prefix-incr
    bindkey -M emacs '^h' backward-delete-char-incr
    bindkey -M emacs '^?' backward-delete-char-incr
    bindkey -M emacs '^i' expand-or-complete-prefix-incr
    
    unsetopt automenu
    compdef -d scp
    compdef -d tar
    compdef -d make
    compdef -d java
    compdef -d svn
    compdef -d cvs
    
    # TODO:
    #     cp dir/
    
    now_predict=0
    
    function limit-completion
    {
        if ((compstate[nmatches] <= 1)); then
            zle -M ""
        elif ((compstate[list_lines] > 6)); then
            compstate[list]=""
            zle -M "too many matches."
        fi
    }
    
    function correct-prediction
    {
        if ((now_predict == 1)); then
            if [[ "$BUFFER" != "$buffer_prd" ]] || ((CURSOR != cursor_org)); then
                now_predict=0
            fi
        fi
    }
    
    function remove-prediction
    {
        if ((now_predict == 1)); then
            BUFFER="$buffer_org"
            now_predict=0
        fi
    }
    
    function show-prediction
    {
        # assert(now_predict == 0)
        if
            ((PENDING == 0)) &&
            ((CURSOR > 1)) &&
            [[ "$PREBUFFER" == "" ]] &&
            [[ "$BUFFER[CURSOR]" != " " ]]
        then
            cursor_org="$CURSOR"
            buffer_org="$BUFFER"
            comppostfuncs=(limit-completion)
            zle complete-word
            cursor_prd="$CURSOR"
            buffer_prd="$BUFFER"
            if [[ "$buffer_org[1,cursor_org]" == "$buffer_prd[1,cursor_org]" ]]; then
                CURSOR="$cursor_org"
                if [[ "$buffer_org" != "$buffer_prd" ]] || ((cursor_org != cursor_prd)); then
                    now_predict=1
                fi
            else
                BUFFER="$buffer_org"
                CURSOR="$cursor_org"
            fi
            echo -n "e[32m"
        else
            zle -M ""
        fi
    }
    
    function preexec
    {
        echo -n "e[39m"
    }
    
    function vi-cmd-mode-incr
    {
        correct-prediction
        remove-prediction
        zle vi-cmd-mode
    }
    
    function self-insert-incr
    {
        correct-prediction
        remove-prediction
        if zle .self-insert; then
            show-prediction
        fi
    }
    
    function vi-backward-delete-char-incr
    {
        correct-prediction
        remove-prediction
        if zle vi-backward-delete-char; then
            show-prediction
        fi
    }
    
    function backward-delete-char-incr
    {
        correct-prediction
        remove-prediction
        if zle backward-delete-char; then
            show-prediction
        fi
    }
    
    function expand-or-complete-prefix-incr
    {
        correct-prediction
        if ((now_predict == 1)); then
            CURSOR="$cursor_prd"
            now_predict=0
            comppostfuncs=(limit-completion)
            zle list-choices
        else
            remove-prediction
            zle expand-or-complete-prefix
        fi
    }

    4、执行如下命令:

    cd ~/.oh-my-zsh/plugins/
    mkdir -p incr
    cd incr
    touch incr-0.2.zsh
    (将上面链接中的代码复制粘贴到incr-0.2.zsh文件中)
    chmod 777 incr-0.2.zsh

    5、配置 .zshrc 文件:

    vim ~/.zshrc

    末尾加入  

    source ~/.oh-my-zsh/plugins/incr/incr*.zsh

    6、 source ~/.zshrc     #使其立即生效

  • 相关阅读:
    处理不均衡数据 (Imbalanced data)
    过拟合 (Overfitting)
    加速神经网络训练 (Speed Up Training)
    Python3 S.join() 个人笔记
    OpenCV中的图像形态学转换
    OpenCV中的绘图函数
    OpenCV中图像的BGR格式及Img对象的属性说明
    OpenCV中图像的读取,显示与保存
    msyql-02
    jumpserver的快速部署
  • 原文地址:https://www.cnblogs.com/blueskycc/p/5602791.html
Copyright © 2020-2023  润新知