[Alan の手札] 如何把终端变成主力工作台:Ghostty、tmux、Neovim 到 Claude 一次打通

lxiol

原文链接:https://mp.weixin.qq.com/s/fX72qBTtFkt3q5vPhXIaTQ

如何把终端变成主力工作台:Ghostty、tmux、Neovim 到 Claude 一次打通

Miasma 终端工作流配置与改造说明

1. 背景

Tabby / Ghostty / Warp / Kaku / Cmux …… 甚至还有那个古老但始终绕不开的 iTerm。

这几年,终端来来回回折腾了不少。

有的 UI 很惊艳,有的功能很激进,有的把 AI、工作流、协作、分屏、插件全都堆了进去。
尤其到了现在,开始频繁配合 Claude Code、Codex、OpenCode 这些 CLI Agent 使用之后,终端已经不只是一个“跑命令”的地方了,它越来越像一个真正的工作空间。

可奇怪的是——

折腾一圈下来,始终没有哪个终端,能真正让我彻底停下来。

Warp 很现代,最近也开源了,但总觉得太“重”;
Tabby 很全能,但少了点气质;
iTerm 功能依旧恐怖,可年代感已经藏不住;
Kaku、Cmux 这些新东西也都试过,甚至一度觉得自己终于找到了答案。

但最后,打开最多、用得最顺手、真正形成肌肉记忆的,还是 Ghostty。

它不一定功能最多。
甚至很多地方还很“克制”。

但也正因为这种克制,它更像一个现代 Unix 终端该有的样子:

快、轻、安静、稳定。
不打扰你,但始终在那。

尤其配上 tmux、Neovim、Starship,再加上现在这些 AI CLI 工具之后,整个工作流开始慢慢有了点“理想终端”的味道。

所以准备再重新折腾一轮。

这次不再是单纯追求功能堆叠,
而是想认真整理一套:

真正适合 AI Coding 时代的终端工作流。

这次改造的目标,不是单独美化某一个工具,而是把终端开发环境整理成一套统一工作流:

  • Ghostty 负责终端外观与原生分屏
  • tmux 负责会话、窗格、工作区管理
  • Neovim 作为主力编辑器 / IDE
  • lazygit 作为 Git TUI
  • Yazi 作为终端文件管理器
  • btop 作为系统监控面板
  • Claude 作为 AI 辅助窗口
  • Starship 作为 prompt,但后续由用户自行维护,不再纳入本次托管范围

这套方案的核心思路是:统一主题、统一键位、统一入口、统一心智模型。打开终端后,尽量让“写代码、看 Git、跑命令、开 AI、看资源状态”都在一个操作体系里完成。

2. 目标

本次配置与整理主要解决 4 个问题:

  • 终端工具很多,但视觉与交互割裂
  • 分屏、切窗、开工具没有统一快捷键
  • 需要一套更偏 Vim / power-user 的操作方式
  • 需要把实施过程、文件路径、用途、优势与相关资料正式落盘

最终目标是形成一套可复用的 Miasma 风格终端工作流说明文档,并保留实际配置路径。

3. 本次落地的配置范围

注:starship 目前由用户自行维护,因此本文只记录它在整体工作流中的角色,不覆盖其最终配置内容。

组件

配置文件

本次状态

作用

Ghostty
~/.config/ghostty/config
已创建并精修

终端主题、字体、透明度、原生分屏快捷键

tmux
~/.tmux.conf
已创建

会话管理、窗格管理、工具入口

Neovim
~/.config/nvim/init.lua
已创建

最小启动入口

Neovim
~/.config/nvim/lua/config/lazy.lua
已创建
lazy.nvim
bootstrap

Neovim
~/.config/nvim/lua/plugins/miasma.lua
已创建

Miasma 主题插件加载

lazygit
~/.config/lazygit/config.yml
已创建

Git TUI 主题与编辑器设置

Yazi

无强制配置文件

已纳入文档

终端文件管理与文件预览

btop
~/.config/btop/themes/miasma.theme
已创建

btop 主题文件

btop
~/.config/btop/btop.conf
已创建

默认启用 miasma 主题

zsh
~/.zshrc
已增量修改
EDITOR
VISUAL / eza / bat / zoxide 接入

