Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 是否有VS代码快捷方式可用于从选定代码或剪贴板代码创建新文件?_Visual Studio Code_Macros_Vscode Tasks - Fatal编程技术网

Visual studio code 是否有VS代码快捷方式可用于从选定代码或剪贴板代码创建新文件?

Visual studio code 是否有VS代码快捷方式可用于从选定代码或剪贴板代码创建新文件?,visual-studio-code,macros,vscode-tasks,Visual Studio Code,Macros,Vscode Tasks,我处理大型html文件,我想将它们分割成单独的文件。执行此操作的过程非常繁琐,因为它需要复制代码、创建新文件、将其粘贴到新文件中,然后选择文件夹和新名称来保存 是否有VS代码的内置快捷方式、宏或扩展来简化此操作?请注意,由于这是一个html文件,因此新的重构无法移动到新文件。它可以满足您的需要,并且可以在许多其他语言中使用,但不能在html中使用。您可以通过选择要移动的文本来访问它,并在上下文菜单中选择Refactor..——如果支持,它甚至可以向旧文件添加导入语句 这是一个宏,它可以满足您的

我处理大型html文件,我想将它们分割成单独的文件。执行此操作的过程非常繁琐,因为它需要复制代码、创建新文件、将其粘贴到新文件中,然后选择文件夹和新名称来保存


是否有VS代码的内置快捷方式、宏或扩展来简化此操作?

请注意,由于这是一个html文件,因此新的重构无法移动到新文件。它可以满足您的需要,并且可以在许多其他语言中使用,但不能在html中使用。您可以通过选择要移动的文本来访问它,并在上下文菜单中选择
Refactor..
——如果支持,它甚至可以向旧文件添加导入语句


这是一个宏,它可以满足您的需要。我正在使用宏扩展,但还有其他扩展

在settings.json中:

 "multiCommand.commands": [

    {
      "command": "multiCommand.newFileWithContent",
      "sequence": [

        // choose which one you want
        "editor.action.clipboardCutAction",
        // "editor.action.clipboardCopyAction",

        "workbench.action.files.newUntitledFile",
        "editor.action.clipboardPasteAction",

        // prompt for save immediately?
        "workbench.action.files.saveAs",

      ]
    },
{
  "key": "strl+alt+b",                            // your keybinding choice
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.newFileWithContent" }
},
然后通过命令面板(搜索“multi”)或使用keybinding(keybindings.json)触发它:

我不知道如何自动化你问题中的“选择一个文件夹和一个新名称来保存”部分。我认为您仍然需要手动执行此操作,但是在“saveAs”对话框中有一些方便的“智能感知”


2020年更新

在我得出这个答案后,你看

我认为可能有更好的方法来处理创建文件的任务,并提示一个文件夹和文件名在一次去。文件夹结构上的
saveAs
intellisense会丢失,但无论如何,了解它都是一种非常好的技术。而且不需要宏。在
bash
shell中:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "newFile",

        // assuming your folder name isn't static
      "command": "echo '${selectedText}' > ${input:folderName}/${input:fileName}.html",
      "type": "shell",
      "problemMatcher": [],
      "presentation": {    // terminal handling which you may not care about and could delete
        "echo": false,
        "reveal": "silent",
        "focus": false,
        "panel": "shared",
        "showReuseMessage": false,
        "clear": true
      },
      "promptOnClose": false
    }
  ],

  "inputs": [
    {
      "type": "promptString",     
      "id": "folderName",
      "description": "Complete my folder name.",
      "default": "folder"
    },
    {
      "type": "promptString",
      "id": "fileName",
      "description": "Complete my file name.",
      "default": "new file name"
    }
  ]
}
运行该任务的一些键绑定(或仅从命令选项板
runtask
command运行它):

就这样,选择您的任务,然后运行任务Alt+R


请注意,由于这是一个html文件,因此新的重构
移动到新文件
不可用。它可以满足您的需要,并且可以在许多其他语言中使用,但不能在html中使用。您可以通过选择要移动的文本来访问它,并在上下文菜单中选择
Refactor..
——如果支持,它甚至可以向旧文件添加导入语句


这是一个宏,它可以满足您的需要。我正在使用宏扩展,但还有其他扩展

在settings.json中:

 "multiCommand.commands": [

    {
      "command": "multiCommand.newFileWithContent",
      "sequence": [

        // choose which one you want
        "editor.action.clipboardCutAction",
        // "editor.action.clipboardCopyAction",

        "workbench.action.files.newUntitledFile",
        "editor.action.clipboardPasteAction",

        // prompt for save immediately?
        "workbench.action.files.saveAs",

      ]
    },
{
  "key": "strl+alt+b",                            // your keybinding choice
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.newFileWithContent" }
},
然后通过命令面板(搜索“multi”)或使用keybinding(keybindings.json)触发它:

我不知道如何自动化你问题中的“选择一个文件夹和一个新名称来保存”部分。我认为您仍然需要手动执行此操作,但是在“saveAs”对话框中有一些方便的“智能感知”


2020年更新

在我得出这个答案后,你看

我认为可能有更好的方法来处理创建文件的任务,并提示一个文件夹和文件名在一次去。文件夹结构上的
saveAs
intellisense会丢失,但无论如何,了解它都是一种非常好的技术。而且不需要宏。在
bash
shell中:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "newFile",

        // assuming your folder name isn't static
      "command": "echo '${selectedText}' > ${input:folderName}/${input:fileName}.html",
      "type": "shell",
      "problemMatcher": [],
      "presentation": {    // terminal handling which you may not care about and could delete
        "echo": false,
        "reveal": "silent",
        "focus": false,
        "panel": "shared",
        "showReuseMessage": false,
        "clear": true
      },
      "promptOnClose": false
    }
  ],

  "inputs": [
    {
      "type": "promptString",     
      "id": "folderName",
      "description": "Complete my folder name.",
      "default": "folder"
    },
    {
      "type": "promptString",
      "id": "fileName",
      "description": "Complete my file name.",
      "default": "new file name"
    }
  ]
}
运行该任务的一些键绑定(或仅从命令选项板
runtask
command运行它):

就这样,选择您的任务,然后运行任务Alt+R


WTF!?这太棒了!我不敢相信这不是默认功能。这将节省我很多时间和精力。你应该把它作为插件发布!世界跆拳道联盟!?这太棒了!我不敢相信这不是默认功能。这将节省我很多时间和精力。你应该把它作为插件发布!