mcpField
C
configuring-zsh

configuring-zsh

github.com/bostonaholic开发268 次安装今天更新
代码仓库

关于 configuring-zsh

用于编辑和验证 dotfiles 中 zsh 启动配置的技能,面向维护 shell 环境的开发者。它说明文件放置、符号链接处理、别名安全和分场景验证方法。

主要功能

  1. 01选择合适的启动文件
  2. 02编辑 dotfiles 源文件而非链接
  3. 03检查别名冲突
  4. 04验证语法与 Shell 行为

适用场景

  1. 01向 zsh 添加变量、选项或插件
  2. 02避免别名干扰脚本或 Agent
  3. 03测试启动文件变更

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bostonaholic/skills --skill configuring-zsh

安装后在 Claude Code 中输入/configuring-zsh确认已加载。

附带文件agents/openai.yamlreferences/oh-my-zsh-plugin-layout.md

详细介绍

配置 zsh

编辑源文件,而不是符号链接

  • 启动文件通常位于 dotfiles 仓库中,并链接到 $HOME (或 $ZDOTDIR)下。
  • 请修改仓库中的文件,而不是链接:许多编辑器和写入工具会将符号链接替换为普通文件。
  • 在仓库创建链接的位置注册新的启动文件,并在运行其安装程序前先询问。
  • 如果仓库将 <name>.plugin.zsh 链接到 ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/<name>/,请遵循 oh-my-zsh 插件布局。

选择启动文件

  • .zprofile:用于 PATH、设置 PATH 的工具初始化(eval "$(brew shellenv)")以及程序变量(EDITOR)。不要放在 .zshenv 中:macOS path_helper 会将其中的条目移到系统路径之后。也不要放在 .zshrc 中:在交互式 shell 外启动的程序不会运行它。
  • .zshenv:用于每个 shell(包括脚本)都需要的变量,例如 ZDOTDIR、保护标记。保持快速且不输出内容。
  • .zshrc:用于 setopt、zstyle、提示符、框架和插件列表;在 compinit 之前添加 FPATH(使用 oh-my-zsh 时,在加载 oh-my-zsh.sh 之前);在 compinit 之后,或在自定义插件文件中,添加别名、函数、对应的 compdef 和交互式变量(LESS)。

添加别名或函数前,请检查已启用的插件是否已经定义了它:zsh -ic 'whence -v <name>'。

会遮蔽命令的别名

  • 替换标准命令(ls、cat、grep、rm、cd)的别名会破坏通过此配置调用 shell 命令的脚本和 Agent。
  • Agent 执行框架可能会重放从交互式 shell 中捕获的别名,因此仅检查交互状态并不能保护它们。
  • 如果配置中已有防止别名遮蔽命令的保护机制,请将新别名放在该机制之后。
  • 否则,添加前请先询问用户,并建议使用也会检查 CLAUDECODE 等 Agent 标记的保护机制。
  • 使用新名称的别名(lg、gti)无需保护机制。

验证

  1. 对每个已编辑文件运行 zsh -n <file>。
  2. 使用 zsh -c 验证 .zshenv 的更改,使用 zsh -lc 验证 .zprofile,使用 zsh -ic 验证 .zshrc 或插件。
  3. 对于带保护机制的别名,读取该机制检查的所有标记,然后确认所有标记均未设置时会打印定义 (env -u CLAUDECODE -u AI_AGENT zsh -ic 'alias <name>',每个标记使用一个 -u),并确认设置其中一个标记后别名会消失(CLAUDECODE=1 zsh -ic 'alias <name>')。

评论

支持 Markdown