文章

VScode技巧合集

收录了一些使用VScode的小技巧,提高一下生产效率和码字速度。微软最拟人的一件事就是搞出来了VScode!

VScode技巧合集

设置自定义快捷键

在使用markdwon/latex时,我们面对一些模版化的操作,比如latex中的图片设置——你总不会每次都手动从 “\begin{figure}”开始敲起吧?诚然,利用HyperSnips,可以完成许多语法糖,大大提升效率。但是,HyperSnips的一大问题是“识别到匹配内容就直接执行语法糖”,这大大增加了误触率。

为此,我们提出了一种使用VScode自带的用户Snippets方法,在输入语法糖后按下tab键再触发。本文介绍了设置User Snippets的方法,以及如何将其绑定到keybindings上从而实现键盘快捷键的映射。

创建文件

我们需要一些文件储存语法糖,首先需要知道在VScode中,这些文件在哪。首先打开preference选项,对应的快捷键是shift + command + P,这会在顶部弹出一个输入框,搜索”open user setting”即可打开自定义配置文件。

image-20250612154254031

这个”settings.json”文件很重要,所有插件和vscode的自定义配置信息都在这里,不过我们今天要配置的文件并不是这个。在文件名下方呈现了这个文件的目录,找到settings.json文件所在的User目录,找到其中的snippets文件夹,打开markdown.json文件。

image-20250612154607368

如果你没有这个文件,请不要惊慌,这只是意味着你需要手动创建一个文件。复制路径后,打开所在的文件夹,创建一个markdwon.json文件即可,是不是很方便!

image-20250612155034565

这个文件的意义是:每当VScode识别到你正在编辑markdown,这个文件内的snippets就会被激活,非常的智能👍。

编辑文件

打开文件后,将代码复制过去就可以啦!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "为Chirpy插入模版": {
    "prefix": "tem",
    "body": [
      "---",
      "title: $1",
      "date: $2",
      "categories: [$3, $4]",
      "tags: [$5]",
      "description: $6",
      "---",
	    "",
	    "$0"
    ],
    "description": "插入PDF文章模版"
  }

}

image-20250612160135610

我们来说明一下这个代码的含义。

  1. “为Chirpy插入模版”是这个语法糖的名字,后续在别的地方调用时会用到,这个名字你可以随便取
  2. “prefix”是触发条件,在md文件中,输入”tem”再按下tab键,就能自动将body中的内容补全
  3. “body”是触发后显示的内容,其中的$1表示光标出现的位置,按下tab键,就会跳转到下一个光标对应的位置。$0表示光标最终出现的位置
  4. “description”对这个语法糖的描述

设置tab触发

还剩最后一步:完成tab触发。键盘按下`command + ,”打开设置,搜索tab completion,启用,并选择为onlySnippets即可。

image-20250612160309471

保存设置后,我们随便打开一个md文件,输入tem,然后按下tab,就实现自动补全啦!

image-20250612160503179

后续如果要添加别的语法糖,只需要用{}隔开即可,即:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "name1": {
    "prefix": "",
    "body": [
    ],
    "description": ""
  },
  "name2": {
    "prefix": "",
    "body": [
    ],
    "description": ""
  },
  ...
}

绑定至keybindings.json

在User文件夹下新建一个keybindings.json文件,然后打开。我们来讲一下语法:

1
2
3
4
5
6
7
8
9
10
11
[
  {
    "key": "ctrl+j",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus && editorLangId == 'markdown'",
    "args": {
      "langId": "markdown",
      "name": "为Chirpy插入模版"
    }
  },
]
  1. “key”表示绑定的键盘快捷键
  2. “command”表示要执行的操作,此处的”editor.action.insertSnippet”表示插入snippet
  3. “when”表示触发条件,此处设置为仅当正在编辑文件,且文件为markdown时生效
  4. “args”很关键,其langId告诉VScode去我们前面设置好的markdown.json文件中去找,name告诉VScode找那个叫做”为Chirpy插入模版”的语法糖,然后绑定

现在,你使用快捷键ctrl + j也可以触发我们设置好的语法糖啦!

本文由作者按照 CC BY 4.0 进行授权