如何在 console.log 中换行

How to wrap a line in console.log

我发现自己经常想用 console.log(...) 将语句或行括起来。例如,如果我有以下代码:

let myVar = "Hello";
myVar.slice(1,3);|            // '|' means where the cursor is after typing in the last line

然后我想将该行包装在 console.log 中,这样它就变成了:

let myVar = "Hello";
console.log(myVar.slice(1,3));

是否有我可以在 VS Code 中创建的快捷方式来执行此操作?我有一个应该执行此操作的扩展程序,但 80% 的时间它会出错(例如将 ) 放在 ; 之后,所以我只想做一个捷径命令总是正确的,无需安装扩展程序。我该怎么做?

我认为您将不得不对 运行 连续几个命令使用宏扩展来执行此操作。如果您先 select 编辑该行,则不需要宏扩展。使用 multi-command,将其放入您的 keybindings.json:

{
  "key": "alt+q",
  "command": "extension.multiCommand.execute",
  "args": {
    "sequence": [
      "cursorHomeSelect",
      {
        "command": "editor.action.insertSnippet",
        "args": {
          "snippet": "${TM_SELECTED_TEXT/(.*)./console.log();/}"
        }
      }
    ]
  },
  "when": "editorFocus"
}

cursorHomeSelect first to select 从光标到行的文本开头。

(.*). 捕获除最后一个字符 ; 之外的其余行。最后匹配的 ; 不会在捕获组 1 中,因此不会出现在 console.log...) 正文中。