鍵位綁定動作參考

所有 Ghostty 鍵位綁定動作的參考。

這是所有 Ghostty 鍵位綁定動作的參考。

ignore

忽略這個按鍵組合。

Ghostty 不會處理該組合,也不會把它轉發給終端機內的子行程,但作業系統或其他應用程式仍可能處理它。

unbind

解綁之前綁定的按鍵綁定。

這無法解綁未被 Ghostty 或使用者綁定的綁定(例如由作業系統或其他應用程式設定的綁定)。

csi

傳送一個 CSI 序列。

值應為不帶 CSI 頭的 CSI 序列(ESC [ 或 \x1b[)。

例如,可以傳送 csi:0m 來重置目前文字的所有樣式。

esc

傳送一個 ESC 序列。

text

傳送指定的文字。

使用 Zig 字串字面量語法。目前不做驗證。如果文字無效(即含有無效的跳脫序列),錯誤目前只會出現在日誌中。

cursor_key

游標鍵模式啟用(application)與停用(normal)時,分別向 pty 傳送相應資料。

reset

重置終端機。

當執行中的程式把終端機弄成損壞狀態時,這可以修復大量問題,等價於執行 reset 命令。

如果你在 TUI 程式(如 vim)中這樣做,可能會破壞該程式。如果你在 shell 中這樣做,可能需要再按一次 Enter 才能得到新的提示符。

copy_to_clipboard

把選取的文字複製到剪貼簿。

paste_from_clipboard

貼上預設剪貼簿的內容。

paste_from_selection

貼上取區剪貼簿的內容。

copy_url_to_clipboard

如果游標下有 URL,把它複製到預設剪貼簿。

copy_title_to_clipboard

把終端機標題複製到剪貼簿。如果終端機標題未設定或為空,這沒有效果。

increase_font_size

把字型大小增大指定的點數(pt)。

例如,increase_font_size:1.5 會把字型大小增大 1.5 點。

decrease_font_size

把字型大小減小指定的點數(pt)。

例如,decrease_font_size:1.5 會把字型大小減小 1.5 點。

reset_font_size

把字型大小重置為最初設定的大小。

set_font_size

把字型大小設定為指定的點數(pt)。

例如,set_font_size:14.5 會把字型大小設為 14.5 點。

開始搜尋給定文字。如果文字為空,則取消搜尋。被取消的搜尋不會停用任何顯示搜尋的 GUI 元素;為此應使用顯式的 end_search 綁定。

如果之前的搜尋處於活動狀態,則被取代。

search_selection

開始搜尋目前選取的文字。如果沒有選區,什麼都不做。如果已有搜尋處於活動狀態,這會改變搜尋詞。

在搜尋結果中導航。如果沒有活動搜尋,不執行。

如果尚未開始搜尋,則開始搜尋。這不設定任何搜尋詞,但會開啟用於搜尋的 UI。

結束目前搜尋(如有)並隱藏所有 GUI 元素。

clear_screen

清空螢幕與全部捲動緩衝。

select_all

選取螢幕上的所有文字。

scroll_to_top

捲動到螢幕頂端。

scroll_to_bottom

捲動到螢幕底端。

scroll_to_selection

捲動到選取的文字。

scroll_to_row

捲動到螢幕上給定的絕對行,0 為第一行。

scroll_page_up

向上捲動一頁。

scroll_page_down

向下捲動一頁。

scroll_page_fractional

把螢幕捲動指定的頁分數。

正值向下捲動,負值向上捲動。

例如,scroll_page_fractional:0.5 會把螢幕向下捲動半頁,而 scroll_page_fractional:-1.5 會把它向上捲動一頁半。

scroll_page_lines

把螢幕捲動指定的行數。

正值向下捲動,負值向上捲動。

例如,scroll_page_lines:3 會把螢幕向下捲動 3 行,而 scroll_page_lines:-10 會把它向上捲動 10 行。

adjust_selection

在給定方向或位置上調整目前選區,相對於游標。

警告:這不會建立新選區,而且目前沒有選區時什麼都不做。

有效引數是:

  • left、right

    分別把選區向左或向右調整一格。

  • up、down

    分別把選區向上或向下調整一行。

  • page_up、page_down

    分別把選區向上或向下調整一頁。

  • home、end

    分別把選區調整到螢幕的左上角或右下角。

  • beginning_of_line、end_of_line

    分別把選區調整到行首或行尾。

jump_to_prompt

把視口向前或向後跳過給定數量的提示符。

需要 shell 整合。

正值向下捲動,負值向上捲動。

write_scrollback_file

把整個捲動緩衝以指定動作寫入暫存檔案。該動作決定對檔案路徑怎麼做。

有效動作是:

  • copy

    把檔案路徑複製進剪貼簿。

  • paste

    把檔案路徑貼上進終端機。

  • open

    在系統預設的文字檔案編輯器中開啟該檔案。

    預設的系統編輯器在 macOS 上透過 open 決定,在 Linux 上透過 xdg-open 決定。

write_screen_file

把螢幕內容以指定動作寫入暫存檔案。

可能的動作見 write_scrollback_file。

write_selection_file

把目前選取的文字以指定動作寫入暫存檔案。

可能的動作見 write_scrollback_file。

沒有選取文字時什麼都不做。

new_window

開啟一個新視窗。

如果應用程式目前沒有焦點,這會把它帶到前景。

new_tab

開啟一個新分頁。

previous_tab

轉到上一個分頁。

next_tab

轉到下一個分頁。

last_tab

轉到最後一個分頁。

goto_tab

轉到具有特定索引的分頁,從 1 開始。

如果分頁編號大於分頁數量,這會轉到最後一個分頁。

move_tab

以相對偏移移動分頁。

正值把分頁向前移動,負值向後移動。如果新位置越界,會在分頁列表內循環取回。

例如,move_tab:1 把分頁向前移動一個位置,如果它已是列表中最後一個,則循環回到列表第一個。同樣,move_tab:-1 把分頁向後移動一個位置,如果它本是第一個,則會變成最後一個。

toggle_tab_overview

切換分頁概覽。

這只在 Linux 上受支援,且要求系統 libadwaita 版本為 1.4 或更新。可以透過執行 ghostty +version 檢視目前 libadwaita 版本。

prompt_surface_title

透過彈出的提示修改目前聚焦表面的標題。

prompt_tab_title

透過彈出的提示修改目前分頁的標題。透過該提示設定的標題會覆蓋終端機設定的任何標題,並在該分頁內的焦點變更中持久保留。

set_surface_title

設定目前聚焦表面的標題。

如果標題為空,表面標題被重置為空標題。

set_tab_title

設定目前聚焦分頁的標題。

如果標題為空,則清除分頁標題覆蓋。

new_split

在指定方向建立新分屏。

有效引數:

  • right、down、left、up

    在相應方向建立新分屏。

  • auto

    沿較大的一方建立新分屏。例如,如果父分屏目前寬於高,則會建立左右分屏,反之亦然。

goto_split

把焦點移到指定方向的分屏(right、down、left 與 up),或按建立順序移到相鄰分屏(previous 與 next)。

goto_window

聚焦前一個或下一個視窗('previous'、'next')

toggle_split_zoom

放大或還原目前分屏。

當分屏被放大時,它會佔據目前分頁的整個空間,隱藏其他分屏。分頁或分頁列也會透過顯示一個放大狀態圖示來反映這一點。

toggle_readonly

切換目前表面的唯讀模式。

當表面處於唯讀模式時:

  • 不向 PTY 傳送任何輸入(滑鼠事件、按鍵編碼)
  • 輸入仍可在終端機層級用於選取、複製/貼上(keybind)、捲動等
  • 該狀態下退出前警告總是啟用,即使沒有活動行程在執行

resize_split

以指定的方向與數量(像素)調整目前分屏大小。兩個引數應以逗號連接(,),如 resize_split:up,10。

equalize_splits

把目前視窗中所有分屏的大小均分。

reset_window_size

把視窗重置為預設大小。「預設大小」是新視窗被建立時的大小。視窗全螢幕時這沒有效果。

只在 macOS 上實作。

inspector

控制終端檢查器的可見性。

有效引數:toggle、show、hide。

show_gtk_inspector

顯示 GTK inspector。

在 macOS 上沒有效果。

show_on_screen_keyboard

如果存在螢幕鍵盤,則顯示它。

只在 Linux(GTK)上實作。在 GNOME 上必須開啟「Screen Keyboard」協助工具,可在 Settings > Accessibility > Typing 下找到。其他平台目前未測試。

open_config

在系統預設編輯器中開啟設定檔。

如果系統預設編輯器未設定,這會失敗。目前,開啟設定的任何失敗只會出現在日誌中。

reload_config

重新載入設定。

確切含義取決於使用的應用程式執行時,但這通常涉及重新讀取設定檔並套用任何變更。注意並非所有變更都能在執行時套用。

close_surface

關閉目前「表面」,無論它是視窗、分頁、分屏等。

這可能觸發關閉確認彈窗,取決於 confirm-close-surface 設定的值。

close_tab

關閉目前分頁及其所有分屏、關閉所有其他分頁,或關閉目前分頁右側的每一個分頁,取決於模式。

如果未指定模式,預設為關閉目前分頁。

這可能觸發關閉確認彈窗,取決於 confirm-close-surface 設定的值。

close_window

關閉目前視窗及其所有分頁與分屏。

這可能觸發關閉確認彈窗,取決於 confirm-close-surface 設定的值。

close_all_windows

關閉所有視窗。

警告:該動作已被棄用,在 Linux 或 macOS 上都沒有效果。建議使用者改用 all:close_window。

toggle_maximize

最大化或取消最大化目前視窗。

這在 macOS 上沒有效果,因為它沒有最大化視窗的概念。

toggle_fullscreen

對目前視窗執行全螢幕或取消全螢幕。

toggle_window_decorations

切換目前視窗的視窗裝飾(標題欄、按鈕等)。

只在 Linux 上實作。

toggle_window_float_on_top

切換終端機視窗是否總是懸浮在其他視窗之上,即使未取得焦點。

終端機視窗總是以普通(非懸浮置頂)視窗啟動。

只在 macOS 上實作。

toggle_secure_input

切換安全輸入模式。

它用於防止應用程式在輸入密碼或其他敏感資訊時監視你的鍵盤輸入。

這適用於整個應用程式,不只是聚焦的終端機。你必須手動取消該開關,或完全退出 Ghostty 才能停用。

只在 macOS 上實作,因為它使用內建的系統 API。

toggle_mouse_reporting

開啟或關閉滑鼠報告。

當滑鼠報告被停用時,即使終端機應用程式請求滑鼠事件,也不會收到報告。這讓你總能把滑鼠用於選取和其他終端機 UI 互動,而不會被應用程式捕獲滑鼠輸入。

這也可以透過 mouse-reporting 設定選項控制。

toggle_command_palette

切換命令面板。

命令面板是一個彈窗,讓你能看到可以執行哪些動作、與它們關聯的鍵位綁定(如有)、一個用於過濾動作的搜尋欄,以及隨後執行動作的功能。

這在 Linux 上需要 libadwaita 1.5 或更新。可以透過執行 ghostty +version 檢視目前 libadwaita 版本。

toggle_quick_terminal

切換 quick terminal。

quick terminal 也被稱為「Quake 風格」或下拉式終端機,是一個按需從鍵位綁定呼叫的終端機視窗,通常從螢幕邊緣(如頂部)滑入。這有利於快速存取終端機,而不必開啟新視窗或分頁。

終端機狀態在多次呼叫之間保留,因此在已隱藏之後再次呼叫 quick terminal 會顯示同一個視窗,而不是建立新的。

由於 quick terminal 常常在其他視窗取得焦點時有用,它最適合配合 全域 keybind。例如,可以定義下面這個綁定,在系統中的任何地方按 Cmd+` 來切換 quick terminal:

keybind = global:cmd+backquote=toggle_quick_terminal

quick terminal 有一些限制:

  • 同一時刻只能存在一個 quick terminal 實例。

  • 與普通終端機視窗不同,在支援視窗復原的系統(如 macOS)上重新啟動應用程式時,quick terminal 不會被復原。

  • 在 Linux 上,quick terminal 只支援 Wayland 而非 X11,且只支援實作了 wlr-layer-shell-v1 協定的 Wayland 合成器。實際上,這意味著只有 GNOME 使用者無法使用該特性。

  • 在 Linux 上,滑入動畫只在 KDE 上受支援,且要求啟用「Sliding Popups」KWin 外掛程式。

    如果你沒有啟用該外掛程式,開啟 System Settings > Apps & Windows > Window Management > Desktop Effects,並在外掛程式列表中啟用該外掛程式。隨後 Ghostty 需要完全重新啟動才能生效。

  • Quick terminal 分頁只在 Linux 上受支援,macOS 不支援。這是因為 macOS 上的分頁需要標題欄。

  • 在 macOS 上,全螢幕的 quick terminal 總是處於非原生全螢幕模式。這是由 quick terminal 的渲染方式決定的要求。

關於 quick terminal 的各種設定見設定檔中的相關項目,以自訂其行為。

toggle_visibility

顯示或隱藏所有視窗。如果所有視窗都變為顯示,我們還會確保 Ghostty 取得焦點。隱藏所有視窗時,焦點會被交給由作業系統決定的下一個應用程式。

注意:當聚焦表面處於全螢幕時,該方法什麼都不做。

只在 macOS 上實作。

toggle_background_opacity

在透明與不透明之間切換視窗背景不透明度。

當 background-opacity 設為 1 或以上時這不做任何事。

當 background-opacity 小於 1 時,該動作會根據視窗目前的透明狀態,把視窗變為透明或不透明。

只在 macOS 上實作。

check_for_updates

檢查更新。

只在 macOS 上實作。

undo

盡可能復原聚焦表面或終端機上最近一次可復原的動作。這可以復原關閉分頁或視窗等動作。

並非 Ghostty 中的每個動作都可以復原或重做。支援復原/重做的動作列表目前限於:

  • 新視窗、關閉視窗
  • 新分頁、關閉分頁
  • 新分屏、關閉分屏

所有動作只在有限時間內可復原/重做。例如,復原一個已關閉的分屏只能在分屏關閉後的若干秒內進行。確切時長由 undo-timeout 設定決定。

限制復原/重做動作能確保記憶體使用隨時間有界、已關閉的表面不會無限期地在背景繼續執行,以及這些鍵位綁定能被終端機應用程式使用。

只在 macOS 上實作。

redo

盡可能重做聚焦表面或終端機上最近一次可復原的動作。關於什麼可以與不可以復原或重做的更多細節,見 "undo"。

end_key_sequence

結束目前活動的按鍵序列(如有),並把到此為止的按鍵沖刷給終端機,不包括觸發該動作的按鍵。

例如:ctrl+w>escape=end_key_sequence 會把 ctrl+w 編碼給終端機並退出該按鍵序列。

正常情況下,無效的序列會重置按鍵序列,並沖刷包括無效按鍵在內的所有資料。該動允許你只沖刷先前的按鍵,這在你想要綁定類似控制鍵(ctrl+w)但不傳送額外輸入的東西時很有用。