你的 Ghostty 键绑定已损坏(60 秒快速修复)

发布: (2026年2月4日 GMT+8 00:44)
3 min read
原文: Dev.to

Source: Dev.to

引言

你是否遇到过按 ⌘← 想跳到行首,却只得到 Ghostty 打印的 ^A
让我们来修复它。

macOS 有一套漂亮的文本导航快捷键:

  • ⌥← / ⌥→ – 按词跳转
  • ⌘← / ⌘→ – 跳到行首/行尾
  • ⌘⌫ – 删除光标前的所有内容

这些在任何地方都能使用——Notes、VS Code、浏览器——但 Ghostty 却不行。相反你会得到类似这样的乱码:

python -m venv .venv && source .venv/activate^E^A^E^A

效果不佳。

修复快捷键绑定

  1. 创建或编辑 Ghostty 配置文件

    mkdir -p ~/.config/ghostty
    nano ~/.config/ghostty/config
  2. 添加以下行(文件采用简单的 key = value 格式):

    macos-option-as-alt = true
  3. 保存并重启 Ghostty(它不会热加载配置更改)。

  4. 确保你的 shell 能解释这些转义码

    bindkey -e

    如果有效,请将其设为永久:

    echo "bindkey -e" >> ~/.zshrc

就这样,完成了。

这些 ^A^E 实际上是 “行首” 与 “行尾” 的正确转义码——只是你的 shell 没有监听而已。

快捷键参考

快捷键发送的内容操作
⌘←Ctrl+A行首
⌘→Ctrl+E行尾
⌥←\x1bb向后跳一个词
⌥→\x1bf向前跳一个词

bindkey -e 命令会把 zsh 设为 Emacs 模式,这正是它能够识别这些代码的原因。某些 shell 配置(尤其是使用 oh‑my‑zsh 或其他框架时)可能会覆盖此设置,所以显式添加它是个好主意。

如果你是从 Warp 切换到 Ghostty,这大概是你首先感受到的破碎之处。Warp 原生支持这些快捷键,因为它的实现方式不同。Ghostty 是传统的终端模拟器,需要一点额外的帮助。

现在,你既拥有 Ghostty 的速度与简洁,又拥有手指期待的快捷键。

已在 macOS 上的 Ghostty + zsh 环境中测试。

Back to Blog

相关文章

阅读更多 »