嗨,我想知道是否可以从集成终端调用 VSCode 命令。所以基本上是终端知道 VSCode 并且它们可以通信(至少从终端 => VSCode)
我的用例:我想让 H
和 L
移动到终端左侧/右侧的编辑器选项卡(我在编辑器选项卡中使用终端)。此外,我希望在我的 zsh 中处于 vim 正常模式时发生这种情况。
所以我希望,当我处于正常模式并按 H
时,终端会向 VSCode 发送一个 editor.tabNext
(或任何命令)。
答案 0 :(得分:1)
我想我至少找到了一个解决方法。有一个名为 Remote Control
(https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-remote-control&ssr=false#review-details) 的扩展,我可以使用它向 VSCode 发送任意命令,所以这似乎有效。本来这可能是不可能的,但也许有人知道一些事情。
EDIT1
:
这是我现在的设置:
if [ ! -z $VSCODE ]; then
_sendcmd() { echo "{ \"command\": \"workbench.action.$1\" }" | websocat ws://localhost:4242 }
# define commands and register them in zsh
editor_left() { _sendcmd previousEditor }; zle -N editor_left;
editor_right() { _sendcmd nextEditor }; zle -N editor_right;
bindkey -a H editor_left
bindkey -a L editor_right
fi
其中 $VSCODE
在 VSCode 中通过 terminal.integrated.env = { "VSCODE": "1" }
定义。愿这让你和我一样快乐。