VScode技巧合集
收录了一些使用VScode的小技巧,提高一下生产效率和码字速度。微软最拟人的一件事就是搞出来了VScode!
设置自定义快捷键
在使用markdwon/latex时,我们面对一些模版化的操作,比如latex中的图片设置——你总不会每次都手动从 “\begin{figure}”开始敲起吧?诚然,利用HyperSnips,可以完成许多语法糖,大大提升效率。但是,HyperSnips的一大问题是“识别到匹配内容就直接执行语法糖”,这大大增加了误触率。
为此,我们提出了一种使用VScode自带的用户Snippets方法,在输入语法糖后按下tab键再触发。本文介绍了设置User Snippets的方法,以及如何将其绑定到keybindings上从而实现键盘快捷键的映射。
创建文件
我们需要一些文件储存语法糖,首先需要知道在VScode中,这些文件在哪。首先打开preference选项,对应的快捷键是shift + command + P
,这会在顶部弹出一个输入框,搜索”open user setting”即可打开自定义配置文件。
这个”settings.json”文件很重要,所有插件和vscode的自定义配置信息都在这里,不过我们今天要配置的文件并不是这个。在文件名下方呈现了这个文件的目录,找到settings.json文件所在的User目录,找到其中的snippets文件夹,打开markdown.json文件。
如果你没有这个文件,请不要惊慌,这只是意味着你需要手动创建一个文件。复制路径后,打开所在的文件夹,创建一个markdwon.json文件即可,是不是很方便!
这个文件的意义是:每当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文章模版"
}
}
我们来说明一下这个代码的含义。
- “为Chirpy插入模版”是这个语法糖的名字,后续在别的地方调用时会用到,这个名字你可以随便取
- “prefix”是触发条件,在md文件中,输入”tem”再按下tab键,就能自动将body中的内容补全
- “body”是触发后显示的内容,其中的
$1
表示光标出现的位置,按下tab键,就会跳转到下一个光标对应的位置。$0
表示光标最终出现的位置 - “description”对这个语法糖的描述
设置tab触发
还剩最后一步:完成tab触发。键盘按下`command + ,”打开设置,搜索tab completion,启用,并选择为onlySnippets即可。
保存设置后,我们随便打开一个md文件,输入tem,然后按下tab,就实现自动补全啦!
后续如果要添加别的语法糖,只需要用{}
隔开即可,即:
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插入模版"
}
},
]
- “key”表示绑定的键盘快捷键
- “command”表示要执行的操作,此处的”editor.action.insertSnippet”表示插入snippet
- “when”表示触发条件,此处设置为仅当正在编辑文件,且文件为markdown时生效
- “args”很关键,其langId告诉VScode去我们前面设置好的markdown.json文件中去找,name告诉VScode找那个叫做”为Chirpy插入模版”的语法糖,然后绑定
现在,你使用快捷键ctrl + j
也可以触发我们设置好的语法糖啦!