macbook 终端使用 oh-my-zsh 主题后输入卡顿解决方案

表现形式:

终端 输入命令,超过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

你可能感兴趣的:(macbook 终端使用 oh-my-zsh 主题后输入卡顿解决方案)