mcpField
C
configuring-ghostty-vibe-stack

configuring-ghostty-vibe-stack

github.com/psylch开发865 次安装36 周前更新
代码仓库

关于 configuring-ghostty-vibe-stack

configuring-ghostty-vibe-stack 是一项分步配置技能,用于在 Apple Silicon Mac 上搭建终端式 AI 编码环境。它指导安装和配置 Ghostty、Fish、Neovim 及相关命令行工具,并包含检查、备份和回滚步骤。

主要功能

  1. 01检查 macOS 与 Apple Silicon 前置条件
  2. 02通过 Homebrew 安装 Ghostty 和命令行工具
  3. 03配置 Ghostty、Fish 及实用应用
  4. 04验证配置语法与设置
  5. 05备份现有配置并提供回滚步骤
  6. 06提供中日韩或拉丁字体方案

适用场景

  1. 01在新 Mac 上搭建终端式编码环境
  2. 02配置 Ghostty 和 Fish 的偏好
  3. 03将 Neovim 与 LazyVim 加入工作流
  4. 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.md
ghostty-config.md
lazygit-config.md
set-default-terminal.md
yazi-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"

向用户概述已安装和配置的内容,并附上以下速查表。

速查表

别名命令
yyazi(文件管理器)
yyyazi,退出时切换目录
lglazygit
vnvim
ccclaude
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 作为登录 shellchsh -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

评论

支持 Markdown