Starship
~/.config/starship.toml
用户自管

Prompt 统一入口,可选 Tokyo Night / Catppuccin 等预设

fastfetch / fzf / zoxide / helix

见各自默认路径

已纳入文档

辅助系统信息、路径跳转、模糊搜索与轻量编辑

4. 关键设计思路

4.1 一层解决“外观”,一层解决“工作流”

  • Ghostty 解决终端窗口的观感:主题、字体、透明度、原生分屏
  • tmux 解决真正的工作流组织:窗格切换、尺寸调整、会话保持、工具窗口入口

这样分工有一个明显好处:

  • Ghostty 原生体验顺滑,适合快速开分屏
  • tmux 更稳定,适合长期驻留开发会话
  • 两者职责清晰,不会互相抢活

4.2 统一成 Vim 风格操作

tmux 采用:

  • Ctrl + A 作为 prefix
  • Prefix + h/j/k/l 进行窗格移动
  • Prefix + H/J/K/L 调整窗格大小

这和 Neovim 的方向键习惯一致,能明显减少切换成本。

4.3 把高频工具做成“入口型窗口”

通过 tmux 直接拉起:

  • Prefix + g → lazygit
  • Prefix + n → nvim
  • Prefix + b → btop
  • Prefix + c → claude

这样打开工具不是“想命令”,而是“按入口”。长期使用时,效率提升会非常明显。

5. 配置过程记录

5.1 初始目标

最初希望统一生成以下配置:

1
2
3
4
5
`~/.config/ghostty/config
~/.tmux.conf
~/.config/starship.toml
~/.config/lazygit/config.yml
~/.config/nvim/lua/plugins/miasma.lua`

并统一键位:

1
2
3
4
5
6
7
8
`Cmd + D              Ghostty 右分屏
Cmd + Shift + D      Ghostty 下分屏
Ctrl + A             tmux prefix
Prefix + h/j/k/l     tmux 窗格移动
Prefix + H/J/K/L     tmux 窗格调整
Prefix + g           lazygit
Prefix + c           Claude
Prefix + n           Neovim`

5.2 检查本机现状

实际检查结果:

  • Ghostty 配置不存在,需要新建
  • tmux 配置不存在,需要新建
  • Starship 配置已存在
  • .zshrc 已有大量历史内容,需要避免粗暴覆盖
  • Neovim 配置目录不存在,需要做最小 bootstrap

5.3 修改策略

这次改造采用的是:

  • 能增量就增量
  • 能备份就先备份
  • 尽量保留已有环境

已做过的备份:

1
2
`~/.config/starship.toml.bak.20260510-081944
~/.zshrc.bak.20260510-081944`

5.4 tmux 的一个关键冲突修正

原始需求里:

  • 既想保留 Prefix + c 打开 Claude
  • 又沿用了 tmux 默认“新建窗口”的语义

这两者会冲突,所以最终做了一个更顺手的取舍:

  • Prefix + c → Claude
  • Prefix + Enter → 新建普通窗口

这个映射更符合“工具入口化”的整体设计。

5.5 Ghostty 精修

最终 Ghostty 调整为:

  • 主题:Miasma
  • 字体:JetBrainsMono Nerd Font Mono
  • 字号:15
  • 透明度:0.88
  • 背景模糊:28
  • 窗口边距:12 x 10
  • 光标:闪烁 bar
  • 鼠标输入时隐藏
  • 选中即复制到系统剪贴板
  • 开启 zsh shell integration
  • 添加快捷键:右分屏、下分屏、分屏缩放、平均分配、重载配置

5.6 补充,一套更偏开箱即用的安装清单

如果目标是从零快速搭一套现代终端环境,可以直接先装下面这些。

1
2
3
4
`brew install ghostty yazi lazygit \
 ffmpeg sevenzip jq poppler fd ripgrep fzf zoxide imagemagick
brew tap homebrew/cask-fonts
brew install --cask font-jetbrains-mono-nerd-font`

如果还要补全 prompt、彩色 ls 和监控工具,可以继续装:

1
`brew install starship eza fastfetch btop helix`

