在 keybindings.json 中的 VScode 中的 when arg 中是否有检查不活动的终端编辑器?
Is there anyway to check inactive terminalEditors in when arg in keybindings.json in VScode?
如果还没有terminalEditor
打开,我想createTerminalEditor
注意:我说的是 terminalEditor
而不是 terminal
。
所以,我正在寻找一个 when
arg,它表示类似 editorAlreadyExists != terminalEditor
的内容,就像 activeEditor
接受 terminalEditor
的字符串一样。
有没有办法实现这个?
这里是activeEditor
的例子供参考,但我想检查terminalEditor
是否存在于所有已经打开的编辑器中,而不仅仅是一个activeEditor
.
{
"key": "ctrl+`",
"command": "workbench.action.createTerminalEditor",
"when": "activeEditor != terminalEditor"
},
我看到有一个 when
子句:
terminalEditorFocus
: true/false
这看起来没有帮助 除了 因为它不在列表中(通过 Developer: Inspect Context Keys
) 当没有终端编辑器打开时。所以我想也许有一个键绑定 when
子句可以利用它。但是我尝试了各种各样的事情,比如它是 null 还是 undefined 或者空字符串或者既不是 true 也不是 false 等等,但没有任何效果。我认为如果键 terminalEditorFocus
不存在,那么根本不会向键绑定解析器传递任何内容,它总是会失败。
您可以提交一个问题,要求使用特定的 terminalEditorExists
类型的 when
条款。
会有另一种方式。目前有一个实验性的 api 可以访问所有打开的选项卡。参见 proposed api. So you could write an extension that checks all the open tabs and fires the workbench.action.createTerminalEditor
command if none are a terminalEditor. It works right now in the Insiders Build, but when it will go final I don't know - it seems pretty solid now. Issue: Tab Model API。
const tabs = vscode.window.tabs;
const openTerminalEditor = tabs.some(tab => tab.viewId === 'terminalEditor'); // true/false
然后您可以使用 setContext
或 运行 命令设置您自己的上下文键。
如果还没有terminalEditor
打开,我想createTerminalEditor
注意:我说的是 terminalEditor
而不是 terminal
。
所以,我正在寻找一个 when
arg,它表示类似 editorAlreadyExists != terminalEditor
的内容,就像 activeEditor
接受 terminalEditor
的字符串一样。
有没有办法实现这个?
这里是activeEditor
的例子供参考,但我想检查terminalEditor
是否存在于所有已经打开的编辑器中,而不仅仅是一个activeEditor
.
{
"key": "ctrl+`",
"command": "workbench.action.createTerminalEditor",
"when": "activeEditor != terminalEditor"
},
我看到有一个 when
子句:
terminalEditorFocus
: true/false
这看起来没有帮助 除了 因为它不在列表中(通过 Developer: Inspect Context Keys
) 当没有终端编辑器打开时。所以我想也许有一个键绑定 when
子句可以利用它。但是我尝试了各种各样的事情,比如它是 null 还是 undefined 或者空字符串或者既不是 true 也不是 false 等等,但没有任何效果。我认为如果键 terminalEditorFocus
不存在,那么根本不会向键绑定解析器传递任何内容,它总是会失败。
您可以提交一个问题,要求使用特定的 terminalEditorExists
类型的 when
条款。
会有另一种方式。目前有一个实验性的 api 可以访问所有打开的选项卡。参见 proposed api. So you could write an extension that checks all the open tabs and fires the workbench.action.createTerminalEditor
command if none are a terminalEditor. It works right now in the Insiders Build, but when it will go final I don't know - it seems pretty solid now. Issue: Tab Model API。
const tabs = vscode.window.tabs;
const openTerminalEditor = tabs.some(tab => tab.viewId === 'terminalEditor'); // true/false
然后您可以使用 setContext
或 运行 命令设置您自己的上下文键。