有没有一种方法可以在 Visual Studio 代码中用一个命令保存所有文件、提交和上传

Is there a way to save all files, commit and upload in one command in Visual Studio Code

我发现自己对我的代码做了很多修补程序,我必须在远程机器上进行测试。在 visual studio 代码中,有没有办法设置一个宏

  1. 保存所有打开的文件
  2. 提交更改(使用空白或随机提交消息)
  3. 上传所有提交

谢谢!

我认为你可以设置一个任务来为你完成工作https://code.visualstudio.com/docs/editor/tasks

如果这还不够,请告诉我,我可以给你写一个例子。 任务中最好的事情是,您可以将它们绑定到热键

为此,您需要一次 运行 多个命令,因此您需要一个扩展。使用 ryuta46.multi-command 和此配置,Ctrl+Alt+S 将保存并推送您的所有文件

settings.json (Ctrl+,):

{
    "multiCommand.commands": [{
        "command":"multiCommand.syncAllFiles",
        "sequence": [
            "workbench.action.files.saveAll",
            {
                "command": "workbench.action.tasks.runTask",
                "args": "syncAll"
            },
            "workbench.action.terminal.toggleTerminal"
        ]
    }]
}

我在命令 运行 之后添加了一个命令来切换终端,这样它就不会在您每次 运行 命令时都保持打开状态。不幸的是,即使终端已经打开它也会发生,所以如果你不想让它这样做,只需删除那行

keybindings.json (Ctrl+K Ctrl+S):

{
  "key": "ctrl+alt+s",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.syncAllFiles" },
},

tasks.json:

{
    "tasks": [
        {
            "label": "syncAll",
            "type": "shell",
            "command": "git add .;git commit -m 'Automatic Commit';git pull;git push",
        }
    ]
}

不保存文件:

keybindings.json:

{
    "key": "ctrl+alt+s",
    "command": "workbench.action.terminal.sendSequence",
    "args": {
        "text": "git add . && git commit -a -m 'Update' && git push\u000D"
    }
}

关于sendSequencehttps://code.visualstudio.com/docs/editor/integrated-terminal#_send-text-from-a-keybinding


保存文件:

MoreThanTom已调整:

(使用 https://marketplace.visualstudio.com/items?itemName=ryuta46.multi-command

settings.json:

"multiCommand.commands": [
    {
        "command": "multiCommand.syncAllFiles",
        "sequence": [
            "workbench.action.files.saveAll",
            {
                "command": "workbench.action.terminal.sendSequence",
                "args": {
                    "text": "git add . && git commit -a -m 'Update' && git push\u000D"
                }
            }
        ]
    }
]

keybindings.json:

{
  "key": "ctrl+alt+s",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.syncAllFiles" },
}

不需要tasks.