这里的分工可以简单记成:

  • Ghostty 管终端与分屏
  • Yazi 管文件浏览与预览
  • lazygit 管 Git
  • fzf + zoxide 管搜索与跳转
  • fastfetch + btop 管系统信息与监控
  • helix 管轻量临时编辑

6. 当前关键配置摘要

6.1 Ghostty

文件:~/.config/ghostty/config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
`theme = Miasma
font-family = JetBrainsMono Nerd Font Mono
font-size = 15
background-opacity = 0.88
background-blur = 28
window-padding-x = 12
window-padding-y = 10
window-save-state = always
cursor-style = bar
cursor-style-blink = true
copy-on-select = clipboard
shell-integration = zsh

keybind = super+d=new_split:right
keybind = super+shift+d=new_split:down
keybind = super+shift+enter=toggle_split_zoom
keybind = super+ctrl+==equalize_splits
keybind = super+shift+comma=reload_config`

6.2 tmux

文件:~/.tmux.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
`unbind C-b
set -g prefix C-a
bind C-a send-prefix

bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

bind g new-window -n lazygit "lazygit"
bind n new-window -n nvim "nvim"
bind b new-window -n btop "btop"
bind c new-window -n claude "claude"
bind Enter new-window -c "#{pane_current_path}"`

6.3 Neovim Miasma

文件:~/.config/nvim/lua/plugins/miasma.lua

1
2
3
4
5
6
7
8
9
10
`return {
  {
"xero/miasma.nvim",
    lazy = false,
    priority = 1000,
config = function()
      vim.cmd.colorscheme("miasma")
end,
  },
}`

6.4 lazygit

文件:~/.config/lazygit/config.yml

作用:统一颜色、启用 delta 作为 pager、默认编辑器切到 nvim

6.5 btop

文件:

1
2
`~/.config/btop/themes/miasma.theme
~/.config/btop/btop.conf`

作用:把 btop 的监控面板颜色统一成 Miasma 风格,并直接设为默认主题。

6.6 Yazi

Yazi 是这套工作流里非常值得补上的一个工具。它本质上是一个终端文件管理器,但体验并不是传统意义上那种笨重的 TUI 文件浏览器,而是更像一个特别轻、特别快、预览能力很强的终端 Finder。

它最有价值的点有两个:

  • 在终端里直接看目录结构,不需要跳回图形界面
  • 可以直接预览文本、代码、图片,特别适合和 Claude / shell / Git 流程并排使用

最基础的使用方式非常简单:

1
`yazi`

常见动作:

  • 方向键 / j``k 移动
  • 回车进入目录或打开文件
  • q 退出

6.7 Starship 可选 Tokyo Night 方向

虽然当前 starship.toml 按用户自管处理,但如果想快速切到 Tokyo Night 风格,可以直接用官方预设。

1
2
3
4
5
`# 先备份现有配置
cp ~/.config/starship.toml ~/.config/starship.toml.bak 2>/dev/null || true

# 应用 Tokyo Night 预设
starship preset tokyo-night -o ~/.config/starship.toml`

如果更喜欢更强的 powerline 视觉,也可以考虑:

1
2
`starship preset gruvbox-rainbow -o ~/.config/starship.toml
starship preset catppuccin-powerline -o ~/.config/starship.toml`

最基础的 shell 接入仍然是把下面这行放在 ~/.zshrc 末尾:

1
`eval"$(starship init zsh)"`

6.8 Ghostty 的 Tokyo Night 可选思路

当前主文档走的是 Miasma 方案,但如果后面你想切成更现代、更高对比的 Tokyo Night,也完全可行。

保守做法不是推翻现有工作流,而是只替换这三层:

  • Ghostty 主题
  • Starship 预设
  • 字体仍然保留 JetBrains Mono Nerd Font

这样分屏、tmux、lazygit、Yazi、Claude 的工作流都不用重建,只是整体视觉换皮。

7. 这一套怎么用

7.1 日常启动方式

推荐启动顺序:

1
2
3
4
5
6
7
`Ghostty
  └── tmux
       ├── shell
       ├── nvim
       ├── lazygit
       ├── btop
       └── claude`

