【zsh】zsh의 동작이 매회 6초도 걸렸기 때문에.zshrc로부터 범인을 찾아 고속화했다

4534 단어 Zsh

소개



최근에 zsh의 움직임이 느리고 명령을 입력하지 않고 개행하는 것만 하면 6초도 걸렸기 때문에 개선했습니다.

이 기사가 도움이 되는 분


  • zsh의 모사리 감 함파 없다고 느끼고있는 분

  • 이 기사의 장점


  • zsh가 빨라진다 (동일한 코드가 있다면)

  • 환경


  • macOS Catalina 10.15.1
  • zsh: 5.7.1

  • 【전제】:베이스로 한 파일



    언제부터 무거워졌는지 생각해 보면 마음이 쏟아졌습니다.

    보완 기능을 강화하려고 이 기사에 있는 코드를 복사해, 거기에 자신의 설정을 덧붙이도록 변경했습니다만, 분명히 그때 모사리감이.

    보완이 너무 효과적인 zsh 설정을 공개해 본다. - Qiita

    ※이쪽의 기사의 코드 자체가 나쁜 것은 아니고, 자신의 환경·설정에 맞지 않았다고 생각하고 있습니다.

    【결론】 : vcs_info 설정의 일부가 범인



    코멘트 아웃한 부분이 원인이었습니다.

    여기를 코멘트 아웃하면, 커멘드 입력 없음의 개행으로 비교하면 6초→연타해도 스트레스 없음(아마 0.3초 이하)에 개선!

    ~.zshrc
    ## vcs_info の設定
    autoload -Uz vcs_info
    zstyle ':vcs_info:*' enable git svn hg
    zstyle ':vcs_info:*' formats '(%s)[%b] '
    zstyle ':vcs_info:*' actionformats '(%s)[%b|%a] '
    zstyle ':vcs_info:svn:*' branchformat '%b:r%r'
    # precmd () {
    #     psvar=()
    #     LANG=en_US.UTF-8 vcs_info
    #     [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"
    #
    #     [[ -t 1 ]] || return
    #     [ $EMACS ] && return
    #     case $TERM in
    #       *xterm*|rxvt|(dt|k|E)term)
    #       print -Pn "\e]2;localhost\a"
    #       ;;
    #     esac
    # }
    if is-at-least 4.3.10; then
      zstyle ':vcs_info:git:*' check-for-changes true
      zstyle ':vcs_info:git:*' stagedstr "+"
      zstyle ':vcs_info:git:*' unstagedstr "-"
      zstyle ':vcs_info:git:*' formats '(%s)[%b]%c%u'
      zstyle ':vcs_info:git:*' actionformats '(%s)[%b|%a]%c%u'
    fi
    # function _update_vcs_info_msg() {
    #     psvar=()
    #     LANG=en_US.UTF-8 vcs_info
    #     [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"
    # }
    # add-zsh-hook precmd _update_vcs_info_msg
    zstyle ':vcs_info:bzr:*' use-simple true
    
    function toon {
      echo -n " "
    }
    

    게다가 vcs_info 의 기능은 powerlevel10k 로 탑재하고 있었으므로 최종적으로는 이 설정 전체를 삭제하는 것으로 대응 완료했습니다.

    결론



    끝까지 읽어 주셔서 감사합니다

    이번은 생각도 하지 않고 우선 copipe 해 버렸으므로 반성입니다.
    zsh가 느리면 스트레스 반단이 없기 때문에 쓸데없이 기능이 너무 추가하지 않으면 간에 명명됩니다

    시간의 형편상, 이번은 왜 6초도 늦어졌는지를 조사할 때까지는 되어 있지 않습니다만, 또 다음 모사리하면 조사하려고 생각합니다

    참고로 한 사이트 (항상 감사합니다)


  • zsh의 터미널에 리포지토리의 정보를 표시해 봅니다 · 사과의 저택
  • 보완이 너무 효과적인 zsh 설정을 공개해 본다. - Qiita
  • 좋은 웹페이지 즐겨찾기