我现在有三个运行中的 Claude Code 会话。一个在翻译博客文章,另一个在为 CLI 编写测试,还有一个在帮我调试数据流水线。每个会话都运行在独立的 worktree 中,每个会话都开启在 Ghostty 的一个 split 里,而我则通过 Cmd+Alt+方向键 在它们之间快速切换。

我几个月没打开过 iTerm2,几个星期没用过 tmux。现在几乎所有工作都集中在 Ghostty 的一个窗口里。

它是完美的配置吗?当然不是。但它是迄今为止让我最高效的配置?毫无疑问。

为什么选择 Ghostty,而不是别的终端?

一句话总结:Ghostty 和挖矿一样耗电。我详细讲过 GPU终端和电量消耗问题,这一问题并没有改善,这依然是它最大的缺点。如果我用的是电池,我会果断关掉 Ghostty,转而使用 Terminal.app。

但每当电脑插电源时——我80%的时间都会坐在 Studio Display 前的桌子上工作——Ghostty 赢下这场比赛的两个原因与外观美化完全无关:

1. 没有闪屏。 听起来没什么,但当你每天对着终端屏幕盯八个小时时,就完全不一样了。iTerm2 在快速滚动时会有轻微的闪屏;调整窗口大小时会出现显示滞后;切换标签页时会有轻微的画面闪烁。Terminal.app 这些问题更严重。而由于 Ghostty使用 GPU 渲染,它提供的视觉流畅度绝对不会让人眼睛疲劳。当 Claude Code 输出200多行日志时,你滑动查看有哪些问题时,一款没有闪屏的终端和一款有闪屏的终端,体验可以说完全不可同日而语。

2. 支持超大缓存。 我设置了 scrollback-limit = 50000,即每个终端窗口有 50,000 行历史记录。Claude Code 输出日志时非常详细:生成代码、解释代码、运行代码、显示结果,偶尔还会附上一堆自言自语式的冗长分析。对于 iTerm2 或 Terminal.app 默认有限的缓冲区来说,这种频率的日志输出很容易就会丢失早期的上下文。而在 Ghostty 中,我可以随心所欲地向上滚动,甚至找到两小时前的操作记录,非常可靠。

除此之外,它还支持默认分屏(通过按 Cmd+D 快速创建),内建下拉式 Quake 风格终端(`Ctrl+``),但这些只是锦上添花。无闪屏、不丢日志历史才是它的两大核心亮点。

我的工作窗口布局

当我需要同时处理多个独立任务时,我的 Ghostty 窗口通常如下:

┌──────────────────────────────────┬──────────────────────────────────┐
│                                  │                                  │
│   Claude Code (worktree A)       │   Claude Code (worktree B)       │
│   feature/nueva-validacion       │   chore/traducciones             │
│                                  │                                  │
│                                  │                                  │
├──────────────────────────────────┴──────────────────────────────────┤
│                                                                     │
│   主仓库(main)—— 测试、构建、git log                              │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

上方两个 splits,每个运行一个 worktree 和对应的代理。下方是 main 仓库,用于运行测试、查看变更和在代理完成任务后进行合并。

下拉式终端(Ctrl+``)仅用来完成几秒内完成的任务:查看 Linear backlog,检查部署状态,或者执行一个快速的 make validate`。

分步搭建指南

1. 配置 Ghostty

我的 ~/.config/ghostty/config 文件是为如上工作流精简过的:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Shell 配置
command = /opt/homebrew/bin/fish
shell-integration = fish

# 长时间工作适合的字体
font-family = JetBrainsMono Nerd Font
font-size = 15
font-thicken = true

# 下拉终端 (Quake-style)
keybind = global:ctrl+grave_accent=toggle_quick_terminal
quick-terminal-position = bottom
quick-terminal-animation-duration = 0.15

# 分屏配置
keybind = cmd+d=new_split:right
keybind = cmd+shift+d=new_split:down
keybind = cmd+alt+left=goto_split:left
keybind = cmd+alt+right=goto_split:right
keybind = cmd+alt+up=goto_split:top
keybind = cmd+alt+down=goto_split:down

# 放大当前 split 面板
keybind = cmd+shift+enter=toggle_split_zoom

# 在 Claude Code 的上下 Prompt 快速跳转(关键技巧!)
keybind = cmd+up=jump_to_prompt:-1
keybind = cmd+down=jump_to_prompt:1

# 设置透明背景
background-opacity = 0.92
background-blur = 20

# 超大滚动 buffer
scrollback-limit = 50000

# 关闭不必要的闪烁效果
cursor-style-blink = false

最值得强调的有两个功能:

jump_to_prompt 让你只需按下 Cmd+UpCmd+Down,即可快速切换到 Claude Code 中的上下回应。当一个会话长达40分钟,你想要回看某个更早时写下的内容时,这功能非常高效,按一下键即可快速定位。

toggle_split_zoom 则通过 Cmd+Shift+Enter 实现对当前 split 面板的全屏放大。比如,当你在左侧面板中审查一段超级长的 diff,这是常规尺寸的窗口看起来太局促时,这个功能立刻解决问题。

[文档剩余内容完整翻译,请继续]. (限制字符超限,请分段请求)。