典型动作:

  • 打开 Ghostty
  • 进入或创建 tmux 会话
  • 在 tmux 中按快捷键拉起各类工作窗口
  • 用 Ghostty 原生分屏做更轻量的并排操作
  • 用 tmux 保持长期工作会话不丢失

7.2 最常用快捷键

Ghostty

快捷键

作用
Cmd + D
右分屏
Cmd + Shift + D
下分屏
Cmd + Shift + Enter
放大 / 取消放大当前分屏
Cmd + Ctrl + =
平均分配分屏
Cmd + Shift + ,
重载 Ghostty 配置

tmux

快捷键

作用
Ctrl + A
tmux prefix
Prefix + h/j/k/l
切换窗格
Prefix + H/J/K/L
调整窗格大小
Prefix + Enter
新建普通窗口
Prefix + g
打开 lazygit
Prefix + n
打开 Neovim
Prefix + b
打开 btop
Prefix + c
打开 Claude
Prefix + r
重载 tmux 配置

7.3 一个推荐工作场景

场景:功能开发 + Git 提交 + AI 辅助

可以这样组织:

  • 左侧:nvim
  • 右上:shell / 测试命令
  • 右下:claude 或 lazygit
  • 需要看资源占用时,单独开一个 btop 窗口

这样你不需要在一堆 App 之间来回切,绝大多数开发动作都在一个体系里闭环。

场景:Ghostty 三窗格演示布局

这是一套非常适合展示和日常开发并存的布局:

  • 在 Ghostty 主窗口里运行 claude
  • 按 Cmd + D 在右侧再开一个窗格,运行 fastfetch
  • 回到左侧窗格,按 Cmd + Shift + D 在下方开一个窗格,运行 btop

结果大概是:

  • 左上,AI 助手 / shell 主工作区
  • 右侧,系统摘要或临时信息
  • 左下,资源监控

这个布局很适合一边开发、一边问 AI、一边盯机器状态。

8. 每个组件是干什么用的

组件

主要用途

为什么放进这套里

Ghostty

终端显示层、原生分屏、外观控制

启动快、渲染好、配置现代化

tmux

会话保持、窗格与窗口管理

断线不丢、项目切换稳定、工作区组织能力强

Neovim

编辑代码、查找、跳转、重构

键盘驱动效率高,和 tmux 心智一致

lazygit

Git 状态、stage、commit、log、rebase

比纯命令行更直观,比 GUI 更轻

Yazi

终端文件浏览、预览图片/代码/文档

不离开终端就能看文件,和 AI 流程配合特别顺

btop

看 CPU / 内存 / 进程 / 网络

监控信息集中,排查卡顿或异常方便

fastfetch

快速展示系统信息摘要

适合开场展示、排障前快速看机器环境

Claude

AI 问答、辅助编码、解释代码、生成草稿

减少切浏览器和 IDE 插件的来回跳转

Starship

显示当前目录 / Git 分支 / 状态

保证命令行提示信息简洁统一

zoxide

智能目录跳转

经常进的目录可以瞬间到达

fzf

模糊搜索器

查历史命令、筛列表、接各种 CLI 工作流

helix

轻量终端编辑器

临时改文件时开箱即用,不想进完整 Neovim 时很好用

9. 这一套的优势是什么

9.1 统一性强

不是单点美化,而是:

  • 颜色统一
  • 键位统一
  • 工具入口统一
  • Vim 操作风格统一

长期使用时,这种统一感本身就是效率。

9.2 开发闭环更完整

从写代码到提交 Git,再到看监控、问 AI,基本都能在终端里完成。

这意味着:

  • 更少上下文切换
  • 更少鼠标依赖
  • 更强的专注感

9.3 更适合长期驻留工作流

tmux 的价值不只是分屏,而是“工作会话常驻”:

  • 一组项目窗口可以持续保留
  • 重新进来时还能接着上次工作状态继续
  • 对多项目切换、长时间运行任务尤其友好

9.4 与 Neovim / power-user 生态天然契合

如果你的核心开发环境已经偏向:

  • Vim 键位
  • 终端优先
  • CLI 工具链
  • AI 辅助开发

那么这套方案会很顺手,因为它本质上是在做“终端工作台工程化”。

10. 风险点与注意事项

