Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@terufumi1122

【zsh】zshの動作が毎回6秒もかかっていたので.zshrcから犯人を見つけて高速化した

More than 1 year has passed since last update.

はじめに

最近やけに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で搭載していたので最終的にはこの設定全体を削除することで対応完了しました。

おわりに

最後まで読んで頂きありがとうございました:bow_tone1:

今回は考えもせずとりあえずコピペしてしまったので反省です。
zshが遅いとストレス半端ないので、無駄に機能は追加しすぎないと肝に銘じます:sweat_smile:

時間の都合上、今回はなぜ6秒も遅くなったのかを調べるまでは出来ていませんが、また次モッサリしたら調べようと思います:thinking:

参考にさせて頂いたサイト(いつもありがとうございます)

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
terufumi1122
ストックついでに「いいね!」もしてもらえると嬉しいです。 HTML/CSS/JavaScript/Vue.js/Ruby/Ruby on Rails/Java/Kotlin/Android

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?