是否可以在 VS Codium 的键绑定中使用输入变量?

Is it possible to use input variables in keybindings in VS Codium?

在 Visual Studio Codium 中,我想定义一个具有可变参数的命令。

我想要 IDE 打开特定的文件,该文件的名称写在另一个文件中。假设我有以下项目结构:

/home/user/myproject/
/home/user/myproject/dir1/
/home/user/myproject/dir1/problem1.py
/home/user/myproject/dir1/problem2.py
/home/user/myproject/dir2/problem1.py
...
/home/user/myproject/pointer.txt

pointer.txt 包含我要处理的文件的路径。例如,它包含: dir1/problem1.

我已阅读文档 here。现在我创建了以下结构:

keybindings.json:

    {
        "key": "numpad3",
        "command": "htmlRelatedLinks.openFile",
        "args": {
            "file": "${workspaceFolder}/${input:mycatinput}.py",
            "method": "vscode.open",
            "viewColumn": 2,
        }
    },

tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "mycat",
            "type": "shell",
            "command": "cat /home/user/myproject/pointer.txt"
        },
    ],
    "inputs": [
        {
          "id": "mycatinput",
          "type": "command",
          "command": "workbench.action.tasks.runTask",
          "args": "mycat"
        }
    ]
}

但是当我按下数字小键盘 3 时,我收到一条错误通知文本:Unable to open '${input:mycatinput}.py': File not found.

我错过了什么吗?如何在 keybindings.json 命令中指定变量,它本身是另一个命令的结果(shell 命令,而不是 vscode 命令)。

HTML Related Links v0.17.0 中是否可以使用 ${command} 变量。

连同扩展名Command Variable您可以阅读文件内容并使用它。

  {
    "key": "numpad3",
    "command": "htmlRelatedLinks.openFile",
    "args": {
      "file": "${workspaceFolder}/${command:mypointer}.py",
      "method": "vscode.open",
      "viewColumn": "2",
      "command": {
        "mypointer": {
          "command": "extension.commandvariable.file.content",
          "args": {
            "fileName": "${workspaceFolder}/pointer.txt"
          }
        }
      }
    }
  }

Command Variable也可以读取Key-Value个文件,JSON个文件,可以构造一个pick list或者prompt string,需要的时候可以转换内容。