关于 configuring-ghostty-vibe-stack
configuring-ghostty-vibe-stack 是一项分步配置技能,用于在 Apple Silicon Mac 上搭建终端式 AI 编码环境。它指导安装和配置 Ghostty、Fish、Neovim 及相关命令行工具,并包含检查、备份和回滚步骤。
主要功能
- 01检查 macOS 与 Apple Silicon 前置条件
- 02通过 Homebrew 安装 Ghostty 和命令行工具
- 03配置 Ghostty、Fish 及实用应用
- 04验证配置语法与设置
- 05备份现有配置并提供回滚步骤
- 06提供中日韩或拉丁字体方案
适用场景
- 01在新 Mac 上搭建终端式编码环境
- 02配置 Ghostty 和 Fish 的偏好
- 03将 Neovim 与 LazyVim 加入工作流
- 04配置出错后恢复或撤销更改
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ psylch/ ghostty-vibe-coding-stack --skill configuring-ghostty-vibe-stack安装后在 Claude Code 中输入/configuring-ghostty-vibe-stack确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/fish-config.mdghostty-config.mdlazygit-config.mdset-default-terminal.mdyazi-config.md详细介绍
语言
匹配用户的语言:使用用户所用的语言进行回复。
Ghostty Vibe Coding 技术栈
适用于 macOS(Apple Silicon)的完整终端式 AI 编码环境。使用轻量、可组合的工具替代笨重的 IDE,适用于 Claude Code / AI 辅助开发。
工作原理
按顺序完成以下步骤。如果工具已安装,请跳过相应步骤。
复制此清单并跟踪进度:
Setup Progress:
- [ ] Step 1: Pre-flight checks
- [ ] Step 2: Install Ghostty
- [ ] Step 3: Install CLI tools
- [ ] Step 4: Install fonts
- [ ] Step 5: Configure Ghostty
- [ ] Step 6: Configure Fish shell
- [ ] Step 7: Install Fish plugins
- [ ] Step 8: Configure lazygit
- [ ] Step 9: Configure yazi
- [ ] Step 10: Install Neovim + LazyVim
- [ ] Step 11: Set Ghostty as default terminal
- [ ] Step 12: Validate and verify
第 1 步:准备检查
开始之前,确认先决条件:
# Check macOS and architecture
uname -m # expect: arm64
sw_vers --productVersion # expect: 13.0+
# Check Homebrew
brew --version || echo "Homebrew not installed — install from https://brew.sh"
如果未安装 Homebrew,请安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
检查已安装的内容,以跳过重复步骤:
for cmd in ghostty fish yazi lazygit nvim fzf zoxide atuin fd rg bat delta; do
printf "%-10s: " "$cmd"
which $cmd 2>/dev/null || echo "not installed"
done
使用此表处理缺少的项目:
| 检查项 | 解决方法 |
|---|---|
| 未安装 Homebrew | 运行上方的安装脚本 |
未找到 ghostty | 第 2 步:brew install --cask ghostty |
| 未找到任何 CLI 工具 | 第 3 步:brew install <tool>(所有工具会一并安装) |
| 架构不是 arm64 | 此技能面向 Apple Silicon;部分工具在 Intel Mac 上可能存在兼容性问题 |
第 2 步:安装 Ghostty
检查是否已安装 Ghostty:
ls /Applications/Ghostty.app 2>/dev/null && echo "Ghostty installed" || echo "Not installed"
如果尚未安装:
brew install --cask ghostty
第 3 步:安装 CLI 工具
使用一条命令安装所有工具(已安装的工具会自动跳过):
brew install fish yazi lazygit neovim fzf zoxide atuin fd ripgrep bat git-delta
第 4 步:安装字体
安装前,询问用户偏好的字体设置:
选项 A:针对 CJK 优化(推荐中文/日文/韩文用户)
brew install --cask font-maple-mono-nf-cn font-sarasa-gothic font-jetbrains-mono-nerd-font
选项 B:仅 Latin(以英语为主的用户)
brew install --cask font-jetbrains-mono-nerd-font
第 5 步:配置 Ghostty
从 references/ghostty-config.md 读取完整的配置模板。
写入前,询问用户的偏好:
- 主题:运行
ghostty +list-themes查看选项。常见选择:Monokai Vivid、Rose Pine、TokyoNight Storm、Catppuccin Mocha - 透明度:是否启用背景不透明度(部分用户更喜欢完全不透明)
- 字体大小:默认值为 15,可根据显示屏调整
写入前检查配置是否已存在:
mkdir -p ~/.config/ghostty
ls ~/.config/ghostty/config 2>/dev/null && echo "Config exists" || echo "No config"
如果配置已存在:显示当前内容,并询问用户:
- (A) 备份并替换:先运行
cp ~/.config/ghostty/config ~/.config/ghostty/config.backup.$(date +%s),然后写入新配置 - (B) 跳过:保留现有配置
- (C) 显示差异并合并:显示差异,让用户决定如何处理各部分
写入后,务必进行验证:
ghostty +validate-config
如果验证显示主题错误,主题名称可能需要使用准确的大小写。运行 ghostty +list-themes | grep -i <name> 检查。
第 6 步:配置 Fish Shell
从 references/fish-config.md 读取完整的配置模板。
询问用户是否要将 Fish 注册为登录 Shell。说明这意味着:
- Fish 会作为登录 Shell 选项显示在
chsh中 - 修改
/etc/shells需要使用sudo - 除非用户之后明确运行
chsh -s $(which fish),否则当前 Shell 仍是默认 Shell
如果用户同意,请注册 Fish:
grep -q "$(which fish)" /etc/shells || echo "$(which fish)" | sudo tee -a /etc/shells
不要自动运行 chsh。 只有在用户询问如何将 Fish 设为默认 Shell 时,才将其作为可选的后续步骤提及。
写入前检查配置是否已存在:
mkdir -p ~/.config/fish/{completions,conf.d,functions}
ls ~/.config/fish/config.fish 2>/dev/null && echo "Config exists" || echo "No config"
如果配置已存在:显示当前内容,并询问用户:
- (A) 备份并替换:先运行
cp ~/.config/fish/config.fish ~/.config/fish/config.fish.backup.$(date +%s),然后写入新配置 - (B) 跳过:保留现有配置
- (C) 显示差异并合并:显示差异,逐部分合并。幂等性检查:添加初始化行(
fzf --fish | source、zoxide init fish | source、atuin init fish | source)或别名之前,先在现有文件中使用 grep 搜索,避免重复添加。
写入配置后,验证 Fish 能否解析配置:
fish -n ~/.config/fish/config.fish && echo "Fish config syntax OK" || echo "Fish config has syntax errors"
如果发现语法错误,请显示错误输出,并在继续之前修复配置。
将现有 Shell 历史记录导入 atuin:
fish -c "atuin import auto"
第 7 步:安装 Fish 插件
检查是否已安装 Fisher(插件管理器):
fish -c "type fisher" 2>/dev/null || fish -c "curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher"
安装 Tide 提示词:
fish -c "fisher install IlanCosman/tide@v6"
步骤 8:配置 lazygit
阅读 references/lazygit-config.md 中的完整配置模板。
该参考文件包含 Monokai、TokyoNight 和 Rose Pine 的配色主题。将 lazygit 主题与用户在步骤 5 中选择的 Ghostty 主题匹配。
写入前检查配置是否已存在:
mkdir -p ~/.config/lazygit
ls ~/.config/lazygit/config.yml 2>/dev/null && echo "Config exists" || echo "No config"
如果配置已存在:显示当前内容,并询问用户:
- (A) 备份并替换:先运行
cp ~/.config/lazygit/config.yml ~/.config/lazygit/config.yml.backup.$(date +%s),然后写入新配置 - (B) 跳过:保留现有配置
- (C) 显示差异并合并:显示差异,让用户决定是否逐节合并
写入后,使用 lazygit 验证 YAML 是否可解析:
lazygit -c ~/.config/lazygit/config.yml --version && echo "lazygit config OK" || echo "lazygit config may have issues"
如果 lazygit 尚不可用,使用以下命令验证 YAML 语法:
python3 -c "import yaml; yaml.safe_load(open('$HOME/.config/lazygit/config.yml'))" && echo "YAML syntax OK" || echo "YAML syntax error"
步骤 9:配置 yazi
阅读 references/yazi-config.md 中的完整配置模板。
写入前检查配置是否已存在:
mkdir -p ~/.config/yazi
ls ~/.config/yazi/yazi.toml 2>/dev/null && echo "Config exists" || echo "No config"
如果配置已存在:显示当前内容,并询问用户:
- (A) 备份并替换:先运行
cp ~/.config/yazi/yazi.toml ~/.config/yazi/yazi.toml.backup.$(date +%s),然后写入新配置 - (B) 跳过:保留现有配置
- (C) 显示差异并合并:显示差异,让用户决定是否逐节合并
写入后,验证 TOML 是否可解析:
python3 -c "import tomllib; tomllib.load(open('$HOME/.config/yazi/yazi.toml', 'rb'))" && echo "yazi config OK" || echo "TOML syntax error"
步骤 10:安装 Neovim + LazyVim
检查 nvim 配置是否已存在:
ls ~/.config/nvim/init.lua 2>/dev/null && echo "Nvim config exists" || echo "No config"
如果配置已存在,询问用户:
- (A) 备份并替换:先运行
cp -r ~/.config/nvim ~/.config/nvim.backup.$(date +%s),然后克隆全新配置 - (B) 跳过:保留现有 Neovim 配置
如果配置不存在(或用户选择 A),先克隆到临时目录,避免克隆失败时破坏现有配置:
NVIM_TMP=$(mktemp -d)
git clone https://github.com/LazyVim/starter "$NVIM_TMP/nvim" && rm -rf "$NVIM_TMP/nvim/.git"
只有在克隆成功后才替换配置:
rm -rf ~/.config/nvim
mv "$NVIM_TMP/nvim" ~/.config/nvim
rm -rf "$NVIM_TMP"
如果克隆失败,告知用户现有配置(或备份)未受影响,并建议在网络可用时重试。
告知用户:首次打开 nvim 时,LazyVim 会自动安装所有插件,请等待约 30 秒。
步骤 11:将 Ghostty 设为默认终端(可选)
询问用户是否希望 Ghostty 在 Finder 的“在终端中打开”中替代当前默认终端。
如果希望替换,请阅读 references/set-default-terminal.md 中的 Swift 辅助程序并运行。
步骤 12:验证和确认
运行最终验证:
echo "=== Tool Versions ==="
for cmd in fish yazi lazygit nvim fzf zoxide atuin fd rg bat delta; do
printf "%-10s: " "$cmd"
$cmd --version 2>&1 | head -1
done
echo ""
echo "=== Ghostty Config ==="
ghostty +validate-config 2>&1 || echo "Config OK (no output = no errors)"
echo ""
echo "=== Fish Shell ==="
fish -c "echo Fish is working"
向用户概述已安装和配置的内容,并附上以下速查表。
速查表
| 别名 | 命令 |
|---|---|
y | yazi(文件管理器) |
yy | yazi,退出时切换目录 |
lg | lazygit |
v | nvim |
cc | claude |
z <keyword> | zoxide 智能切换目录 |
| Ghostty 快捷键 | 操作 |
|---|---|
Cmd+D | 垂直分屏 |
Cmd+Shift+D | 水平分屏 |
Cmd+Alt+Arrow | 在分屏间导航 |
Ctrl+` | 快速终端(全局) |
| Fish 按键 | 操作 |
|---|---|
Tab | 接受自动建议 |
Alt+Tab | 接受一个单词 |
→ | 补全菜单 |
Ctrl+R | 搜索历史记录(atuin) |
恢复 / 回滚
如果新配置导致问题,请打开 Terminal.app(macOS 内置,始终可用),并运行相应的修复命令:
| 故障 | 修复方法 |
|---|---|
| Ghostty 无法启动或显示异常 | mv ~/.config/ghostty/config ~/.config/ghostty/config.broken — Ghostty 下次启动时会使用默认设置 |
| Fish shell 启动时出现问题 | mv ~/.config/fish/config.fish ~/.config/fish/config.fish.broken — Fish 将在不加载自定义配置的情况下启动 |
| 想要恢复使用 Fish 作为登录 shell | chsh -s /bin/zsh |
| 想要从 /etc/shells 中移除 Fish | `sudo sed -i '' '|/fish$ |
| lazygit 或 yazi 出现问题 | 删除配置文件(~/.config/lazygit/config.yml 或 ~/.config/yazi/yazi.toml)— 工具将恢复默认设置 |
| Neovim/LazyVim 出现问题 | rm -rf ~/.config/nvim — 如果有备份:cp -r ~/.config/nvim.backup.<timestamp> ~/.config/nvim |
任何带有 .backup.<timestamp> 的配置 | 使用 cp <file>.backup.<timestamp> <file> 恢复备份版本 |
故障排除
主题名称区分大小写,且空格必须完全匹配:
- 错误:
rose-pine、tokyo-night - 正确:
Rose Pine、TokyoNight Storm - 查看可用主题:
ghostty +list-themes - 验证配置:
ghostty +validate-config
Cmd+V 无法将图像粘贴到 Claude Code 中(Ghostty 的问题,讨论 #10117):
- 改用
Ctrl+V,或拖放图像文件
Fish 的按键绑定语法与 Zsh 不同:
- 错误:
bind -k right complete(-k是 zsh 语法) - 正确:
bind right complete - 还要覆盖原始转义序列:
bind \e\[C complete
中文文本过大或对齐异常:
- 将 CJK 字体添加为第一个
font-family条目 - 设置
adjust-cell-height = 20%
查看可用字体:ghostty +list-fonts
查看可用主题:ghostty +list-themes