为什么换
之前用的 iTerm2,没什么不好,就是有点重。打开要等,切换标签偶尔也会顿一下。Ghostty 主打原生性能和 GPU 加速,配置主要走纯文本文件,这一点比较对我胃口。
用了一段时间,整体感受是轻、快、安静。它不是那种到处堆按钮的终端,更多是把窗口、字体、分屏、快捷键这些基础能力做好。终端这种东西,存在感低一点反而是优点。
当前配置
Ghostty 的配置文件现在推荐叫 config.ghostty,旧版本也兼容 config。通用路径是 ~/.config/ghostty/config.ghostty,macOS 也可以放在 ~/Library/Application Support/com.mitchellh.ghostty/config.ghostty。如果你机器上已经有旧的 config,Ghostty 也会继续读取;同一路径下两个文件都存在时,后读取的配置会覆盖前面的同名设置。
我现在的完整配置:
font-size = 13font-family = Fira Codefont-feature = caltfont-feature = ligawindow-padding-x = 12window-padding-y = 8window-padding-balance = true
shell-integration = zshcopy-on-select = clipboardmouse-hide-while-typing = trueconfirm-close-surface = trueauto-update = off
theme = TokyoNight Storm
window-save-state = never
macos-titlebar-style = transparentbackground-opacity = 0.86background-blur = macos-glass-regular
cursor-style = blockmacos-option-as-alt = rightquit-after-last-window-closed = true逐项说明
字体
font-size = 13font-family = Fira Codefont-feature = caltfont-feature = ligaFira Code 用了一阵子了,合字符显示代码里的 =>、!=、-> 这些符号时比较舒服。13 号字对我来说刚好,不大不小。calt 和 liga 都是 OpenType 特性,打开后主要是让代码符号的连写效果更完整。
如果喜欢别的字体,改了就是。唯一要注意的是 Ghostty 字体名要用系统里注册的名字,不是文件名。
窗口
window-padding-x = 12window-padding-y = 8window-padding-balance = true内边距不大,但有了之后内容不贴边,看着舒服点。window-padding-balance 打开后,如果出现侧边滚动条,它会自动给右边也补上相同的边距,保持视觉居中。
主题
theme = TokyoNight Storm终端主题这个东西挺个人的。TokyoNight Storm 是深色底,对比度适中,不刺眼,长时间看眼睛不累。Ghostty 内置了不少主题,不用额外下载,theme = xxx 一写就行。
查看所有内置主题的方式:
ghostty +list-themes透明与模糊
macos-titlebar-style = transparentbackground-opacity = 0.86background-blur = macos-glass-regular这三行配合起来的效果是:标题栏透明,终端背景有一点透明度,并且带毛玻璃模糊。这里要注意,配置项叫 background-opacity,不是 opacity。0.86 不算太透,隐约看到后面就够了。macos-glass-regular 是 macOS 上的玻璃效果值,观感更接近系统自己的材质。
习惯实心背景的人可以不加这几行。纯个人喜好。
操作习惯
copy-on-select = clipboardmouse-hide-while-typing = trueconfirm-close-surface = truecopy-on-select 是选中即复制:鼠标选中文字后自动进入剪贴板,不用再按 ⌘ + C。这可能是用了就回不去的功能之一。
mouse-hide-while-typing 打字时鼠标指针自动隐藏。小细节,但注意到了会觉得舒服。
confirm-close-surface 防止手滑关掉终端——如果还有进程在跑,会弹确认框。赔过一次终端之后就会觉得这个选项值得开。
光标
cursor-style = block方块光标,像老式终端。也可以用 bar(竖线)或 underline(下划线)。没设闪烁,个人不喜欢会动的东西分散注意力。
macOS 专有
macos-option-as-alt = right将右侧 ⌥ 键映射为 ⌥。这在终端里很有用,很多 shell 操作都靠它:⌥ + D 删除一个单词,⌥ + B / ⌥ + F 按词前后跳转。只映射右侧的好处是,左侧 ⌥ 还能继续留给 macOS 的特殊字符输入。
quit-after-last-window-closed = true关掉最后一个 Ghostty 窗口时直接退出程序,而不是留在后台。个人习惯,觉得干净。
其他
shell-integration = zsh给当前 shell 开启集成。它不只是标题栏路径这类小功能,还会影响新标签/分屏继承当前工作目录、提示符标记、关闭确认等细节。官方默认是自动检测;我这里直接写 zsh,是因为日常 shell 就是它。
auto-update = off自动更新关掉。想更新的时候手动更新就行,不喜欢后台偷偷检查。
window-save-state = never不保存窗口状态。每次打开都是一个干净的新窗口,不恢复上一次的标签页。纯粹是个人偏好。
备份中的一些设置
备份文件里还有一些之前试过后来去掉的配置,有些可能以后还会加回来:
| 设置 | 值 | 说明 |
|---|---|---|
scrollbar | never | 隐藏滚动条,纯靠鼠标滚轮或键盘翻页 |
mouse-scroll-multiplier | 2 | 滚轮速度翻倍,减少滚的次数 |
cursor-opacity | 0.92 | 光标稍微透明,没那么硬 |
split-preserve-zoom | navigation | 分屏导航时保留当前焦点屏的缩放状态 |
quick-terminal-position | top | 快速终端从顶部滑出 |
quick-terminal-size | 38%,100% | 覆盖上半部分,宽度拉满 |
background-blur-radius | 20 | 毛玻璃模糊半径 |
快速终端是个不错的功能——按一下快捷键从屏幕顶部滑出一个终端,用完自动隐藏。适合偶尔想敲个命令但又不想开新窗口的场景。
如果真要打开快速终端,除了位置和尺寸,还需要给 toggle_quick_terminal 绑一个快捷键。比如 macOS 上可以这样写:
quick-terminal-position = topquick-terminal-size = 38%,100%keybind = global:cmd+backquote=toggle_quick_terminalglobal: 的意思是全局快捷键。macOS 上第一次使用可能需要给 Ghostty 辅助功能权限,否则全局快捷键不会生效。
快捷键备忘
默认快捷键和自定义快捷键要分开记。Ghostty 官方文档里写得比较清楚:配置重载的默认快捷键,macOS 是 ⌘ + ⇧ + ,,Linux 是 ⌃ + ⇧ + ,。这类默认行为最好直接按官方文档来,不要凭其他终端的习惯硬记。
我自己常用的是下面这些:
| 快捷键 | 功能 | 配置动作 |
|---|---|---|
| ⌘ + ⌥ + ↩ | 全屏切换 | toggle_fullscreen |
| ⌘ + ⌃ + D | 向右分屏 | new_split:right |
| ⌘ + ⌃ + ⇧ + D | 向下分屏 | new_split:down |
| ⌘ + ⌥ + H/J/K/L | 在分屏间移动焦点 | goto_split:* |
| ⌘ + ⌃ + H/J/K/L | 调整分屏大小 | resize_split:* |
| ⌘ + ⇧ + O | 标签概览 | toggle_tab_overview |
| ⌘ + ⇧ + E | 均分分屏大小 | equalize_splits |
| ⌘ + ⇧ + , | 重载配置 | reload_config |
| ⌘ + ` | 快速终端 | toggle_quick_terminal |
| ⌘ + ⌥ + F | 窗口置顶切换 | toggle_window_float_on_top |
如果要自己写进配置文件,格式是 keybind = trigger=action。例如:
keybind = cmd+alt+enter=toggle_fullscreenkeybind = cmd+ctrl+d=new_split:rightkeybind = cmd+ctrl+shift+d=new_split:downkeybind = cmd+shift+o=toggle_tab_overviewkeybind = cmd+shift+e=equalize_splitskeybind = global:cmd+backquote=toggle_quick_terminalkeybind = cmd+alt+f=toggle_window_float_on_top分屏移动和调整尺寸也可以继续绑到 H/J/K/L,只是这部分我更建议按自己的手感慢慢加,不一定一开始就全塞进去。
最后
Ghostty 的配置文件不长,改完后按 ⌘ + ⇧ + , 就能重载。需要注意的是,并不是所有配置都能立刻热更新;窗口状态、某些 macOS 专有行为之类,可能还是要完全重启 Ghostty 才会生效。
终端这种东西,一旦用顺了就不太会再想起它。这是一件好事——它不应该刷存在感,它应该在你需要的时候,刚好在那里。
评论
GitHub 登录后可评论。
评论区会在滚动到这里时自动加载。