将 zsh + prezto 配置移动到 dropbox

Move zsh + prezto configuration to dropbox

Many people like to move their bash profiles to a Dropbox folder so that they can have multiple machines with their same profile (usually, for those who have a custom and specific profile that they love). I would like to do the same thing with my zsh profile and Prezto 框架。

我在 /Users/me/Dropbox/Computer Preferences/zsh/ 中创建了一个 Dropbox 文件夹(我将在下文中将其称为 DBFolder),我想将我的 Prezto 配置存储在其中。

这是我所追求的过程:

  1. 我下载了 Prezto 并将下载的所有文件移动到 DBFolder
  2. 我为 {DBFolder}/.zprezto/runcoms/ 中的所有 z* 文件创建了一个符号链接,结果符号链接位于 ~/
  3. 我将这些行添加到我的 zshenv 文件中:

    export ZDOTDIR="$HOME/Dropbox/Computer Preferences/zsh" if [[ "$SHLVL" -eq 1 && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then source "${ZDOTDIR:-$HOME}/.zprofile" path = /Users/me/bin fi

我现在可以使用 Prezto 配置启动我的 zsh 配置文件。但是,我现在的问题是我的初始登录无法加载路径:

/Users/me/.zshenv:22: permission denied: /Users/me/bin
$ whoami
#=> me

我的问题是 - 当我清楚地登录(通过 $ whoami)在我的主目录中时,为什么我无法访问 /Users/me/bin

有问题的行是

path = /Users/me/bin

存在三个问题:

  1. $path是Zsh中的一个数组; $PATH 是 POSIX 兼容的标量。
  2. =中间有空格是语法错误; POSIX shell 中的赋值不应包含空格。
  3. $PATH 应该扩展而不是覆盖。

更正:

PATH=$HOME/bin:$PATH

path=($HOME/bin $path)

后者需要关闭ksharrays选项(默认关闭)。