在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键

Visual Studio Code 默认是关闭了 Markdown 的智能感知提示的(因为真的是不好用,尤其是其没有中文分词的情况下)。那么在没有智能感知提示的情况下如何快速插入代码片段呢?

可以使用快捷键!

本文介绍如何为代码片段绑定快捷键。


代码片段本没有快捷键相关的字段可供设置的,不过在快捷键设置中可以添加代码片段相关的设置。

首先,在 Visual Studio Code 中打开快捷键设置:

打开快捷键设置

选择手工编辑快捷键配置文件:

手工编辑快捷键配置文件

在配置文件中添加这些代码即可关联一个代码片段:

[
  {
    "key": "alt+p",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "langId": "markdown",
      "name": "Insert a post for walterlv.com"
    }
  }
]

在这个配置中,alt+p 是我指定的快捷键,editor.action.insertSnippet 表示执行命令插入代码片段,生效条件为 editorTextFocus 及文本编辑器获得焦点的期间。

args 字段指定了两个值,作为对一个现有代码片段的引用。langId 是生效的语言 Id,name 是代码片段的名称。这个名称是我在 在 Visual Studio Code 中添加自定义的代码片段 中做的代码片段的名称。

保存,现在按下 alt+p 后就会插入指定的代码片段了。

事实上,args 也可以不是引用,而直接是代码片段的内容:

[
  {
    "key": "alt+p",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "snippet": "@[TOC](walterlv 的博客目录)"
    }
  }
]

这样,也不需要事先定义代码片段了。

额外提及以下,Visual Studio Code 快捷键只能设置全局的而不能设置仅工作区生效,详情请看 load keybindings.json from .vscode dir if there is any ? · Issue #10708 · Microsoft/vscode


参考资料

本文会经常更新,请阅读原文: https://walterlv.com/post/key-binding-to-snippets-for-vscode.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (walter.lv@qq.com)