Skip to content

terminal_settings.zh TW

Weizhong Yang a.k.a zonble edited this page Aug 25, 2026 · 2 revisions

在終端機中啟用 Alt/Meta 鍵

zago 的 M+... 快捷鍵需要終端機把 Alt(macOS 上通常稱為 Option)送成 Meta 輸入。最相容的格式是 ESC prefix:例如 Alt+V 會送出 ESC 再 送出 v\x1bv)。一般不要選擇舊式的 high-bit Meta 模式。

macOS

Ghostty

在 Ghostty 設定檔加入:

macos-option-as-alt = true

macOS 常見設定檔位置是:

~/Library/Application Support/com.mitchellh.ghostty/config.ghostty

也可以使用 ~/.config/ghostty/config.ghostty。修改後重新載入設定或重新 開啟 Ghostty。

參考:Ghostty 設定macos-option-as-alt

cmux

若使用 cmux TUI 設定,請啟用 macOS Option-as-Alt 與 Alt 快捷鍵:

keys.macos_option_as_alt = true
keys.alt_shortcuts = true

如果 Option 被 macOS 當成特殊字元輸入,而沒有送到 zago,請先檢查 macos_option_as_alt

參考:cmux TUI 設定

iTerm2

  1. 開啟 Settings / Preferences → Profiles → Keys
  2. Left Option key 設為 Esc+
  3. 如果右側 Option 也要作為 Meta,將 Right Option key 一併設為 Esc+

Esc+ 會在字元前送出 ESC。一般不要選擇舊式的 high-bit Meta 模式。

參考:iTerm2 Profiles → Keys

Windows

Windows Terminal

Windows Terminal 通常會直接將 Alt 當成終端機修飾鍵,不需要額外設定。如果 某個快捷鍵沒有傳到 zago:

  1. 開啟 Settings → Actions
  2. 搜尋該組合鍵,例如 Alt+LeftAlt+RightAlt+Up
  3. 移除或修改會攔截該快捷鍵的 Windows Terminal action。
  4. 開啟新的終端分頁後重新測試。

重點是讓 Windows Terminal 將 Alt 序列轉送給終端程式,而不是自己拿去執行 分頁或視窗操作。

Linux

圖形介面終端機

GNOME Terminal、Konsole、xterm,以及大多數 X11/Wayland 終端模擬器,預設 通常已經會把 Alt/Meta 送成 ESC prefix。如果終端機提供 Meta sends EscapeAlt sends Escape 或類似選項,請將它開啟。

xterm 可以使用:

xterm -xrm 'XTerm*metaSendsEscape: true'

Konsole 則可到 Settings → Edit Current Profile → Keyboard 檢查,確定自訂 快捷鍵沒有攔截 zago 的 Alt 組合鍵。

參考:xterm Meta Sends EscapeKonsole key bindings

Linux virtual console

Linux virtual console,例如 Ctrl+Alt+F1,是最可能需要手動設定的環境; 它可能預設使用 high-bit Meta,而不是 ESC prefix。先查詢目前設定:

setmetamode

切換成 ESC prefix:

setmetamode escprefix

這個設定是每個 virtual terminal 各自獨立的;如果需要,可以在啟動腳本中對 使用的 /dev/ttyN 套用設定。

參考:setmetamode(1)

tmux、screen 與 SSH

tmux、screen 和 SSH 通常只會轉送外層終端機收到的位元組,不會自動修正 Alt/Meta。請先確認最外層終端機能送出 ESC prefix,再檢查 tmux 或 screen 是否有自訂設定攔截 Alt 快捷鍵。

Zellij

Zellij 預設使用 Ctrl + <key> 進入各操作模式(例如 Ctrl+S 進入 Scroll 模式、Ctrl+O 進入 Session 模式、Ctrl+P 進入 Pane 模式、Ctrl+N 進入 Resize 模式、Ctrl+Q 退出等),並且使用 Alt + <key> 進行快速切換(例如 Alt+N/Alt+P 切換窗格、Alt+F 浮動視窗)。這會與 zago 的 Nano 相容鍵位(如 Ctrl+S 存檔、Ctrl+O 寫入、Ctrl+P/Ctrl+N 游標移動、Alt+N/Alt+P 搜尋跳轉)產生嚴重衝突。

在 Zellij 中搭配 zago 使用,有以下幾種解決方案:

  1. 使用 Locked 模式(推薦)

    • 手動切換:在 Zellij 中按下 Ctrl+G 即可進入 Locked Mode。在鎖定模式下,除了 Ctrl+G(解鎖)之外,所有 CtrlAlt 快捷鍵都會直接透通送給 zago。
    • 預設啟動為 Locked 模式:在 Zellij 設定檔(~/.config/zellij/config.kdl)中加入:
      default_mode "locked"
    • 提示:在 zago 中若要取消選取或取消 Prompt 對話框,請使用 Esc 鍵,避免使用 Ctrl+G 導致觸發 Zellij 解鎖。
  2. 使用 tmux 鍵位模式(Prefix 模式)

    • Zellij 支援 tmux 模式,將所有視窗與分頁操作統一改由前綴鍵(Prefix,例如 Ctrl+B)觸發,徹底釋放日常的 CtrlAlt 鍵。
    • 可在 Zellij 設定檔中解除衝突快捷鍵的綁定或套用 tmux 鍵位配置。
  3. 改用 Function Keys(功能鍵)

    • zago 支援與 Nano 相同的 F1~F12 功能鍵,例如 F2(存檔並離開)、F3(寫入檔案)、F6(搜尋)、F7(表格模式)、F8(Canvas 模式)、F9/F10(剪下/貼上),這些按鍵不會被 Zellij 預設鍵位攔截。

測試 Alt/Meta

執行:

cat -v

按下 Alt+V,應該看到類似:

^[v

其中 ^[ 代表 ESC。按下 Ctrl+C 結束 cat,接著可以直接在 zago 測試 M+VM+W

Clone this wiki locally