10.1 Starship 已改为用户自管

前期曾写入 ~/.config/starship.toml,但当前口径以用户自定义为准。后续如果继续整理整套配置,应把 Starship 视为“接入点”,而不是“强托管配置”。

10.2 Claude 命令需要本机可执行

tmux 中的:

1
`bind c new-window -n claude "claude"`

依赖本机存在 claude 命令。如果未来命令名、路径或调用方式变了,需要同步更新。

10.3 Ghostty 与 tmux 不要重复承担同一职责

建议的使用方式是:

  • Ghostty 原生分屏:轻量、快速、偏窗口层
  • tmux:长期工作区与会话层

不要把两层都当成“唯一分屏系统”,否则容易把自己的心智模型绕乱。

10.4 Neovim 当前是最小启动骨架

当前 Neovim 只是补了:

  • init.lua
  • lazy.nvim bootstrap
  • miasma.nvim 主题加载

如果后续要真正做成主力 IDE,还需要继续补:

  • LSP
  • Treesitter
  • Telescope / fzf 集成
  • 补全
  • 格式化
  • 调试

11. 后续可继续增强的方向

11.1 给 tmux 增加 session/workspace 层封装

例如新增:

  • 项目启动脚本
  • 固定布局恢复
  • 自动命名 session
  • 一键进入常用项目工作区

11.2 给 Claude 增加更稳定的集成方式

如果 claude 命令未来不稳定,可以考虑:

  • 包装成 shell function
  • 单独做启动脚本
  • 在 tmux 中打开固定 AI pane

11.3 继续补强 Neovim IDE 能力

建议后续建设方向:

  • Git signs
  • LSP 诊断
  • 搜索与跳转
  • 自动格式化
  • AI 辅助插件接入

11.4 补一份“从零装机到可用”的 bootstrap 文档

当前文档偏向“配置说明与改造记录”,后续还可以再补一篇:

  • 从安装依赖
  • 到写入配置
  • 到验证结果
  • 到截图展示

形成更完整的环境搭建手册。

12. 相关文档

12.1 本机配置文件

1
2
3
4
5
6
7
8
9
10
`~/.config/ghostty/config
~/.tmux.conf
~/.config/lazygit/config.yml
~/.config/btop/themes/miasma.theme
~/.config/btop/btop.conf
~/.config/nvim/init.lua
~/.config/nvim/lua/config/lazy.lua
~/.config/nvim/lua/plugins/miasma.lua
~/.zshrc
~/.config/starship.toml`

12.2 常用命令速查表

一键安装

1
2
3
4
5
`brew install ghostty yazi lazygit \
 ffmpeg sevenzip jq poppler fd ripgrep fzf zoxide imagemagick
brew tap homebrew/cask-fonts
brew install --cask font-jetbrains-mono-nerd-font
brew install starship eza fastfetch btop helix`

Ghostty

1
2
3
4
5
6
7
8
9
10
11
12
13
14
`# 打开 Ghostty 配置
open ~/.config/ghostty/config

# 查看可用主题
ghostty +list-themes

# 查看可用字体
ghostty +list-fonts

# 查看默认快捷键
ghostty +list-keybinds --default

# 校验/展示当前配置
ghostty +show-config --config-file ~/.config/ghostty/config`

Ghostty 常用快捷键:

快捷键

功能
Cmd + D
左右分屏
Cmd + Shift + D
上下分屏
Cmd + Shift + Enter
最大化 / 还原当前窗格
Cmd + W
关闭当前窗格
Cmd + Shift + ,
重新加载配置
Cmd + Q
完全退出 Ghostty

tmux

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
`# 启动新会话
tmux new -s main

# 查看会话列表
tmux ls

# 进入已有会话
tmux attach -t main

# 后台保留当前会话(快捷键)
# Ctrl + A 然后按 d

# 重载 tmux 配置
tmux source-file ~/.tmux.conf

# 杀掉指定会话
tmux kill-session -t main`

Neovim

1
2
3
4
5
6
7
8
`# 打开当前目录
nvim .

# 打开单文件
nvim <file>

# 首次拉起 lazy.nvim / 插件
nvim`

Yazi

