Windows 終端機 中的自定義動作和索引鍵系結
您可以在 Windows 終端機中建立自訂動作,以便控制與終端機的互動方式。 這些動作會自動新增至命令選擇區。
動作格式
動作可依下列格式結構化:
不含引數的命令
{ "command": "commandName", "id": "User.MyCommand" }
例如,此預設設定會使用快速鍵 Alt+F4 來關閉終端機視窗:
{ "command": "closeWindow", "id": "User.MyCloseWindow" }
具有引數的命令
{ "command": { "action": "commandName", "argument": "value" }, "id": "User.MyCommand" }
例如,此預設設定會使用快捷鍵 Ctrl+Shift+1 ,根據下拉功能表中第一個列出哪一個配置檔,在終端機中開啟新的索引卷標(通常這會開啟 PowerShell 配置檔):
{ "command": { "action": "newTab", "index": 0 }, "id": "User.MyNewTabAction" }
具有命令行自變數的命令
{ "command": { "action": "wt", "commandline": "value" }, "keys": "modifiers+key" }
例如,此預設設定會使用快速鍵 Ctrl+Shift+O 來 wt
開啟新的 PowerShell 索引標籤,其中包含命令提示字元和 Ubuntu 的其他窗格:
{
"command":
{
"action": "wt",
"commandline": "new-tab pwsh.exe ; split-pane -p \"Command Prompt\" -d C:\\ ; split-pane -p \"Ubuntu\" -H"
},
"keys": "ctrl+shift+o"
}
動作屬性
動作會儲存在陣列中 actions
,而且可以使用下列屬性來建構。
Command
這是在按下相關聯按鍵時所執行的命令。
屬性名稱:command
必要性:必要
接受:字串
動作
這會將其他功能新增至特定命令。
屬性名稱:action
必要性: 選用
接受:字串
名稱
這會設定將在命令選擇區中顯示的名稱。 如果未提供任何名稱,則終端機會嘗試自動產生名稱。
屬性名稱:name
必要性: 選用
接受:字串
圖示
這會設定命令選擇區中顯示的圖示。
屬性名稱:icon
必要性: 選用
接受:字串形式的檔案位置或 Emoji
識別碼
這會設定此動作的標識碼。 如果未提供,終端機將會產生此動作的標識碼。 建立金鑰系結時,會使用標識符來參考此動作。
屬性名稱:id
必要性: 選用
接受: 字串
Keybindings
動作可以透過參考其唯一標識碼來指派索引鍵系結。 例如,以下是將 Alt+F4、Ctrl+Shift+1 和 Ctrl+Shift+o 指派給上述動作的可能keybindings
陣列。 可以針對相同的動作建立多個索引鍵系結專案。
"keybindings": [
{ "keys": "alt+f4", "id": "User.MyCloseWindow" },
{ "keys": "ctrl+shift+1", "id": "User.MyNewTabAction" },
{ "keys": "ctrl+shift+o", "id": "User.MyCoolSetup"}
]
Keybinding 屬性
Keybinding 會儲存在數位中 keybindings
,並使用下列屬性來建構。
索引鍵
這會定義用來呼叫命令的按鍵組合。 每個按鍵可以有任意數目的修飾詞。 以下列出接受的修飾詞和按鍵。
如果動作沒有按鍵,則會出現在命令選擇區中,但無法使用鍵盤叫用。
屬性名稱:keys
必要性:必要
接受:字串或陣列[字串]
識別碼
這是按下此按鍵系結時要叫用的動作標識碼。
屬性名稱:id
必要性:必要
接受:字串
接受的修飾詞
ctrl+
、 、 shift+
、 alt+
win+
注意
Windows
雖然密鑰支援做為修飾詞,但系統會保留大部分的 Win+<鍵密鑰>系結。 如果作業系統已保留該按鍵繫結關係,則終端機永遠不會收到該繫結。
輔助按鍵
類型 | 索引鍵 |
---|---|
函式和英數字元按鍵 | f1-f24 、 、 a-z 0-9 |
符號 | ` 、plus 、- 、= 、[ 、] 、\ ; ' 、, 、、、 . / |
方向鍵 | down 、left 、right 、up 、pagedown 、pageup 、pgdn 、、pgup 、、 end home |
動作按鍵 | tab 、enter 、esc 、escape 、space 、backspace 、delete 、、insert 、、 app menu |
Numpad 按鍵 | numpad_0-numpad_9 、numpad0-numpad9 、numpad_add 、numpad_plus 、numpad_decimal 、numpad_period 、numpad_divide 、、numpad_minus 、、 numpad_subtract numpad_multiply |
瀏覽器按鍵 | browser_back 、browser_forward 、、browser_stop browser_refresh 、browser_search 、、、 browser_favorites browser_home |
注意:=
和 plus
是相等專案。 後者不得與 numpad_plus
混淆。
應用程式層級命令
結束
這會關閉所有開啟的終端機視窗。 確認對話方塊隨即會出現在目前視窗中,確認您想關閉所有視窗。
命令名稱:quit
預設識別碼:
{ "command": "quit", "id": "Terminal.Quit" }
關閉視窗
這會關閉目前的視窗及其中的所有索引標籤。 如果 confirmCloseAllTabs
設定為 true
,則會出現確認對話方塊,以確保您想要關閉所有索引標籤。 如需此設定的詳細資訊,請參閱外觀頁面。
命令名稱:closeWindow
預設識別碼:
{ "command": "closeWindow", "id": "Terminal.CloseWindow" }
預設繫結:
{ "keys": "alt+f4", "id": "Terminal.CloseWindow" }
Find
這會開啟搜尋對話方塊。 如需搜尋的詳細資訊,請參閱搜尋頁面。
命令名稱:find
預設識別碼:
{ "command": "find", "id": "Terminal.FindText" }
預設繫結:
{ "keys": "ctrl+shift+f", "id": "Terminal.FindText" }
尋找下一個/上一個搜尋相符項目
這可讓您瀏覽搜尋相符項目。
命令名稱:findMatch
預設識別碼:
{ "command": { "action": "findMatch", "direction": "next" }, "id": "Terminal.FindNextMatch" },
{ "command": { "action": "findMatch", "direction": "prev" }, "id": "Terminal.FindPrevMatch" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
direction |
必要 | "next" , "prev" |
瀏覽搜尋結果的方向。 |
開啟下拉式功能表
這會開啟下拉式功能表。
命令名稱:openNewTabDropdown
預設識別碼:
{ "command": "openNewTabDropdown", "id": "Terminal.OpenNewTabDropdown" }
預設繫結:
{ "keys": "ctrl+shift+space", "id": "Terminal.OpenNewTabDropdown" }
開啟設定檔案
視 target
欄位而定,會開啟設定 UI、自訂設定檔案 (settings.json
) 或預設設定檔案 (defaults.json
)。
如果沒有 target
欄位,則會開啟自訂設定檔案。
命令名稱:openSettings
預設識別碼:
{ "command": { "action": "openSettings", "target": "settingsUI" }, "id": "Terminal.OpenSettingsUI" },
{ "command": { "action": "openSettings", "target": "settingsFile" }, "id": "Terminal.OpenSettingsFile" },
{ "command": { "action": "openSettings", "target": "defaultsFile" }, "keys": "Terminal.OpenDefaultSettingsFile" }
預設繫結:
{ "keys": "ctrl+,", "id": "Terminal.OpenSettingsUI" },
{ "keys": "ctrl+shift+,", "id": "Terminal.OpenSettingsFile" },
{ "keys": "ctrl+alt+,", "id": "Terminal.OpenDefaultSettingsFile" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
target |
選擇性 | "settingsFile" 、 、 "defaultsFile" 、 "settingsUI" "allFiles" |
要開啟的設定檔案。 |
開啟系統功能表
開啟視窗左上角的系統功能表。
命令名稱:openSystemMenu
預設識別碼:
{ "command": "openSystemMenu", "id": "Terminal.OpenSystemMenu" }
預設繫結:
{ "keys": "alt+space", "id": "Terminal.OpenSystemMenu" }
切換全螢幕
這可讓您在全螢幕和預設視窗大小之間切換。
命令名稱:toggleFullscreen
默認標識碼
{ "command": "toggleFullscreen", "id": "Terminal.ToggleFullscreen" }
預設繫結:
{ "keys": "alt+enter", "id": "Terminal.ToggleFullscreen" },
{ "keys": "f11", "id": "Terminal.ToggleFullscreen" }
切換焦點模式
這可讓您進入「焦點模式」,從而隱藏索引標籤和標題列。
命令名稱:toggleFocusMode
預設識別碼:
{ "command": "toggleFocusMode", "id": "Terminal.ToggleFocusMode" }
切換為「最上層顯示」模式
這可讓您切換視窗的「最上層顯示」狀態。 當處於「最上層顯示」模式時,視窗會顯示在所有其他非最上層視窗的頂端。
命令名稱:toggleAlwaysOnTop
預設識別碼:
{ "command": "toggleAlwaysOnTop", "id": "Terminal.ToggleAlwaysOnTop" }
傳送輸入
將任意文字輸入傳送至殼層。
例如,輸入 "text\n"
會將 "text" 寫入殼層,後面接著新行字元。
ANSI 逸出序列可供使用,但像 \x1b
這樣的逸出程式碼必須寫入為 \u001b
。
例如,"\u001b[A"
會表現出如同按下向上箭號按鈕的行為。
命令名稱:sendInput
預設繫結:
此命令目前尚未在預設設定中繫結。
{ "command": { "action": "sendInput", "input": "\u001b[A" } }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
input |
必要 | String | 要匯入殼層的文字輸入。 |
索引標籤管理命令
關閉索引標籤
這會關閉指定索引處的索引標籤。 若未提供索引,請使用焦點索引標籤的索引。
命令名稱:closeTab
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
index |
選擇性 | 整數 | 要關閉的索引標籤位置。 |
關閉所有其他索引標籤
這會關閉所有索引標籤 (索引處的索引標籤除外)。 若未提供索引,請使用焦點索引標籤的索引。
命令名稱:closeOtherTabs
預設識別碼:
{ "command": "closeOtherTabs", "id": "Terminal.CloseOtherTabs" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
index |
選擇性 | 整數 | 要保持開啟的索引標籤位置。 |
關閉索引後的索引標籤
這會關閉索引處索引標籤後面的其他索引標籤。 若未提供索引,請使用焦點索引標籤的索引。
命令名稱:closeTabsAfter
預設識別碼:
{ "command": "closeTabsAfter", "id": "Terminal.CloseTabsAfter" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
index |
選擇性 | 整數 | 要保持開啟的最後索引標籤位置。 |
重複的索引標籤
這會複製目前索引標籤的設定檔和目錄,並將其開啟。 這不包括已修改/新增的 ENV 變數。
命令名稱:duplicateTab
預設識別碼:
{ "command": "duplicateTab", "id": "Terminal.DuplicateTab" }
預設繫結:
{ "keys": "ctrl+shift+d", "id": "Terminal.DuplicateTab" }
新增標籤
這會建立新的索引標籤。沒有任何引數,這會在新的索引標籤中開啟預設設定檔。如果未指定索引,則會使用預設設定檔的對等設定。 如果索引未對應至設定檔,則按鍵會直接傳遞至終端機 (如果未使用任何按鍵叫用動作,則會忽略按鍵)。
命令名稱:newTab
預設識別碼:
{ "command": "newTab", "id": "Terminal.OpenNewTab" },
{ "command": { "action": "newTab", "index": 0 }, "id": "Terminal.OpenNewTabProfile0" },
{ "command": { "action": "newTab", "index": 1 }, "id": "Terminal.OpenNewTabProfile1" },
{ "command": { "action": "newTab", "index": 2 }, "id": "Terminal.OpenNewTabProfile2" },
{ "command": { "action": "newTab", "index": 3 }, "id": "Terminal.OpenNewTabProfile3" },
{ "command": { "action": "newTab", "index": 4 }, "id": "Terminal.OpenNewTabProfile4" },
{ "command": { "action": "newTab", "index": 5 }, "id": "Terminal.OpenNewTabProfile5" },
{ "command": { "action": "newTab", "index": 6 }, "id": "Terminal.OpenNewTabProfile6" },
{ "command": { "action": "newTab", "index": 7 }, "id": "Terminal.OpenNewTabProfile7" },
{ "command": { "action": "newTab", "index": 8 }, "id": "Terminal.OpenNewTabProfile8" }
預設繫結:
{ "keys": "ctrl+shift+t", "id": "Terminal.OpenNewTab" },
{ "keys": "ctrl+shift+1", "id": "Terminal.OpenNewTabProfile0" },
{ "keys": "ctrl+shift+2", "id": "Terminal.OpenNewTabProfile1" },
{ "keys": "ctrl+shift+3", "id": "Terminal.OpenNewTabProfile2" },
{ "keys": "ctrl+shift+4", "id": "Terminal.OpenNewTabProfile3" },
{ "keys": "ctrl+shift+5", "id": "Terminal.OpenNewTabProfile4" },
{ "keys": "ctrl+shift+6", "id": "Terminal.OpenNewTabProfile5" },
{ "keys": "ctrl+shift+7", "id": "Terminal.OpenNewTabProfile6" },
{ "keys": "ctrl+shift+8", "id": "Terminal.OpenNewTabProfile7" },
{ "keys": "ctrl+shift+9", "id": "Terminal.OpenNewTabProfile8" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
commandline |
選擇性 | 字串形式的可執行檔名稱 | 可執行檔在索引標籤內執行。 |
startingDirectory |
選擇性 | 字串形式的資料夾位置 | 在其中開啟索引標籤的目錄。 |
elevate |
選擇性 | true 、 、 false null |
覆寫設定檔的 elevate 屬性。 當省略時,此動作會根據設定檔的 elevate 設定運作。 當設定為 true 或 false 時,此動作會表現出如同設定檔分別使用 "elevate": true 或 "elevate": false 設定的行為。 |
tabTitle |
選擇性 | String | 新索引標籤的標題。 |
index |
選擇性 | 整數 | 將會根據其在下拉式清單中位置 (從 0 開始) 開啟的設定檔。 |
profile |
選擇性 | 字串形式的設定檔名稱或 GUID | 將會根據其 GUID 或名稱開啟的設定檔。 |
colorScheme |
選擇性 | 字串形式的色彩配置名稱 | 用於取代設定檔 colorScheme 設定的配置 |
suppressApplicationTitle |
選擇性 | true , false |
當設定為 false 時,應用程式可透過傳送標題變更訊息,變更索引標籤標題。 當設定為 true 時,會隱藏這些訊息。 如果未提供,則行為會繼承自設定檔的設定。 若要輸入新的索引標籤標題並保存該標題,則必須設定為 true。 |
開啟下一個索引標籤
這會在目前的索引標籤右側開啟索引標籤。
命令名稱:nextTab
預設識別碼:
{ "command": "nextTab", "id": "Terminal.NextTab" }
預設繫結:
{ "keys": "ctrl+tab", "id": "Terminal.NextTab" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
tabSwitcherMode |
選擇性 | "mru" 、 、 "inOrder" "disabled" |
使用 "tabSwitcherMode" 移至下一個索引標籤。 如果未提供任何模式,請使用全域定義模式。 |
開啟上一個索引標籤
這會在目前的索引標籤左側開啟索引標籤。
命令名稱:prevTab
預設識別碼:
{ "command": "prevTab", "id": "Terminal.PrevTab" }
預設繫結:
{ "keys": "ctrl+shift+tab", "id": "Terminal.PrevTab" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
tabSwitcherMode |
選擇性 | "mru" 、 、 "inOrder" "disabled" |
使用 "tabSwitcherMode" 移至前一個索引標籤。 如果未提供任何模式,請使用全域定義模式。 |
索引標籤搜尋
這會開啟索引標籤搜尋方塊。
命令名稱:tabSearch
預設繫結:
此命令目前尚未在預設設定中繫結。
{"command": "tabSearch"}
開啟特定索引標籤
這會根據索引來開啟特定索引標籤。
命令名稱:switchToTab
預設識別碼:
{ "command": { "action": "switchToTab", "index": 0 }, "id": "Terminal.SwitchToTab0" },
{ "command": { "action": "switchToTab", "index": 1 }, "id": "Terminal.SwitchToTab1" },
{ "command": { "action": "switchToTab", "index": 2 }, "id": "Terminal.SwitchToTab2" },
{ "command": { "action": "switchToTab", "index": 3 }, "id": "Terminal.SwitchToTab3" },
{ "command": { "action": "switchToTab", "index": 4 }, "id": "Terminal.SwitchToTab4" },
{ "command": { "action": "switchToTab", "index": 5 }, "id": "Terminal.SwitchToTab5" },
{ "command": { "action": "switchToTab", "index": 6 }, "id": "Terminal.SwitchToTab6" },
{ "command": { "action": "switchToTab", "index": 7 }, "id": "Terminal.SwitchToTab7" }
預設繫結:
{ "keys": "ctrl+alt+1", "id": "Terminal.SwitchToTab0" },
{ "keys": "ctrl+alt+2", "id": "Terminal.SwitchToTab1" },
{ "keys": "ctrl+alt+3", "id": "Terminal.SwitchToTab2" },
{ "keys": "ctrl+alt+4", "id": "Terminal.SwitchToTab3" },
{ "keys": "ctrl+alt+5", "id": "Terminal.SwitchToTab4" },
{ "keys": "ctrl+alt+6", "id": "Terminal.SwitchToTab5" },
{ "keys": "ctrl+alt+7", "id": "Terminal.SwitchToTab6" },
{ "keys": "ctrl+alt+8", "id": "Terminal.SwitchToTab7" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
index |
必要 | 整數 | 將會根據其在索引標籤列中位置 (從 0 開始) 開啟的索引標籤。 |
重新命名索引標籤
此命令可用於將索引標籤重新命名為特定字串。
命令名稱:renameTab
預設繫結:
此命令目前尚未在預設設定中繫結。
// Rename a tab to "Foo"
{ "command": { "action": "renameTab", "title": "Foo" } }
// Reset the tab's name
{ "command": { "action": "renameTab", "title": null } }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
title |
選擇性 | String | 用於此索引標籤的新標題。如果省略,此命令會將索引標籤標題還原為原始值。 |
開啟索引標籤重新命名文字方塊
此命令會將索引標籤標題變更為文字欄位,您便能編輯目前索引標籤的標題。清除文字欄位會將索引標籤標題重設為目前殼層執行個體的預設值。
命令名稱:openTabRenamer
預設識別碼:
{ "command": "openTabRenamer", "id": "Terminal.OpenTabRenamer" }
變更索引標籤色彩
此命令可用於將索引標籤的色彩變更為特定值。
命令名稱:setTabColor
預設繫結:
此命令目前尚未在預設設定中繫結。
// Change the tab's color to a bright magenta
{ "command": { "action": "setTabColor", "color": "#ff00ff" } }
// Reset the tab's color
{ "command": { "action": "setTabColor", "color": null } }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
color |
選擇性 | 十六進位格式的字串:"#rgb" 或 "#rrggbb" |
用於此索引標籤的新色彩。如果省略,此命令會將索引標籤色彩還原為原始值。 |
開啟索引標籤色彩選擇器
此命令可用於開啟使用中索引標籤的色彩選擇器。色彩選擇器可用於在執行階段設定索引標籤色彩。
命令名稱:openTabColorPicker
預設識別碼:
{ "command": "openTabColorPicker", "id": "Terminal.OpenTabColorPicker" }
移動索引標籤
此命令會將索引標籤「向後」和「向前」移動,相當於從左至右 UI 中的「左」和「右」。
命令名稱:moveTab
預設識別碼:
// Move tab backward (left in LTR)
{ "command": { "action": "moveTab", "direction": "backward" }, "id": "Terminal.MoveTabBackward" }
// Move tab forward (right in LTR)
{ "command": { "action": "moveTab", "direction": "forward" }, "id": "Terminal.MoveTabForward" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
direction |
必要 | "backward" , "forward" |
索引標籤要移動的方向。 |
window |
選擇性 | 視窗識別碼 | 請參閱下文 |
window
是選擇性的,且遵循與命令行自--window-id
wt.exe
變數相同的格式。 如果省略它,這會移動目前視窗內的索引標籤。 如果提供,它可能是視窗的整數標識碼或視窗的名稱。 同時也接受下列保留值:
"new"
或-1
:一律在新視窗中執行此命令"last"
或0
:一律在最近使用的視窗中執行此命令
如果沒有具有指定 window
標識碼的視窗,則會使用該標識碼/名稱建立新的視窗。
廣播輸入
此命令會切換窗格的「廣播模式」。 啟用廣播模式時,傳送至窗格的所有輸入都會傳送至相同索引標籤中的所有窗格。這在將相同輸入一次傳送至多個窗格時非常實用。
如同任何動作,您也可以在命令選擇區中搜尋「切換廣播輸入至所有窗格」來叫用「廣播模式」。
命令名稱:toggleBroadcastInput
預設識別碼:
{ "command": "toggleBroadcastInput", "id": "Terminal.ToggleBroadcastInput" }
開啟捷徑功能表
此命令會開啟使用中窗格的 [滑鼠右鍵] 捷徑功能表。 此功能表具有管理窗格、複製和貼上等內容相關動作。 此動作無須啟用 experimental.rightClickContextMenu
設定。
命令名稱:showContextMenu
預設識別碼:
{ "command": "showContextMenu", "id": "Terminal.ShowContextMenu" }
開啟關於對話方塊
此命令會開啟終端機的關於對話方塊。 此對話方塊包含終端機的相關資訊,包括版本號碼、授權等。
命令名稱:openAbout
預設識別碼:
{ "command": "openAbout", "id": "Terminal.OpenAboutDialog" }
重要
這項功能僅適用於 Windows 終端機預覽。
搜尋網頁
嘗試開啟瀏覽器視窗,並搜尋所選文字。 如果沒有選取任何文字,則不會執行任何動作。 如果未提供 queryUrl
參數,則會改用 searchWebDefaultQueryUrl
設定。 如果提供 queryUrl
參數,則字串中的 %s
會由所選文字取代。
命令名稱:searchWeb
預設識別碼:
{ "command": { "action": "searchWeb" }, "id": "Terminal.SearchWeb" },
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
queryUrl |
必要 | String | 用於搜尋的 URL。 此字串中的 %s 會由所選文字取代。 如果省略,則會預設為 searchWebDefaultQueryUrl 設定。 |
重要
這項功能僅適用於 Windows 終端機預覽。
視窗管理命令
新增視窗
這會建立新視窗。 如果沒有任何引數,則會在新視窗中開啟預設設定檔 (無論 windowingBehavior
的設定為何)。 如果未指定動作,則會使用預設設定檔的對等設定。
命令名稱:newWindow
預設識別碼:
{ "command": "newWindow", "id": "Terminal.OpenNewWindow" },
預設繫結:
{ "keys": "ctrl+shift+n", "id": "Terminal.OpenNewWindow" },
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
commandline |
選擇性 | 字串形式的可執行檔名稱 | 可執行檔在索引標籤內執行。 |
startingDirectory |
選擇性 | 字串形式的資料夾位置 | 視窗將在其中開啟的目錄。 |
tabTitle |
選擇性 | String | 視窗索引標籤的標題。 |
index |
選擇性 | 整數 | 將會根據其在下拉式清單中位置 (從 0 開始) 開啟的設定檔。 |
profile |
選擇性 | 字串形式的設定檔名稱或 GUID | 將會根據其 GUID 或名稱開啟的設定檔。 |
suppressApplicationTitle |
選擇性 | true , false |
當設定為 false 時,應用程式可透過傳送標題變更訊息,變更索引標籤標題。 當設定為 true 隱藏這些訊息時。 如果未提供,則行為會繼承自設定檔的設定。 |
重新命名視窗
此命令可用於將視窗重新命名為特定字串。
命令名稱:renameWindow
預設繫結:
此命令目前尚未在預設設定中繫結。
// Rename a window to "Foo"
{ "command": { "action": "renameWindow", "name": "Foo" } }
// Reset the window's name
{ "command": { "action": "renameWindow", "name": null } }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
name |
選擇性 | String | 用於此視窗的新名稱。 如果省略,此命令會將視窗名稱還原為原始值。 |
開啟視窗重新命名對話方塊
此命令變更會顯示快顯視窗,可讓您編輯目前視窗的名稱。 清除文字欄位會重設視窗名稱。
命令名稱:openWindowRenamer
預設識別碼:
{ "command": "openWindowRenamer", "id": "Terminal.OpenWindowRenamer" }
識別視窗
這會在焦點視窗中出現重疊,顯示視窗的名稱和索引。
命令名稱:identifyWindow
預設識別碼:
{"command": "identifyWindow", "id": "Terminal.IdentifyWindow" },
識別視窗
這會在所有視窗中出現重疊,顯示各視窗的名稱和索引。
命令名稱:identifyWindows
預設繫結:
此命令目前尚未在預設設定中繫結。
{ "command": "identifyWindows" },
窗格管理命令
分割窗格
這會將使用中窗格的大小減半,並開啟另一個窗格。 沒有任何引數,這會在新的窗格中開啟預設設定檔。 如果未指定動作,則會使用預設設定檔的對等設定。
命令名稱:splitPane
預設識別碼:
{ "command": { "action": "splitPane", "splitMode": "duplicate", "split": "auto" }, "id": "Terminal.DuplicatePaneAuto" },
{ "command": { "action": "splitPane", "split": "up" }, "id": "Terminal.SplitPaneUp" },
{ "command": { "action": "splitPane", "split": "down" }, "id": "Terminal.SplitPaneDown" },
{ "command": { "action": "splitPane", "split": "left" }, "id": "Terminal.SplitPaneLeft" },
{ "command": { "action": "splitPane", "split": "right" }, "id": "Terminal.SplitPaneRight" },
{ "command": { "action": "splitPane", "splitMode": "duplicate", "split": "down" }, "id": "Terminal.DuplicatePaneDown" },
{ "command": { "action": "splitPane", "splitMode": "duplicate", "split": "right" }, "id": "Terminal.DuplicatePaneRight" }
預設繫結:
{ "keys": "alt+shift+d", "id": "Terminal.DuplicatePaneAuto" },
{ "keys": "alt+shift+-", "id": "Terminal.DuplicatePaneDown" },
{ "keys": "alt+shift+plus", "id": "Terminal.DuplicatePaneRight" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
split |
必要 | "vertical" 、"horizontal" 、、"up" "auto" 、"right" 、、、 "down" "left" |
窗格的分割方式。 "auto" 會以提供最大表面區域的方向分割。 |
commandline |
選擇性 | 字串形式的可執行檔名稱 | 可執行檔在窗格內執行。 |
startingDirectory |
選擇性 | 字串形式的資料夾位置 | 在其中開啟窗格的目錄。 |
elevate |
選擇性 | true 、 、 false null |
覆寫設定檔的 elevate 屬性。 當省略時,此動作會根據設定檔的 elevate 設定運作。 當設定為 true 或 false 時,此動作會表現出如同設定檔分別使用 "elevate": true 或 "elevate": false 設定的行為。 |
tabTitle |
選擇性 | String | 當新窗格為焦點時的索引標籤標題。 |
index |
選擇性 | 整數 | 將會根據其在下拉式清單中位置 (從 0 開始) 開啟的設定檔。 |
profile |
選擇性 | 字串形式的設定檔名稱或 GUID | 將會根據其 GUID 或名稱開啟的設定檔。 |
colorScheme |
選擇性 | 字串形式的色彩配置名稱 | 用於取代設定檔 colorScheme 設定的配置 |
suppressApplicationTitle |
選擇性 | true , false |
當設定為 false 時,應用程式可透過傳送標題變更訊息,變更索引標籤標題。 當設定為 true 時,會隱藏這些訊息。 如果未提供,則行為會繼承自設定檔的設定。 |
splitMode |
選擇性 | "duplicate" |
控制窗格的分割方式。 只接受 "duplicate" ,這會將焦點窗格的設定檔複製到新窗格中。 |
size |
選擇性 | Float | 指定新窗格的大小,僅佔目前窗格大小的一小部分。 1.0 應為「所有目前窗格」,而 0.0 為「沒有父窗格」。 預設為 0.5 。 |
關閉窗格
這會關閉使用中窗格。 如果沒有任何分割窗格,這會關閉目前的索引標籤。如果只有一個索引標籤開啟,這會關閉視窗。
命令名稱:closePane
預設識別碼:
{ "command": "closePane", "id": "Terminal.ClosePane" }
預設繫結:
{ "keys": "ctrl+shift+w", "id": "Terminal.ClosePane" }
移動窗格焦點
這會將焦點變更至不同的窗格,視方向而定。 將 direction
設定為 "previous"
會將焦點移至最近使用的窗格。
命令名稱:moveFocus
預設識別碼:
{ "command": { "action": "moveFocus", "direction": "down" }, "id": "Terminal.MoveFocusDown" },
{ "command": { "action": "moveFocus", "direction": "left" }, "id": "Terminal.MoveFocusLeft" },
{ "command": { "action": "moveFocus", "direction": "right" }, "id": "Terminal.MoveFocusRight" },
{ "command": { "action": "moveFocus", "direction": "up" }, "id": "Terminal.MoveFocusUp" },
{ "command": { "action": "moveFocus", "direction": "previous" }, "id": "Terminal.MoveFocusPrevious" }
預設繫結:
{ "keys": "alt+down", "id": "Terminal.MoveFocusDown" },
{ "keys": "alt+left", "id": "Terminal.MoveFocusLeft" },
{ "keys": "alt+right", "id": "Terminal.MoveFocusRight" },
{ "keys": "alt+up", "id": "Terminal.MoveFocusUp" },
{ "keys": "ctrl+alt+left", "id": "Terminal.MoveFocusPrevious" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
direction |
必要 | "left" 、"right" 、"up" 、"down" 、"previous" 、"previousInOrder" 、"nextInOrder" 、、"first" 、、 "parent" "child" |
焦點要移動的方向。 |
接受的 direction
值
up
、down
、left
或right
將焦點移至指定方向。first
將焦點移至樹狀結構中的第一個分葉窗格。previous
將焦點移至目前窗格之前最近使用的窗格。nextInOrder
、previousInOrder
依照建立順序,將焦點移至下一個或上一個窗格。parent
會移動焦點以選取目前窗格的父窗格。 這可讓使用者一次選取多個窗格child
會將焦點移至此窗格的第一個子窗格。
移動窗格
將目前使用中的窗格移至視窗中的不同索引標籤。
命令名稱:movePane
預設識別碼:
{ "command": { "action": "movePane", "index": 0 }, "id": "Terminal.MovePaneToTab0" },
{ "command": { "action": "movePane", "index": 1 }, "id": "Terminal.MovePaneToTab1" },
{ "command": { "action": "movePane", "index": 2 }, "id": "Terminal.MovePaneToTab2" },
{ "command": { "action": "movePane", "index": 3 }, "id": "Terminal.MovePaneToTab3" },
{ "command": { "action": "movePane", "index": 4 }, "id": "Terminal.MovePaneToTab4" },
{ "command": { "action": "movePane", "index": 5 }, "id": "Terminal.MovePaneToTab5" },
{ "command": { "action": "movePane", "index": 6 }, "id": "Terminal.MovePaneToTab6" },
{ "command": { "action": "movePane", "index": 7 }, "id": "Terminal.MovePaneToTab7" },
{ "command": { "action": "movePane", "index": 8 }, "id": "Terminal.MovePaneToTab8" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
index |
必要 | 數值 | 可移至索引標籤中以零為基底編製的索引 |
交換窗格
交換索引標籤中兩個窗格的位置。這會在使用中窗格和目標窗格上運作,如同 direction
參數所指定。
命令名稱:swapPane
預設識別碼:
{ "command": { "action": "swapPane", "direction": "down" }, "id": "Terminal.SwapPaneDown" },
{ "command": { "action": "swapPane", "direction": "left" }, "id": "Terminal.SwapPaneLeft" },
{ "command": { "action": "swapPane", "direction": "right" }, "id": "Terminal.SwapPaneRight" },
{ "command": { "action": "swapPane", "direction": "up" }, "id": "Terminal.SwapPaneUp" },
{ "command": { "action": "swapPane", "direction": "previous"}, "id": "Terminal.SwapPanePrevious" },
{ "command": { "action": "swapPane", "direction": "previousInOrder"}, "id": "Terminal.SwapPanePreviousInOrder" },
{ "command": { "action": "swapPane", "direction": "nextInOrder"}, "id": "Terminal.SwapPaneNextInOrder" },
{ "command": { "action": "swapPane", "direction": "first" }, "id": "Terminal.SwapPaneFirst" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
direction |
必要 | "left" 、"right" 、"up" 、"down" 、"previous" 、"previousInOrder" 、"nextInOrder" 、、"first" 、、 "parent" "child" |
焦點要移動的方向。 |
接受的 direction
值 (這些值與 moveFocus
命令相同)
up
、down
、left
或right
:將使用中窗格與指定方向的窗格交換。first
:將使用中窗格與樹狀結構中的第一個分葉窗格交換。previous
:將使用中窗格與目前窗格之前最近使用的窗格交換。nextInOrder
、previousInOrder
:依照建立順序,將使用中窗格與下一個或上一個窗格交換。parent
:不執行任何動作。child
:不執行任何動作。
縮放窗格
這會展開焦點窗格,以填滿視窗的所有內容。
命令名稱:togglePaneZoom
預設識別碼:
{ "command": "togglePaneZoom", "id": "Terminal.TogglePaneZoom" }
調整窗格大小
這會變更使用中窗格的大小。
命令名稱:resizePane
預設識別碼:
{ "command": { "action": "resizePane", "direction": "down" }, "id": "Terminal.ResizePaneDown" },
{ "command": { "action": "resizePane", "direction": "left" }, "id": "Terminal.ResizePaneLeft" },
{ "command": { "action": "resizePane", "direction": "right" }, "id": "Terminal.ResizePaneRight" },
{ "command": { "action": "resizePane", "direction": "up" }, "id": "Terminal.ResizePaneUp" }
預設繫結:
{ "keys": "alt+shift+down", "id": "Terminal.ResizePaneDown" },
{ "keys": "alt+shift+left", "id": "Terminal.ResizePaneLeft" },
{ "keys": "alt+shift+right", "id": "Terminal.ResizePaneRight" },
{ "keys": "alt+shift+up", "id": "Terminal.ResizePaneUp" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
direction |
必要 | "left" 、 、 "right" 、 "up" "down" |
將調整大小窗格的方向。 |
將窗格標示為唯讀
您可以將窗格標示為唯讀,避免輸入進入文字緩衝區。 如果您嘗試關閉唯讀窗格或將文字輸入唯讀窗格,則終端機會顯示快顯警告。
命令名稱:toggleReadOnlyMode
預設識別碼:
{ "command": "toggleReadOnlyMode", "id": "Terminal.ToggleReadOnlyMode" }
您可以在窗格上啟用唯讀模式。 其運作方式與切換類似,但如果再次觸發,則不會切換狀態。
命令名稱:enableReadOnlyMode
預設識別碼:
{ "command": "enableReadOnlyMode", "id": "Terminal.EnableReadOnlyMode" }
您可以在窗格上停用唯讀模式。 其運作方式與切換類似,但如果再次觸發,則不會切換狀態。
命令名稱:disableReadOnlyMode
預設識別碼:
{ "command": "disableReadOnlyMode", "id": "Terminal.DisableReadOnlyMode" }
重新啟動窗格
此命令會在使用中窗格中手動重新啟動 commandline
。 這特別適用於 ssh
案例,當您希望在不關閉窗格的情況下重新啟動連線。
請注意,這將終止窗格中的程序 (如果目前正在執行)。
命令名稱:restartConnection
預設識別碼:
{ "command": "restartConnection", "id": "Terminal.RestartConnection" }
剪貼簿整合命令
複本
這會將選取的終端機內容複製到剪貼簿。 如果未選取任何範圍,則會將按鍵和絃直接傳送至終端機。
命令名稱:copy
預設識別碼:
{ "command": { "action": "copy", "singleLine": false }, "id": "Terminal.CopyToClipboard" }
預設繫結:
{ "keys": "ctrl+c", "id": "Terminal.CopyToClipboard" },
{ "keys": "ctrl+shift+c", "id": "Terminal.CopyToClipboard" },
{ "keys": "ctrl+insert", "id": "Terminal.CopyToClipboard" },
{ "keys": "enter", "id": "Terminal.CopyToClipboard" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
singleLine |
選擇性 | true , false |
當為 true 時,複製的內容將會複製成一行。 當為 false 時,會從選取的文字保存新行。 |
copyFormatting |
選擇性 | true 、、false "all" 、"none" 、、"html" 、"rtf" |
當為 true 時,已選取文字的色彩和字型格式也會複製到剪貼簿。 當為 false 時,只會將純文字複製到剪貼簿。 您也可以指定想要複製的格式。 當為 null 時,會繼承全域 "copyFormatting" 行為。 |
貼上
這會插入複製到剪貼簿的內容。
命令名稱:paste
預設識別碼:
{ "command": "paste", "id": "Terminal.PasteFromClipboard" }
預設繫結:
{ "keys": "ctrl+v", "id": "Terminal.PasteFromClipboard" },
{ "keys": "ctrl+shift+v", "id": "Terminal.PasteFromClipboard" },
{ "keys": "shift+insert", "id": "Terminal.PasteFromClipboard" }
展開選取範圍至文字
如果已選取範圍,則會展開選取範圍,完整包含部分選取的任何單字。
命令名稱:expandSelectionToWord
預設識別碼:
{ "command": "expandSelectionToWord", "id": "Terminal.ExpandSelectionToWord" }
全選
這會選取文字緩衝區中的所有內容。
命令名稱:selectAll
預設識別碼:
{ "command": "selectAll", "id": "Terminal.SelectAll" }
預設繫結:
{ "keys": "ctrl+shift+a", "id": "Terminal.SelectAll" }
標記模式
這會切換標記模式。 在標記模式中,您可以使用鍵盤在終端機的游標位置建立選取範圍。
命令名稱:markMode
預設識別碼:
{ "command": "markMode", "id": "Terminal.ToggleMarkMode" }
預設繫結:
{ "keys": "ctrl+shift+m", "id": "Terminal.ToggleMarkMode" }
切換選取範圍標記
使用鍵盤修改選取範圍時,您會移動選取範圍的一端。 您可以使用此動作切換至其他選取範圍標記。
命令名稱:switchSelectionEndpoint
預設識別碼:
{ "command": "switchSelectionEndpoint", "id": "Terminal.SwitchSelectionEndpoint" },
切換區塊選取
讓現有的選取專案成為區塊選取專案,這表示選取的區域是矩形,而不是包裝至每一行的開頭和結尾。
命令名稱:toggleBlockSelection
預設識別碼:
{ "command": "toggleBlockSelection", "id": "Terminal.ToggleBlockSelection" },
回捲命令
向上捲動
這會依 "rowsToScroll"
所定義的資料列數目向上捲動畫面。 如果未提供 "rowsToScroll"
,則會依系統預設所定義的數量向上捲動,與滑鼠捲動的數量相同。
命令名稱:scrollUp
預設識別碼:
{ "command": "scrollUp", "id": "Terminal.ScrollUp" }
預設繫結:
{ "keys": "ctrl+shift+up", "id": "Terminal.ScrollUp" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
rowsToScroll |
選擇性 | 整數 | 要捲動的資料列數目。 |
向下捲動
這會依 "rowsToScroll"
所定義的資料列數目向下捲動畫面。 如果未提供 "rowsToScroll"
,則會依系統預設所定義的數量向下捲動,與滑鼠捲動的數量相同。
命令名稱:scrollDown
預設識別碼:
{ "command": "scrollDown", "id": "Terminal.ScrollDown" }
預設繫結:
{ "keys": "ctrl+shift+down", "id": "Terminal.ScrollDown" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
rowsToScroll |
選擇性 | 整數 | 要捲動的資料列數目。 |
向上捲動整頁
這會將畫面向上捲動整頁,也就是視窗的高度。
命令名稱:scrollUpPage
預設識別碼:
{ "command": "scrollUpPage", "id": "Terminal.ScrollUpPage" }
預設繫結:
{ "keys": "ctrl+shift+pgup", "id": "Terminal.ScrollUpPage" }
向下捲動整頁
這會將畫面向下捲動整頁,也就是視窗的高度。
命令名稱:scrollDownPage
預設識別碼:
{ "command": "scrollDownPage", "id": "Terminal.ScrollDownPage" }
預設繫結:
{ "keys": "ctrl+shift+pgdn", "id": "Terminal.ScrollDownPage" }
捲動至最早的歷程記錄
這會將畫面向上捲動至輸入緩衝區的頂端。
命令名稱:scrollToTop
預設識別碼:
{ "command": "scrollToTop", "id": "Terminal.ScrollToTop" }
預設繫結:
{ "keys": "ctrl+shift+home", "id": "Terminal.ScrollToTop" }
捲動至最新的歷程記錄
這會將畫面向下捲動至輸入緩衝區的底部。
命令名稱:scrollToBottom
預設識別碼:
{ "command": "scrollToBottom", "id": "Terminal.ScrollToBottom" }
預設繫結:
{ "keys": "ctrl+shift+end", "id": "Terminal.ScrollToBottom" }
清除緩衝區
此動作可用於手動清除終端機緩衝區。 這適用於下列案例:當您不在命令列殼層提示字元中,且無法輕易執行 Clear-Host
/cls
/clear
的情況。
命令名稱:clearBuffer
預設識別碼:
{ "command": { "action": "clearBuffer", "clear": "all" }, "id": "Terminal.ClearBuffer" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
clear |
選擇性 | "screen" 、 、 "scrollback" "all" |
要清除的畫面部分。
|
___
視覺效果調整命令
調整字型大小
這會將文字大小變更為指定的點數量。
命令名稱:adjustFontSize
預設識別碼:
{ "command": { "action": "adjustFontSize", "delta": 1 }, "id": "Terminal.IncreaseFontSize" },
{ "command": { "action": "adjustFontSize", "delta": -1 }, "id": "Terminal.DecreaseFontSize" }
預設繫結:
{ "keys": "ctrl+plus", "id": "Terminal.IncreaseFontSize" },
{ "keys": "ctrl+minus", "id": "Terminal.DecreaseFontSize" },
{ "keys": "ctrl+numpad_plus", "id": "Terminal.IncreaseFontSize" },
{ "keys": "ctrl+numpad_minus", "id": "Terminal.DecreaseFontSize" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
delta |
必要 | 整數 | 每個命令引動的大小變更量。 |
重設字型大小
這會將文字大小重設為預設值。
命令名稱:resetFontSize
預設識別碼:
{ "command": "resetFontSize", "id": "Terminal.ResetFontSize" }
預設繫結:
{ "keys": "ctrl+0", "id": "Terminal.ResetFontSize" },
{ "keys": "ctrl+numpad_0", "id": "Terminal.ResetFontSize" }
調整不透明度
這會變更視窗的不透明度。 如果 relative
設定為 true,則會相對於目前的不透明度調整不透明度。 否則,會直接將不透明度設定為指定的 opacity
命令名稱:adjustOpacity
預設繫結:
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 0 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 25 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 50 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 75 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 100 } }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
opacity |
選擇性 | 整數 | 根據 relative 的值而定,決定終端機應該變得多麼不透明或應該變更多少不透明度 |
relative |
選擇性 | 布林值 | 如果為 true,則依照指定的 opacity 參數調整目前的不透明度。 如果為 false,請將不透明度確實設為該值。 |
切換像素著色器效果
這會切換終端機中啟用的任何像素著色器效果。 如果使用者使用 experimental.pixelShaderPath
指定有效的著色器,此動作會開啟/關閉該著色器。 還會切換「復古終端機效果」,該效果透過設定檔設定 experimental.retroTerminalEffect
啟用。
命令名稱:toggleShaderEffects
預設識別碼:
{ "command": "toggleShaderEffects", "id": "Terminal.ToggleShaderEffects" }
警告
1.6 版和更新版本已不再提供 toggleRetroEffect
動作, 建議您改用 toggleShaderEffects
。
設定色彩配置
變更使用中的色彩配置。
命令名稱:setColorScheme
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
colorScheme |
必要 | String | 要套用的色彩配置 name 。 |
範例宣告:
{ "command": { "action": "setColorScheme", "colorScheme": "Campbell" }, "id": "User.SetSchemeToCampbell" }
新增標籤
將捲動標記新增至文字緩衝區。 如有選取範圍,則會將標記放在選取範圍,否則會放在游標資料列。
命令名稱:addMark
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
color |
選擇性 | 十六進位格式的字串:"#rgb" 或 "#rrggbb" |
標記的色彩。 |
範例宣告:
{ "command": { "action": "addMark", "color": "#ff00ff" }, "id": "User.AddMark" }
卷動以標示
捲動至指定方向的捲動標記。 如需詳細資訊,請參閱 卷動標記 和 殼層整合。
命令名稱:scrollToMark
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
direction |
必要 | "first" 、 、 "previous" 、 "next" "last" |
捲動的方向。 |
範例宣告:
{ "command": { "action": "scrollToMark", "direction": "previous" }, "id": "User.ScrollToMark" }
清除標記
清除目前位置的捲動標記,無論是在選擇範圍 (如有) 或是在遊標位置。 這是實驗性功能,並不保證其持續存在。
命令名稱:clearMark
範例宣告:
{ "command": { "action": "clearMark" }, "id": "User.ClearMark" }
清除所有標記
清除文字緩衝區中的所有捲動標記。 這是實驗性功能,並不保證其持續存在。
命令名稱:clearAllMarks
範例宣告:
{ "command": { "action": "clearAllMarks" }, "id": "User.ClearAllMarks" }
___
建議
開啟建議功能表
這可讓使用者開啟建議功能表。 建議功能表中的項目由 source
屬性所控制。 建議功能表的行為與命令選擇區非常相似。 在文字方塊中輸入內容,會篩選結果且僅顯示與文字相符的項目。 按下 enter
會執行所選項目。 按下 esc
會關閉功能表。
命令名稱:showSuggestions
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
source |
必要 | 任意數目的 "recentCommands" 、"tasks" 或 "all" |
用於填入此功能表的建議來源。 請參閱下列各項說明。 |
useCommandline |
選擇性 | 布林值 | 如果啟用殼層整合 並且為 true ,則建議功能表會預先填入目前命令列的內容。 預設為 true |
建議來源
支援下列建議來源:
"recentCommands"
:這會以最近使用的命令填入建議功能表。 這些由殼層整合提供技術支援,因此只有在殼層設定為支援殼層整合時,才能使用這些功能。 如需詳細資訊,請參閱殼層整合。"tasks"
:這將使用您設定中的所有sendInput
動作填入建議功能表。"all"
:使用所有建議來源。
這些值可單獨用作字串參數值,也可以合併為陣列。 例如:
{ "command": { "action": "showSuggestions", "source": ["recentCommands", "tasks"] } },
{ "command": { "action": "showSuggestions", "source": "all" } },
{ "command": { "action": "showSuggestions", "source": "recentCommands" } },
在上述範例中,前兩個命令會開啟包含最近命令和工作的建議功能表。 第三個命令則會開啟只有最近命令的建議功能表。
重要
這項功能僅適用於 Windows 終端機預覽。
___
緩衝區匯出
匯出緩衝區
這可讓使用者將緩衝區的文字匯出至檔案。 若檔案不存在,則會建立該檔案。 如果檔案已存在,則會以終端機緩衝區文字取代其內容。
命令名稱:exportBuffer
預設識別碼:
{ "command": { "action": "exportBuffer" }, "id": "Terminal.ExportBuffer" }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
path |
選擇性 | String | 如果提供,則終端機會將緩衝區內容匯出至指定檔案。 否則,終端機會開啟檔案選擇器,選擇要匯出的檔案。 |
___
全域命令
全域叫用
這是在作業系統中全域運作的特殊動作,而不僅是在終端機視窗的內容中運作。 按下時,此動作會叫用終端機視窗。 此動作的屬性會控制下列項目:叫用哪個視窗、叫用視窗的位置以及叫用視窗時視窗的行為方式。
注意事項
當終端機運行時,任何繫結至終端機中
globalSummon
動作的按鍵都無法在其他應用程式中運作,這些按鍵一律會聚焦於終端機視窗。如果另一個執行中應用程式已使用
RegisterHotKey
API 註冊指定keys
,則終端機將無法接聽這些按鍵輸入。已提升權限和未提升權限的終端機執行個體,無法同時註冊相同按鍵。 預覽版和穩定版的終端機亦是如此,最先啟動的終端機一律優先使用。
僅當終端機執行個體已在執行中時,這些按鍵輸入才能運作。 若要在登入時自動啟動終端機,請參閱
startOnUserLogin
。
命令名稱:globalSummon
預設繫結:
此命令目前尚未在預設設定中繫結。
{ "command": { "action": "globalSummon" } }
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
desktop |
選擇性 | any 、 、 toCurrent onCurrent |
這會控制終端機該如何與虛擬桌面互動。
|
monitor |
選擇性 | any 、 、 toCurrent toMouse |
這會控制叫用視窗來源/目的地的監視器。
|
name |
選擇性 | String | 在省略時 (預設值),請使用 monitor 和 desktop 尋找適合叫用的最近使用視窗。 在提供時,叫用名稱或識別碼符合指定 name 值的視窗。 如果不存在此類視窗,請建立具有該名稱的新視窗。 |
dropdownDuration |
選擇性 | 整數 | 預設為 0 。 當提供正數時,使用持續 dropdownDuration 毫秒的動畫,從畫面頂端「滑入」視窗。 200 是此設定的合理值。 |
toggleVisibility |
選擇性 | true , false |
預設為 true 。 當為 true 時,若視窗目前為前景視窗,則按下此動作的指派按鍵會關閉視窗 (將視窗最小化)。 當為 false 時,按下指派的按鍵只會將視窗帶到前景。 |
當 隨附 monitor
或 name
desktop
時name
,會以下列方式運作:
desktop
"any"
:移至指定視窗已經開啟的桌面。"toCurrent"
:如果視窗位於另一個虛擬桌面上,則將其移至目前作用中的虛擬桌面。"onCurrent"
:如果視窗位於另一個虛擬桌面上,則將其移至目前作用中的虛擬桌面。
monitor
"any"
:將視窗保留在現有監視器上。"toCurrent"
:如果視窗位於另一個監視器上,則將其移至目前前景視窗所在的監視器上。"toMouse"
:如果視窗位於另一個監視器上,則將其移至滑鼠遊標所在的監視器上。
desktop
和 monitor
屬性可以透過下列方式合併:
組合 | "desktop": "any" |
"desktop": "toCurrent" |
"desktop": "onCurrent" |
不包含 |
---|---|---|---|---|
"monitor": "any" |
前往視窗所在桌面 (單獨保留位置) | 將視窗移至此桌面 (單獨保留位置) | 如果此桌面上沒有任何視窗:
|
叫用 MRU 視窗 |
"monitor": "toCurrent" |
前往視窗所在桌面,移至前景視窗所在的監視器上 | 將視窗移至此桌面,移至前景視窗所在的監視器上 | 如果此桌面上沒有任何視窗:
|
將 MRU 視窗叫用至前景視窗所在的監視器上 |
"monitor": "toMouse" |
前往視窗所在桌面,移至滑鼠所在的監視器上 | 將視窗移至此桌面,移至滑鼠所在的顯示器上 | 如果此桌面上沒有任何視窗:
|
將 MRU 視窗叫用至滑鼠所在的監視器上 |
不包含 | 保留其所在位置 | 移至目前桌面 | 僅限在目前桌面上 | N/A |
範例
// Summon the most recently used (MRU) window, to the current virtual desktop,
// to the monitor the mouse cursor is on, without an animation. If the window is
// already in the foreground, then minimize it.
{ "command": { "action": "globalSummon" }, "id": "User.MyGlobalSummon" },
// Summon the MRU window, by going to the virtual desktop the window is
// currently on. Move the window to the monitor the mouse is on.
{ "command": { "action": "globalSummon", "desktop": "any" }, "id": "User.MyGlobalSummonAnyDesktop" },
// Summon the MRU window to the current desktop, leaving the position of the window untouched.
{ "command": { "action": "globalSummon", "monitor": "any" }, "id": "User.MyGlobalSummonAnyMonitor" },
// Summon the MRU window, by going to the virtual desktop the window is
// currently on, leaving the position of the window untouched.
{ "command": { "action": "globalSummon", "desktop": "any", "monitor": "any" }, "id": "User.MyGlobalSummonAnywhere" },
// Summon the MRU window with a dropdown duration of 200ms.
{ "command": { "action": "globalSummon", "dropdownDuration": 200 }, "id": "User.MyGlobalSummonDrop" },
// Summon the MRU window. If the window is already in the foreground, do nothing.
{ "command": { "action": "globalSummon", "toggleVisibility": false }, "id": "User.MyGlobalSummonIfNotVisible" },
// Summon the window named "_quake". If no window with that name exists, then create a new window.
{ "command": { "action": "globalSummon", "name": "_quake" }, "id": "User.MyGlobalSummonQuake" }
開啟地震模式視窗
此動作為 globalSummon
動作的特殊變化。 其特別叫用地震視窗。 此為下列 globalSummon
動作的速記:
{
"id": "User.MySummonQuake",
"command": {
"action": "globalSummon",
"name": "_quake",
"dropdownDuration": 200,
"toggleVisibility": true,
"monitor": "toMouse",
"desktop": "toCurrent"
}
}
如果您想變更 quakeMode
動作的行為,我們建議使用您偏好的設定,在 actions
中建立新的 globalSummon
項目。
命令名稱:quakeMode
預設識別碼:
{ "command": "quakeMode", "id": "Terminal.QuakeMode" }
執行多個動作
此動作可讓使用者將多個循序動作繫結至一個命令。 這些動作不支持標識碼。
命令名稱:multipleActions
參數
名稱 | 必要性 | 接受 | 描述 |
---|---|---|---|
actions |
必要 | 動作陣列 | 要執行的 action 清單。 |
範例
{ "name": "Create My Layout", "command": {
"action": "multipleActions",
"actions": [
// Create a new tab with 3 panes
{ "action": "newTab", "tabTitle": "Work", "colorScheme": "One Half Dark" },
{ "action": "splitPane", "split": "vertical", "profile": "Windows PowerShell", "tabTitle": "Work", "colorScheme": "Campbell Powershell", },
{ "action": "splitPane", "split": "horizontal", "profile": "Windows PowerShell", "tabTitle": "Work", "colorScheme": "Campbell Powershell", },
// Create a second tab
{ "action": "newTab", "tabTitle": "Misc"},
// Go back to the first tab and zoom the first pane
{ "action": "prevTab", "tabSwitcherMode": "disabled" },
{ "action": "moveFocus", "direction": "first"},
"togglePaneZoom"
]
}}
解除繫結按鍵 (停用按鍵繫結)
您可以從任何命令停用按鍵繫結或「解除繫結」相關聯的按鍵。 使用基礎終端機應用程式 (例如 VIM) 時,可能需要這樣做。 未繫結的按鍵會傳遞至基礎終端機。
命令名稱:unbound
使用未繫結的範例:
例如,若要解除系結快捷鍵 Alt+Shift+-“ 和 Alt+Shift+=”,請在settings.json檔案的 區段中包含這些命令actions
。
{
"keybindings": [
{ "id": "unbound", "keys": "alt+shift+-" },
{ "id": "unbound", "keys": "alt+shift+=" }
]
}
使用 null 的範例:
您也可以將 "id"
設為 null
,藉此解除繫結預設與動作繫結的按鍵輸入。 這也允許按鍵輸入與命令列應用程式設定建立關聯,而不是執行預設動作。
{
"id" : null, "keys" : ["ctrl+v"]
}
使用案例:
Windows 終端機 使用快捷鍵系結Ctrl+V 做為貼上命令。 使用 WSL 命令列時,您可能須使用 Linux 應用程式 (例如 Vim) 編輯檔案。 不過,Vim 依賴 Ctrl+V 鍵系結來使用 區塊式視覺模式。 除非在 settings.json 檔案中調整 unbound
設定,讓按鍵繫結關係與 Vim 命令列應用程式建立關聯,而不是與 Windows 終端機繫結建立關聯,否則會封鎖此按鍵繫結關係,並優先使用 Windows 終端機貼上命令。