Visual Studio Code中console.log的快捷方式是什么


Answers:


170

2019年2月更新:

正如Adrian Smith和其他人所建议的那样:如果要绑定键盘快捷键来创建控制台日志语句,则可以执行以下操作:

  1. 文件>首选项>键盘快捷键
  2. 在搜索栏下方,您会看到一条消息“对于高级定制,请打开和编辑keybindings.json”,请,然后单击它
  3. 将此添加到JSON设置:
{
  "key": "ctrl+shift+l",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    "snippet": "console.log('${TM_SELECTED_TEXT}$1')$2;"
  }
}

CTRL+ SHIFT+ L将输出控制台代码段。另外,如果您已经选择了文本,它将被放置在log语句中。


如果您更想要智能/自动完成:

转到“偏好设置” ->“ 用户片段” ->“选择打字稿”(或所需的任何语言)。json应该打开一个文件。您可以在此处添加代码段。

已经有一段摘录内容console.log

"Print to console": {
    "prefix": "log",
    "body": [
        "console.log('$1');",
        "$2"
    ],
    "description": "Log output to console"
}

您必须对要使用摘要的每种语言都执行此操作。。。有点麻烦。


另外,您应该设定 "editor.snippetSuggestions": "top",以便您的代码片段显示在智能感知上方。谢谢@克里斯!

您可以在偏好设置->文本编辑器->建议中找到摘要建议


2
这曾经可以工作,但是现在不行了,因为自从上次更新以来?只有我吗? s17.postimg.org/5mxnx4umn/2017_02_14_11h10_03.jpg
Cristian Muscalu

上面定义的前缀是“ log”,因此键入“ c”将无济于事;)开始键入“ l”。
塞巴斯蒂安·塞巴尔

哦,我忘了提及我更改了它以使其与“ c”一起使用。我没有进行任何更改,并且在更新后不再起作用。没有该代码段了,但这"prefix": "c",应该使它与“ c”一起使用对吗?
克里斯蒂安·马斯卡卢

如果其他一切都正确。是。请注意,您还需要将代码段添加到要使用的每种语言。因此,如果将其添加到TS,它将无法在JS中使用,反之亦然。
塞巴斯蒂安·塞巴尔

1
您也可以单击{}搜索栏旁边的按钮来打开keybindings.json文件-最简单的方法,因为我看不到“对于高级定制,请打开和编辑keybindings.json”消息!
Aashish Chaubey,

53

上面的所有答案都可以正常工作,但是如果您不想更改Visual Studio代码的配置,而是想要自动完成,console.log(object); 则只需使用此快捷方式clg并按Ctrl+ Space进行建议,然后点击Enter
Note即可此功能可用当您安装JavaScript(ES6)代码片段扩展时。

同样,您可以自动完成:

  • CLGconsole.log(object);
  • CLOconsole.log('object :', object);
  • CCLconsole.clear(object);
  • cerconsole.error(object);
  • CTRconsole.trace(object);
  • CLTconsole.table(object);
  • cinconsole.info(object);
  • cco for console.count(label);

    (此列表继续...)

JavaScript(ES6)代码段的链接:https ://marketplace.visualstudio.com/items?itemName = xabikos.JavaScriptSnippets

在此处输入图片说明


5
完善。+1。这就是我一直在寻找的-无需进行任何配置更改。
克里斯22年

39

@Sebastian Sebald给出的最佳答案是完全可以的,但是遇到了类似的问题(不是专门的console.log,而是“丢失”),我也想提供一个答案。

您的前缀确实可以使用-默认情况下,前缀log已更改,在您的情况下,已将其更改为c。当您键入log(或c)时,VSCode将基于许多因素(即,我不知道是哪些因素,可能与类相关)生成“所有事物™”的完整列表。

诸如摘要之类的东西倾向于引向底部。要使它们达到顶部(尽管长度不限),请将其添加到您的设置中:

"editor.snippetSuggestions": "top"

3
你是我需要的英雄。谢谢!
BinarySolo

1
哈哈一点也不担心
克里斯(Chris)

我收到一个错误消息Property editor.snippetSuggestions is not allowed,那是什么意思?
Bossan

@Bossan "editor.snippetSuggestions": "top"应该放置在settings.json文件中(ctrl+shift+p并键入user settings)。或者,您可以在常规用户设置(“首选项”>“设置”)中搜索此属性,然后使用下拉菜单将其更改为top
波尔多

