zsh 的标准文件夹结构是什么?

What's the standard folder structure for zsh?

为了组织我的 zsh 自定义文件文件夹结构,zsh 有标准的文件夹结构吗?

我不是在谈论 Oh-My-Zsh 或任何其他框架,而是针对“vanilla”zsh 自定义文件。

从现在开始,我看到了这种文件夹结构:

~/.zsh/
      custom/
            plugins/
            themes/

~/.zsh/
      functions/
      themes/
      library/

谢谢

没有标准的文件夹结构。 Zsh 几乎可以让你以任何你喜欢的方式组织你的文件。不过有一些规则:

  • 默认在 $HOME 中查找 Zsh 点文件。通常,您唯一想要使用的 Zsh 点文件是 .zshrc.
  • 如果你想把你的 Zsh 点文件放在别处,那么你需要创建一个文件 ~/.zshenv 并在那里,将 $ZDOTDIR 分配给你想要保留其余部分的目录点文件。通常,您不应该在 ~/.zshenv.
  • 中添加任何其他内容
  • $HISTFILE 没有标准位置,但在 macOS 和 Debian 上,/etc/zshrc 将其设置为 ${ZDOTDIR:-$HOME}/.zsh_history
  • 功能(包括主题和完成)没有标准位置。相反,您添加到 $fpath 的任何目录都将被搜索以查找函数。 Zsh 文档中的示例将自定义函数(包括主题和完成)放在 ~/myfns~/myfuncs 中。

    Side note: By default, $fpath consists of /usr/local/share/zsh/site-functions, /usr/share/zsh/site-functions and /usr/share/zsh/<version>/functions. So, if you're a sysadmin and you have functions that you want to make available to all users of the system, you can put them in /usr/local/share/zsh/site-functions.

  • 完成转储文件默认保存到${ZDOTDIR:-$HOME}/.zcompdump。您可以使用 compinit -d <dumpfile>.
  • 更改此设置
  • 完成缓存文件默认保存到 ${ZDOTDIR:-$HOME}/.zcompcache/,但您可以用 zstyle ':completion:*' cache-path <dir> 更改此设置。
  • 插件不是 Zsh 的标准部分,因此根本没有标准位置。