表现形式:
终端 输入命令,超过5个字符就会有明显输入卡顿,粘贴一行长点的 install 命令需要等几分钟才能粘完,数秒才会蹦出一个字符,切换目录也很明显,导致命令行提交 git 特别慢,这也是我着重推荐工具的部分原因 ,之前从未想到过是主题的问题,故未能百度对方向,就这样用了半年。
先说原因:
mac 一般会装 iterm2 + oh-my-zsh 主题,增强功能的同时美化自带的黑白终端,该主题会和git耦合,也就是说,在某含有git配置文件的文件夹下打开终端,会显示分支名称,以及是否有修改,需要merge等等,显示这些信息需要实时遍历文件夹,在一些电脑上会引起明显卡顿,比如我的 2018款mac。
卡顿情况与项目大小和内嵌多少子库有关。
粘贴卡顿和该主题代码有关系,简单来说 模拟的输入粘贴如果被去掉,可能影响命令高亮插件,具体查看底部github链接。
进入目录卡顿解决方案:
第一种:保留显示git分支功能,仅禁用检测文件change功能
git config --add oh-my-zsh.hide-dirty 1 想改回来的话把 1 -> 0
第二种:禁用 oh-my-zsh 读取 git 信息 (强烈推荐)
git config --add oh-my-zsh.hide-status 1 想改回来的话把 1 -> 0
想用git工具可以使用 sourceTree 免费方便易用,还自带中文,再不济 vscode的 自带的 git 配合 gitLens 也很香。
粘贴命令卡顿解决方案:
问题表现为由粘贴的内容像是一个字符一个字符的手动快速敲入的,但是依然不如内容一下子上屏的速度快。其次还会出现粘贴的内容会覆盖原有命令行里的内容,在动画完成后才会调整为同时显示。
这里也包括将 Finder 中的目录拖动到 Zsh 中,目录路径出现的效果与粘贴内容一致。
将以下内容粘贴到 ~/.zshrc
配置文件中重启 Zsh 即可:
# This speeds up pasting w/ autosuggest
# https://github.com/zsh-users/zsh-autosuggestions/issues/238
pasteinit() {
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
}
pastefinish() {
zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish
参考github issue : https://github.com/zsh-users/zsh-autosuggestions/issues/238#issuecomment-389324292
网友评论