29

输入log并点击enter。它将自动完成console.log();


我似乎有一个错误,在某些情况下,键入log和按Enter键只能输出console.log();,而我不知道为什么?是我还是其他人可以键入log然后console.log();每次输入并获得一致的输出?
本·克拉克

2
您必须等待几毫秒/秒,命令行才能重新显示您键入的内容。有时会有些滞后
nedemir

24

在Atom中,console.log()有一个不错的快捷方式,我想在VS Code中也一样。

我使用了@kamp的解决方案,但花了我一段时间才弄清楚该怎么做。这是我使用的步骤。

  1. 转到:文件>首选项>键盘快捷键

  2. 在页面顶部,您将看到一条消息: 对于高级定制,请打开并编辑keybindings.json。

点击链接

  1. 这将打开两个窗格:默认键绑定和自定义绑定。

在右窗格中输入代码

  1. 输入@kamp提供的代码

感谢您的详细步骤
Moaaz Bhnas '18

23

其他方法是打开keybindings.json文件并添加所需的组合键。就我而言:

{
    "key": "cmd+shift+l",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "snippet": "console.log($1)$0;"
    }
}

如果您使用默认vs代码键绑定,则“ IMOL”的“ ctrl + shift + c”键用一只手IMO易于单击,并且另一键绑定尚未将其带走
Russiansummer

15

寻找高级定制的任何人都可以打开和编辑keybindings.json

在此处输入图片说明

单击此小图标以打开keybindings.json。

使用此代码生成console.log()和为选定文本生成console.log(“ Word”)。

{
  "key": "ctrl+shift+l",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    "snippet": "console.log('${TM_SELECTED_TEXT}$1')$2;"
  }
}

1
谢谢,在Mac上,必须转到代码->首选项->键盘快捷方式,然后单击该按钮,然后将{...}放入数组中。
rdprado

1
谢谢,有人应该更新接受的答案,以便其他所有人可以跳过10分钟的搜索
Kris Lamote19年

1
你节省了很多时间人!谢谢
React Developer

这在我的Mac上不存在。我需要执行cmd + shift + p,然后搜索键盘快捷键(JSON)
martinedwards,

10

当您输入单词log时,您将看到如下内容:

选择表示登录控制台的方法

如果您看到不同的日志选项,请选择一个表示登录到控制台的选项(基本上,当您具有名称日志的标识符时,这基本上是可能的。

点击Enter。

console.log()自动输入!

智慧将尽其所能!


9

如果有人有兴趣将当前选定的文本放入console.log()语句中:

{
    "key": "cmd+shift+l",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "snippet": "console.log(${TM_SELECTED_TEXT}$1)$0;"
    }
}

这太棒了!
许志安


8

clg +标签

或如上所述

日志+输入(下拉菜单中的第二个选项)

这是一个古老的问题,但我希望对其他人有用。


clg + tab给ChannelMergerNode我!
jb

我认为您需要按上面的答案中所述编辑键绑定;)
palmaone

2

下面的是当前选中的带有单引号的文本。希望能帮助到你

// Place your key bindings in this file to overwrite the defaults
[{
    "key": "ctrl+shift+c",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
        "snippet": "console.log('${TM_SELECTED_TEXT}$1')$2;"
    }

}]

2

这是一个更好的解决方案

{
        "key": "cmd+shift+c",
        "command": "editor.action.insertSnippet",
        "when": "editorTextFocus",
        "args": {
            "snippet": "console.log('${TM_SELECTED_TEXT}', $TM_SELECTED_TEXT$1);"
        }
    }

1

我不知道我正在使用什么扩展名,但是我只是键入log并点击tab来自动完成console.log(); 将光标放在花括号之间。


1

输入co并打tabenter

应该开箱即用。


我认为这可能不是很可靠,或者取决于扩展名。对我而言,co + enter仅生成文本输出,而co + tab则生成“确认”。甚至“ cons” +选项卡也只会生成“ console”。
Joel Peltonen

0

或者,您可以创建一个易于编写的函数,该函数调用console.log,然后仅调用该函数。

 var a = funtion (x) {console.log(x)}
 a(2*2);        //prints 4

这并不能回答OP的问题,因为这必须在每个项目中导入,并且只是一个直截了当的麻烦。拥有内置的钥匙锁绝对是他们的理想之选
Sweet Chilly Philly
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.