zsh 소개 방법(.zshrc 사용자 정의 포함)

4887 단어 zshrcZsh리눅스
오랫동안 fish를 사용하고 있었습니다만, 기분 전환에 이번 zsh에 환승했습니다!
이번에는, zsh의 도입 방법과 .zshrc에 의한 zsh의 커스터마이즈에 관해서 기사로 해 갑니다.

이 기사의 설정으로 할 수있는 것


  • zsh의 강력한 보완 기능
  • fish와 같은 다음 구문 하이라이트
  • 문자 입력
  • LS시 디렉토리 파일

  • fish와 같은 입력 예측 기능
  • git 브랜치 이름의 구문 강조 표시
  • cd에서 디렉토리를 이동할 때 ls를 자동으로 실행

  • zsh 도입 방법



    brew 명령을 사용하여 zsh와 이번에 사용할 플러그인을 다운로드합니다.
    다음 명령을 실행합니다.
    $ brew install zsh
    
    $ brew install zsh-completions
    => 補完機能の強化プラグイン
    
    $ brew install zsh-autosuggestions
    => 入力の補完時の予測を影で表示してくれるプラグイン
    
    $ brew install zsh-syntax-highlighting
    => 入力をシンタックスハイライトしてくれるプラグイン
    

    위의 실행 후
    $ zsh
    

    에서 zsh를 시작하면
  • q
  • 0
  • 1

  • 위의 3택으로 입력을 듣기 때문에 0 를 선택해 enter( .zshrc 를 자동 생성해 준다)

    로그인 쉘 변경


    $ sudo vi /etc/shells
    Password:
    

    상기를 실행 한 후, 다음을 추가하여 저장
    /usr/local/bin/zsh
    


    chsh -s /usr/local/bin/zsh
    

    위를 실행하고 로그인 쉘을 변경

    .zshrc 편집



    지금까지의 설정으로 홈 디렉토리에 .zshrc 가 생성되고 있을 것입니다.
    vi .zshrc
    

    위를 실행하고 다음을 복사하여 저장
    #補間
    autoload -U compinit
    compinit
    #文字コード
    export LANG=ja_JP.UTF-8
    #プロンプト
    autoload -U colors
    colors
    
    #履歴
    #履歴を保存するファイル指定
    HISTFILE="$HOME/.zsh_history"
    #履歴の件数
    HISTSIZE=100000
    SAVEHIST=100000
    #重複した履歴を保存しない
    setopt hist_ignore_dups
    #履歴を共有する
    setopt share_history
    #先頭にスペースを入れると履歴に残さない
    setopt hist_ignore_space
    #履歴の検索
    autoload history-search-end
    zle -N history-beginning-search-backward-end history-search-end
    zle -N history-beginning-search-forward-end history-search-end
    bindkey "^P" history-beginning-search-backward-end
    bindkey "^N" history-beginning-search-forward-end 
    #cdの設定
    #ディレクトリ名だけで移動する。
    setopt auto_cd
    #自動でpushdする
    setopt auto_pushd
    #pushdの履歴は残さない。
    setopt pushd_ignore_dups
    #ターミナルのタイトル
    case "${TERM}" in
    kterm*|xterm)
        precmd() {
            echo -ne "\033]0;${USER}@${HOST}\007"
        }
        ;;
    esac 
    # コマンドミスを修正
    setopt correct
    # 補完の選択を楽にする
    zstyle ':completion:*' menu select
    # カレントディレクトリに候補がない場合のみ cdpath 上のディレクトリを候補に出す
    zstyle ':completion:*:cd:*' tag-order local-directories path-directories
    #cd は親ディレクトリからカレントディレクトリを選択しないので表示させないようにする (例: cd ../<TAB>):
    zstyle ':completion:*:cd:*' ignore-parents parent pwd
    # 補完候補をできるだけ詰めて表示する
    setopt list_packed
    #色の設定
    export LSCOLORS=Exfxcxdxbxegedabagacad
    # 補完時の色設定
    export LS_COLORS='di=01;34:ln=01;35:so=01;32:ex=01;31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
    autoload -U colors ; colors ; zstyle ':completion:*' list-colors "${LS_COLORS}"
    
    #alias
    case "${OSTYPE}" in
    freebsd*|darwin*)
      alias ls="ls -GF"
      ;;
    linux*)
      alias ls="ls -F --color"
      ;;
    esac
    #w3mでALC検索
    function alc() {
      if [ $# != 0 ]; then
        w3m "http://eow.alc.co.jp/$*/UTF-8/?ref=sa"
      else
        w3m "http://www.alc.co.jp/"
      fi
    }
    #cdを打ったら自動的にlsを打ってくれる関数
    function cd(){
        builtin cd $@ && ls;
    }
    #その他
    #キーバインド
    bindkey -e
    #ビープ音ならなさない
    setopt nobeep
    #エディタ
    export EDITOR=emacs
    #改行のない出力をプロンプトで上書きするのを防ぐ
    unsetopt promptcr
    #個別設定を読み込む
    [ -f ~/.zshrc.mine ] && source ~/.zshrc.mine
    source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
    source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
    # git設定
    autoload -Uz vcs_info
    setopt prompt_subst
    zstyle ':vcs_info:git:*' check-for-changes true
    zstyle ':vcs_info:git:*' stagedstr "%F{yellow}!"
    zstyle ':vcs_info:git:*' unstagedstr "%F{red}+"
    zstyle ':vcs_info:*' formats "%F{green}%c%u[%b]%f"
    zstyle ':vcs_info:*' actionformats '[%b|%a]'
    # -----------------------------
    # Prompt
    # -----------------------------
    # %M    ホスト名
    # %m    ホスト名
    # %d    カレントディレクトリ(フルパス)
    # %~    カレントディレクトリ(フルパス2)
    # %C    カレントディレクトリ(相対パス)
    # %c    カレントディレクトリ(相対パス)
    # %n    ユーザ名
    # %#    ユーザ種別
    # %?    直前のコマンドの戻り値
    # %D    日付(yy-mm-dd)
    # %W    日付(yy/mm/dd)
    # %w    日付(day dd)
    # %*    時間(hh:flag_mm:ss)
    # %T    時間(hh:mm)
    # %t    時間(hh:mm(am/pm))
    # PROMPT='[%n][%c]'\$vcs_info_msg_0_' $ '
    PROMPT='%B%F{32}~/%C%f'\$vcs_info_msg_0_' $ '
    #'di=01;34:ln=01;35:so=01;32:ex=01;31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
    precmd(){ vcs_info }
    
    

    상기 저장 후,
    source .zshrc
    

    로 설정을 반영한다.

    보충


    .zshrc 를 편집하여 자신의 취향에 맞게 zsh를 사용자 정의할 수 있습니다.

    ※ 신택스 하이라이트의 색이나, alias의 설정등도 만지면 보다 사용하기 쉬울지도 모릅니다.

    꼭 여러 가지 시도해보십시오.

    좋은 웹페이지 즐겨찾기