Vscode 搭配 Vim 指南

参考文档:

  1. Vim 入坑指南

  2. 在 VSCode 里面配置 Vim 的正确姿势

settings.json 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
[
"vim.insertModeKeyBindings": [
// 输入模式下,将 esc 退出输入模式的功能绑定到双击 j 上
{
"before": [
"j",
"j"
],
"after": [
"<Esc>"
]
}
],
// 将空格键设置成 leader 键
"vim.leader": "<space>",
"vim.normalModeKeyBindings": [
// 正常模式下,leader 键 + s 实现文件保存
{
"before": [
"<leader>",
"s"
],
"commands": [
":w!"
]
},
// 正常模式下,leader 键 + q 实现退出
{
"before": [
"<leader>",
"q"
],
"commands": [
":q!"
]
},
// 正常模式下,leader 键 + sq 实现文件保存并退出
{
"before": [
"<leader>",
"sq"
],
"commands": [
":wq!"
]
},
// 正常模式下,leader 键 + u 实现 ctrl + u
{
"before": [
"<leader>",
"u"
],
"after": [
"<C-u>"
]
},
{
"before": [
"<leader>",
"f"
],
"after": [
"<C-f>"
]
},
{
"before": [
"<leader>",
"d"
],
"after": [
"<C-d>"
]
},
{
"before": [
"<leader>",
"b"
],
"after": [
"<C-b>"
]
},
],
// 值设为 false,则取消 vim 对应点击事件的效果,默认使用 vscode 的
"vim.handleKeys": {
"<C-d>": true,
"<C-s>": false,
"<C-z>": false,
"<C-a>": false,
"<C-f>": false,
"<C-n>": false,
"<C-c>": false,
"<C-l>": false,
"<C-v>": false,
"<C-x>": false,
}
]

keybindings.json

ctrl + shift + p / F1: 打开键盘快捷方式(JSON)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 将键绑定放在此文件中以覆盖默认值
[
// 对 alt 键进行映射
{
"key": "alt+shift+down",
"command": "editor.action.copyLinesDownAction",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "alt+shift+up",
"command": "editor.action.copyLinesUpAction",
"when": "editorTextFocus && !editorReadonly"
},
]