是否可以直接从集成终端(集成终端 -> VSCode API)向 VSCode 发送命令?

时间:2021-07-20 19:47:11

标签: visual-studio-code

嗨,我想知道是否可以从集成终端调用 VSCode 命令。所以基本上是终端知道 VSCode 并且它们可以通信(至少从终端 => VSCode)

我的用例:我想让 HL 移动到终端左侧/右侧的编辑器选项卡(我在编辑器选项卡中使用终端)。此外,我希望在我的 zsh 中处于 vim 正常模式时发生这种情况。

所以我希望,当我处于正常模式并按 H 时,终端会向 VSCode 发送一个 editor.tabNext(或任何命令)。

1 个答案:

答案 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" } 定义。愿这让你和我一样快乐。