zsh 有某种诊断模式吗?

zsh 有某种诊断模式吗?

我在基于 的 zsh 配置中遇到一些问题oh-my-zsh,我已在以下位置进行了描述终端中的物理缓冲区与 oh-my-zsh 配置中的显示不一致

我需要知道是否存在某种日志记录模式zsh可以生成一些有关实时发生的情况的信息。

另一件事是当前配置的打印,更有知识的人可以使用它来跟踪问题。我所说的配置并不只是指我的配置文件的内容,而是更多一些可以帮助诊断的运行时状态相关信息。

答案1

您有多种选择。

首先,您可以setopt xtraceset -x获取当前 shell 中所有调用的跟踪信息,或使用zsh -x该选项集启动一个新 shell。这会生成很多不过,调试信息。另外,它甚至可能不包括您感兴趣的所有内容。

如果您更具体地知道要查找的内容,则可以用于functions -t <function name>要跟踪的特定函数。

但是,我发现跟踪任何.zshrc配置中的问题的最可靠方法是执行以下操作:

cd "$( mktemp -d )"
ZDOTDIR=$PWD HOME=$PWD zsh -df

这将创建一个临时文件夹并启动一个没有任何配置文件的新子 shell,其配置和主目录设置为临时文件夹。

然后,您可以将相关行.zshrc粘贴到子 shell 中,逐一执行,直到找到问题开始出现的点。

相关内容