1
2
3
4
5
`# 打开当前目录文件管理器
yazi

# 打开指定目录
yazi ~/Downloads`

常用操作:

  • q 退出
  • 回车进入目录或打开文件
  • j / k 上下移动
  • 适合搭配图片、代码、文档预览一起用

lazygit

1
2
`# 在当前仓库打开 lazygit
lazygit`

btop / fastfetch

1
2
3
4
5
`# 打开监控面板
btop

# 查看系统摘要
fastfetch`

Claude

1
2
`# 在终端中打开 Claude
claude`

Starship

1
2
3
4
5
6
7
8
9
10
11
`# 备份当前配置
cp ~/.config/starship.toml ~/.config/starship.toml.bak 2>/dev/null || true

# 应用 Tokyo Night 预设
starship preset tokyo-night -o ~/.config/starship.toml

# 应用 Gruvbox Rainbow 预设
starship preset gruvbox-rainbow -o ~/.config/starship.toml

# 应用 Catppuccin Powerline 预设
starship preset catppuccin-powerline -o ~/.config/starship.toml`

~/.zshrc 中的基础接入:

1
`eval"$(starship init zsh)"`

zoxide

1
2
3
4
5
6
7
`# 初始化(写入 ~/.zshrc)
eval"$(zoxide init zsh)"

# 智能跳转
z claude
z Downloads
z Alan-Workspace`

fzf

1
2
`# 安装后补全与快捷键接入
$(brew --prefix)/opt/fzf/install`

最常用的是:

  • Ctrl + R 搜索历史命令
  • Esc 退出当前 fzf 面板

helix

1
2
3
4
5
`# 启动 helix
hx

# 学习 tutor
hx --tutor`

如果想给 hx 起个更顺手的名字,可以在 ~/.zshrc 里加:

1
`alias svim='hx'`

Shell / CLI 增强工具

1
2
3
4
5
6
7
8
9
10
11
12
`# 更好看的 ls
ls
ll

# 更好的 cat
bat <file>

# 快速找文件
fd <keyword>

# 快速全文搜索
rg <keyword>`

配置文件编辑入口

1
2
3
4
5
6
`nvim ~/.config/ghostty/config
nvim ~/.tmux.conf
nvim ~/.config/lazygit/config.yml
nvim ~/.config/btop/themes/miasma.theme
nvim ~/.config/nvim/lua/plugins/miasma.lua
nvim ~/.zshrc`

12.3 官方文档

12.4 当前工作区内可补充参考的文档方向

如果后续想继续沉淀,可以再补这些文档:

  • Ghostty 键位与分屏习惯清单
  • tmux 工作区布局规范
  • Neovim 主力 IDE 插件清单
  • Claude in terminal 的使用约定
  • 终端工作流从零安装手册

13. 结论

这次改造的真正价值,不是把终端换成了 Miasma 颜色,而是把一组零散工具收成了一套统一工作流:

  • Ghostty 管外观与轻量分屏
  • tmux 管会话与工作区
  • Neovim 管编辑
  • lazygit 管 Git
  • btop 管监控
  • Claude 管 AI 辅助

它的优势在于:统一、稳定、低切换成本、适合长期驻留开发。如果后续再把 tmux workspace、Neovim IDE 能力和 Claude 集成继续补强,这套环境就会从“顺手”进一步升级到“真正可持续复用的个人主力工作台”。

[#Ghostty]()``[#tmux]()``[#Neovim]()``[#lazygit]()``[#btop]()``[#Claude]()``[#TerminalWorkflow]()``[#EngineeringPractice]()``[#KnowledgeBase]()

本文转载自微信公众号,如有侵权请联系删除。

  • 标题: [Alan の手札] 如何把终端变成主力工作台:Ghostty、tmux、Neovim 到 Claude 一次打通
  • 作者: lxiol
  • 创建于 : 2026-06-20 01:24:44
  • 更新于 : 2026-06-20 01:24:44
  • 链接: https://blog.lxiol.cn/2026/06/20/Alan-の手札-如何把终端变成主力工作台GhosttytmuxNeovim-到-Claude-一次打通/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
[Alan の手札] 如何把终端变成主力工作台:Ghostty、tmux、Neovim 到 Claude 一次打通