├── .gitignore
├── README.md
├── keybindings.json
├── settings.json
└── whichkey.json
/.gitignore:
--------------------------------------------------------------------------------
1 | web/*
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # VSCodeVim Settings
2 |
3 | VSCodeVim is a Vim emulator for Visual Studio Code + Commands
4 |
5 | ## Table of Content
6 |
7 | - [Vim Shortcuts](#-vim-shortcuts)
8 | - [VSCode Shortcuts](#-vscode-shortcuts)
9 | - [View Commands](#-view-commands)
10 | - [Emmet Commands](#-emmet-commands)
11 | - [Git Commands](#-git-commands)
12 | - [Debug Commands](#-debug-commands)
13 |
14 |
15 |
16 | ## Vim Shortcuts
17 |
18 | ### Normal Mode
19 |
20 | | Status | Command | Description |
21 | | ------------------ | ------------ | ----------------------------- |
22 | | :white_check_mark: | `` l | Last Character In The Line |
23 | | :white_check_mark: | `` h | First Character In The Line |
24 | | :white_check_mark: | K | Move 5 Line Up |
25 | | :white_check_mark: | J | Move 5 Line Down |
26 | | :white_check_mark: | CTRL n | Turn Off Search Highlighting |
27 | | :white_check_mark: | CTRL j | View Focus Above Editor Group |
28 | | :white_check_mark: | CTRL k | View Focus Below Editor Group |
29 | | :white_check_mark: | CTRL h | View Focus Left Editor Group |
30 | | :white_check_mark: | CTRL l | View Focus Right Editor Group |
31 |
32 |
33 |
34 | Settings Example (click to expand)
35 |
36 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
37 |
38 | ```json
39 | {
40 | "vim.normalModeKeyBindingsNonRecursive": [
41 | {
42 | "before": ["J"],
43 | "after": ["5", "j"]
44 | },
45 | {
46 | "before": ["K"],
47 | "after": ["5", "k"]
48 | },
49 | {
50 | "before": ["", "l"],
51 | "after": ["$"]
52 | },
53 | {
54 | "before": ["", "h"],
55 | "after": ["^"]
56 | },
57 | {
58 | "before": [""],
59 | "commands": [":nohl"]
60 | },
61 | {
62 | "before": [""],
63 | "after": ["", "h"]
64 | },
65 | {
66 | "before": [""],
67 | "after": ["", "j"]
68 | },
69 | {
70 | "before": [""],
71 | "after": ["", "k"]
72 | },
73 | {
74 | "before": [""],
75 | "after": ["", "l"]
76 | }
77 | ]
78 | }
79 | ```
80 |
81 |
82 |
83 |
84 |
85 | ### Visual Mode
86 |
87 | | Status | Command | Description |
88 | | ------------------ | ------------ | --------------------------- |
89 | | :white_check_mark: | `` l | Last Character In The Line |
90 | | :white_check_mark: | `` h | First Character In The Line |
91 | | :white_check_mark: | J | Move 5 Line Down |
92 | | :white_check_mark: | K | Move 5 Line Up |
93 |
94 |
95 |
96 | Settings Example (click to expand)
97 |
98 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
99 |
100 | ```json
101 | {
102 | "vim.visualModeKeyBindingsNonRecursive": [
103 | {
104 | "before": ["", "l"],
105 | "after": ["$"]
106 | },
107 | {
108 | "before": ["", "h"],
109 | "after": ["^"]
110 | },
111 | {
112 | "before": ["J"],
113 | "after": ["5", "j"]
114 | },
115 | {
116 | "before": ["K"],
117 | "after": ["5", "k"]
118 | }
119 | ]
120 | }
121 | ```
122 |
123 |
124 |
125 |
126 |
127 | ### Insert Mode
128 |
129 | | Status | Command | Description |
130 | | ------------------ | ------- | ---------------- |
131 | | :white_check_mark: | jk | Exit Insert Mode |
132 |
133 |
134 |
135 | Settings Example (click to expand)
136 |
137 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
138 |
139 | ```json
140 | {
141 | "vim.insertModeKeyBindingsNonRecursive": [
142 | {
143 | "before": ["j", "k"],
144 | "after": [""]
145 | }
146 | ]
147 | }
148 | ```
149 |
150 |
151 |
152 |
153 |
154 | ## VSCode Shortcuts
155 |
156 | Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.
157 |
158 | ### Normal Mode
159 |
160 | | Status | Command | Description |
161 | | ------------------ | ------------- | -------------------------- |
162 | | :white_check_mark: | `` ee | Focus On Files Explorer |
163 | | :white_check_mark: | `` a | Source Action |
164 | | :white_check_mark: | `` ss | Toggle Side Bar Visibility |
165 | | :white_check_mark: | `` ds | Duplicate Selection |
166 | | :white_check_mark: | `` fd | Format Document |
167 | | :white_check_mark: | `` q | View Close Editor |
168 | | :white_check_mark: | `` w | File Save |
169 | | :white_check_mark: | `` rs | Rename Symbol |
170 | | :white_check_mark: | `` ts | Go To Symbol In Editor |
171 | | :white_check_mark: | `` u | Transform To Title Case |
172 | | :white_check_mark: | `` i | Toggle Editor Group Sizes |
173 | | :white_check_mark: | `` o | Go To File In Editor |
174 | | :white_check_mark: | `` p | Show All Commands |
175 | | :white_check_mark: | `` mn | Go To Next Problem |
176 | | :white_check_mark: | `` mN | Go To Previous Problem |
177 | | :white_check_mark: | `` tr | Tasks Rerun Last Task |
178 | | :white_check_mark: | `` tc | Tasks Configure Task |
179 | | :white_check_mark: | `` nh | Notifications Hide |
180 | | :white_check_mark: | `` nc | Notifications Clear All |
181 | | :white_check_mark: | `` nf | Notifications Focus All |
182 | | :white_check_mark: | `` ns | Notifications Show |
183 | | :white_check_mark: | `` gl | Go To Line / Column |
184 | | :white_check_mark: | `` fb | Focus Breadcrumbs |
185 | | :white_check_mark: | `` tw | View Toggle Word Wrap |
186 |
187 |
188 |
189 | Settings Example (click to expand)
190 |
191 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
192 |
193 | ```json
194 | {
195 | "vim.normalModeKeyBindingsNonRecursive": [
196 | {
197 | "before": ["", "e", "f"],
198 | "commands": ["workbench.explorer.fileView.focus"]
199 | },
200 | {
201 | "before": ["", "a"],
202 | "commands": ["editor.action.quickFix"]
203 | },
204 | {
205 | "before": ["", "s", "b"],
206 | "commands": ["workbench.action.toggleSidebarVisibility"]
207 | },
208 | {
209 | "before": ["", "d", "s"],
210 | "commands": ["editor.action.duplicateSelection"]
211 | },
212 | {
213 | "before": ["", "f", "d"],
214 | "commands": ["editor.action.formatDocument"]
215 | },
216 | {
217 | "before": ["", "q"],
218 | "commands": ["workbench.action.closeActiveEditor"]
219 | },
220 | {
221 | "before": ["", "w"],
222 | "commands": ["workbench.action.files.save"]
223 | },
224 | {
225 | "before": ["", "r", "s"],
226 | "commands": ["editor.action.rename"]
227 | },
228 | {
229 | "before": ["", "t", "s"],
230 | "commands": ["workbench.action.gotoSymbol"]
231 | },
232 | {
233 | "before": ["", "u"],
234 | "commands": ["editor.action.transformToTitlecase"]
235 | },
236 | {
237 | "before": ["", "i"],
238 | "commands": ["workbench.action.toggleEditorWidths"]
239 | },
240 | {
241 | "before": ["", "o"],
242 | "commands": ["workbench.action.quickOpen"]
243 | },
244 | {
245 | "before": ["", "p"],
246 | "commands": ["workbench.action.showCommands"]
247 | },
248 | {
249 | "before": ["", "m", "n"],
250 | "commands": ["editor.action.marker.next"]
251 | },
252 | {
253 | "before": ["", "m", "N"],
254 | "commands": ["editor.action.marker.prev"]
255 | },
256 | {
257 | "before": ["", "t", "r"],
258 | "commands": ["workbench.action.tasks.reRunTask"]
259 | },
260 | {
261 | "before": ["", "t", "c"],
262 | "commands": ["workbench.action.tasks.configureTaskRunner"]
263 | },
264 | {
265 | "before": ["", "n", "h"],
266 | "commands": ["notifications.hideList"]
267 | },
268 | {
269 | "before": ["", "n", "c"],
270 | "commands": ["notifications.clearAll"]
271 | },
272 | {
273 | "before": ["", "n", "f"],
274 | "commands": ["notifications.focusToasts"]
275 | },
276 | {
277 | "before": ["", "n", "s"],
278 | "commands": ["notifications.showList"]
279 | },
280 | {
281 | "before": ["", "g", "l"],
282 | "commands": ["workbench.action.gotoLine"]
283 | },
284 | {
285 | "before": ["", "f", "b"],
286 | "commands": ["breadcrumbs.focusAndSelect"]
287 | },
288 | {
289 | "before": ["", "t", "w"],
290 | "commands": ["editor.action.toggleWordWrap"]
291 | }
292 | ]
293 | }
294 | ```
295 |
296 |
297 |
298 |
299 |
300 | ### Visual Mode
301 |
302 | | Status | Command | Description |
303 | | ------------------ | ------------ | -------------------------- |
304 | | :white_check_mark: | `` a | Source Action |
305 | | :white_check_mark: | `` s | Toggle Side Bar Visibility |
306 | | :white_check_mark: | `` d | Duplicate Selection |
307 | | :white_check_mark: | `` f | Format Selection |
308 | | :white_check_mark: | `` u | Transform To Title Case |
309 | | :white_check_mark: | `` i | Toggle Editor Group Sizes |
310 | | :white_check_mark: | `` o | Go To File In Editor |
311 | | :white_check_mark: | `` p | Show All Commands |
312 | | :white_check_mark: | CTRL j | Move Line Up |
313 | | :white_check_mark: | CTRL k | Move Line Down |
314 |
315 |
316 |
317 | Settings Example (click to expand)
318 |
319 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
320 |
321 | ```json
322 | {
323 | "vim.visualModeKeyBindingsNonRecursive": [
324 | {
325 | "before": ["", "a"],
326 | "commands": ["editor.action.quickFix"]
327 | },
328 | {
329 | "before": ["", "s"],
330 | "commands": ["workbench.action.toggleSidebarVisibility"]
331 | },
332 | {
333 | "before": ["", "d"],
334 | "commands": ["editor.action.duplicateSelection"]
335 | },
336 | {
337 | "before": ["", "f"],
338 | "commands": ["editor.action.formatSelection"]
339 | },
340 | {
341 | "before": ["", "u"],
342 | "commands": ["editor.action.transformToTitlecase"]
343 | },
344 | {
345 | "before": ["", "i"],
346 | "commands": ["workbench.action.toggleEditorWidths"]
347 | },
348 | {
349 | "before": ["", "o"],
350 | "commands": ["workbench.action.quickOpen"]
351 | },
352 | {
353 | "before": ["", "p"],
354 | "commands": ["workbench.action.showCommands"]
355 | },
356 | {
357 | "before": [""],
358 | "commands": ["editor.action.moveLinesDownAction"]
359 | },
360 | {
361 | "before": [""],
362 | "commands": ["editor.action.moveLinesUpAction"]
363 | }
364 | ]
365 | }
366 | ```
367 |
368 |
369 |
370 |
371 |
372 | ## View Commands
373 |
374 | ### Normal Mode
375 |
376 | | Status | Command | Description |
377 | | ------------------ | -------------- | ------------------------------------ |
378 | | :white_check_mark: | `` vii | Increase Current View Size |
379 | | :white_check_mark: | `` vdd | Decrease Current View Size |
380 | | :white_check_mark: | `` vih | Increase Editor Height |
381 | | :white_check_mark: | `` vdh | Decrease Editor Height |
382 | | :white_check_mark: | `` viw | Increase Editor Width |
383 | | :white_check_mark: | `` vdw | Decrease Editor Width |
384 | | :white_check_mark: | `` tt | File New Untitled File |
385 | | :white_check_mark: | `` tn | View Open Next Editor |
386 | | :white_check_mark: | `` tN | View Open Previous Editor |
387 | | :white_check_mark: | `` vgh | View Move Editor Group Left |
388 | | :white_check_mark: | `` vgj | View Move Editor Group Down |
389 | | :white_check_mark: | `` vgk | View Move Editor Group Up |
390 | | :white_check_mark: | `` vgl | View Move Editor Group Right |
391 | | :white_check_mark: | `` vif | View Move Editor Into First Group |
392 | | :white_check_mark: | `` vil | View Move Editor Into Last Group |
393 | | :white_check_mark: | `` vin | View Move Editor Into Next Group |
394 | | :white_check_mark: | `` vip | View Move Editor Into Previous Group |
395 | | :white_check_mark: | `` veh | View Move Editor Left |
396 | | :white_check_mark: | `` vel | View Move Editor Right |
397 | | :white_check_mark: | `` ceg | View Close Editor Group |
398 | | :white_check_mark: | `` coe | View Close Other Editors In Group |
399 | | :white_check_mark: | `` ceo | View Close Editors In Other Groups |
400 | | :white_check_mark: | `` sh | View Split Editor Left |
401 | | :white_check_mark: | `` sj | View Split Editor Down |
402 | | :white_check_mark: | `` sk | View Split Editor Up |
403 | | :white_check_mark: | `` sl | View Split Editor Right |
404 |
405 |
406 |
407 | Settings Example (click to expand)
408 |
409 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
410 |
411 | ```json
412 | {
413 | "vim.normalModeKeyBindingsNonRecursive": [
414 | {
415 | "before": ["", "v", "i", "i"],
416 | "commands": ["workbench.action.increaseViewSize"]
417 | },
418 | {
419 | "before": ["", "v", "d", "d"],
420 | "commands": ["workbench.action.decreaseViewSize"]
421 | },
422 | {
423 | "before": ["", "v", "i", "h"],
424 | "commands": ["workbench.action.increaseViewHeight"]
425 | },
426 | {
427 | "before": ["", "v", "d", "h"],
428 | "commands": ["workbench.action.decreaseViewHeight"]
429 | },
430 | {
431 | "before": ["", "v", "i", "w"],
432 | "commands": ["workbench.action.increaseViewWidth"]
433 | },
434 | {
435 | "before": ["", "v", "d", "w"],
436 | "commands": ["workbench.action.decreaseViewWidth"]
437 | },
438 | {
439 | "before": ["", "t", "t"],
440 | "commands": ["workbench.action.files.newUntitledFile"]
441 | },
442 | {
443 | "before": ["", "t", "n"],
444 | "commands": ["workbench.action.nextEditor"]
445 | },
446 | {
447 | "before": ["", "t", "N"],
448 | "commands": ["workbench.action.previousEditor"]
449 | },
450 | {
451 | "before": ["", "v", "g", "j"],
452 | "commands": ["workbench.action.moveActiveEditorGroupDown"]
453 | },
454 | {
455 | "before": ["", "v", "g", "h"],
456 | "commands": ["workbench.action.moveActiveEditorGroupLeft"]
457 | },
458 | {
459 | "before": ["", "v", "g", "l"],
460 | "commands": ["workbench.action.moveActiveEditorGroupRight"]
461 | },
462 | {
463 | "before": ["", "v", "g", "k"],
464 | "commands": ["workbench.action.moveActiveEditorGroupUp"]
465 | },
466 | {
467 | "before": ["", "v", "i", "f"],
468 | "commands": ["workbench.action.moveEditorToFirstGroup"]
469 | },
470 | {
471 | "before": ["", "v", "i", "l"],
472 | "commands": ["workbench.action.moveEditorToLastGroup"]
473 | },
474 | {
475 | "before": ["", "v", "i", "n"],
476 | "commands": ["workbench.action.moveEditorToNextGroup"]
477 | },
478 | {
479 | "before": ["", "v", "i", "p"],
480 | "commands": ["workbench.action.moveEditorToPreviousGroup"]
481 | },
482 | {
483 | "before": ["", "v", "e", "h"],
484 | "commands": ["workbench.action.moveEditorLeftInGroup"]
485 | },
486 | {
487 | "before": ["", "v", "e", "l"],
488 | "commands": ["workbench.action.moveEditorRightInGroup"]
489 | },
490 | {
491 | "before": ["", "c", "e", "g"],
492 | "commands": ["workbench.action.closeEditorsAndGroup"]
493 | },
494 | {
495 | "before": ["", "c", "o", "e"],
496 | "commands": ["workbench.action.closeOtherEditors"]
497 | },
498 | {
499 | "before": ["", "c", "e", "o"],
500 | "commands": ["workbench.action.closeEditorsInOtherGroups"]
501 | },
502 | {
503 | "before": ["", "s", "h"],
504 | "commands": ["workbench.action.splitEditorLeft"]
505 | },
506 | {
507 | "before": ["", "s", "j"],
508 | "commands": ["workbench.action.splitEditorDown"]
509 | },
510 | {
511 | "before": ["", "s", "k"],
512 | "commands": ["workbench.action.splitEditorUp"]
513 | },
514 | {
515 | "before": ["", "s", "l"],
516 | "commands": ["workbench.action.splitEditorRight"]
517 | }
518 | ]
519 | }
520 | ```
521 |
522 |
523 |
524 |
525 |
526 | ## Emmet Commands
527 |
528 | Emmet allows you to write large HTML code blocks at speed of light using well-known CSS selectors. But it’s not the only thing that every web-developer needs: occasionally you have to edit your HTML and CSS code to fix bugs and add new features.
529 |
530 | ### Normal Mode
531 |
532 | | Status | Command | Description |
533 | | ------------------ | -------------- | ------------------------------- |
534 | | :white_check_mark: | `` ei0 | Emmet Increment by 0.1 |
535 | | :white_check_mark: | `` ed0 | Emmet Decrement by 0.1 |
536 | | :white_check_mark: | `` eiu | Emmet Increment by 1 |
537 | | :white_check_mark: | `` edu | Emmet Decrement by 1 |
538 | | :white_check_mark: | `` eid | Emmet Increment by 10 |
539 | | :white_check_mark: | `` edd | Emmet Decrement by 10 |
540 | | :white_check_mark: | `` et | Emmet Go To Matching Pair |
541 | | :white_check_mark: | `` en | Emmet Go To Next Edit Point |
542 | | :white_check_mark: | `` eN | Emmet Go To Previous Edit Point |
543 | | :white_check_mark: | `` ex | Emmet Evaluate Math Expression |
544 | | :white_check_mark: | `` eml | Emmet Merge Lines |
545 | | :white_check_mark: | `` eut | Emmet Update Tag |
546 | | :white_check_mark: | `` ert | Emmet Remove Tag |
547 | | :white_check_mark: | `` esj | Emmet Split / Join Tag |
548 | | :white_check_mark: | `` eui | Emmet Update Image Size |
549 | | :white_check_mark: | `` ec | Emmet Toggle Comment |
550 | | :white_check_mark: | `` erc | Emmet Reflect CSS Value |
551 | | :white_check_mark: | `` ew | Emmet Wrap with Abbreviation |
552 |
553 |
554 |
555 | Settings Example (click to expand)
556 |
557 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
558 |
559 | ```json
560 | {
561 | "vim.normalModeKeyBindingsNonRecursive": [
562 | {
563 | "before": ["", "e", "b", "i"],
564 | "commands": ["editor.emmet.action.balanceIn"]
565 | },
566 | {
567 | "before": ["", "e", "b", "o"],
568 | "commands": ["editor.emmet.action.balanceOut"]
569 | },
570 | {
571 | "before": ["", "e", "i", "0"],
572 | "commands": ["editor.emmet.action.incrementNumberByOneTenth"]
573 | },
574 | {
575 | "before": ["", "e", "d", "0"],
576 | "commands": ["editor.emmet.action.decrementNumberByOneTenth"]
577 | },
578 | {
579 | "before": ["", "e", "i", "u"],
580 | "commands": ["editor.emmet.action.incrementNumberByOne"]
581 | },
582 | {
583 | "before": ["", "e", "d", "u"],
584 | "commands": ["editor.emmet.action.decrementNumberByOne"]
585 | },
586 | {
587 | "before": ["", "e", "i", "d"],
588 | "commands": ["editor.emmet.action.incrementNumberByTen"]
589 | },
590 | {
591 | "before": ["", "e", "d", "d"],
592 | "commands": ["editor.emmet.action.decrementNumberByTen"]
593 | },
594 | {
595 | "before": ["", "e", "t"],
596 | "commands": ["editor.emmet.action.matchTag"]
597 | },
598 | {
599 | "before": ["", "e", "n"],
600 | "commands": ["editor.emmet.action.nextEditPoint"]
601 | },
602 | {
603 | "before": ["", "e", "N"],
604 | "commands": ["editor.emmet.action.prevEditPoint"]
605 | },
606 | {
607 | "before": ["", "e", "x"],
608 | "commands": ["editor.emmet.action.evaluateMathExpression"]
609 | },
610 | {
611 | "before": ["", "e", "m", "l"],
612 | "commands": ["editor.emmet.action.mergeLines"]
613 | },
614 | {
615 | "before": ["", "e", "u", "t"],
616 | "commands": ["editor.emmet.action.updateTag"]
617 | },
618 | {
619 | "before": ["", "e", "r", "t"],
620 | "commands": ["editor.emmet.action.removeTag"]
621 | },
622 | {
623 | "before": ["", "e", "s", "j"],
624 | "commands": ["editor.emmet.action.splitJoinTag"]
625 | },
626 | {
627 | "before": ["", "e", "u", "i"],
628 | "commands": ["editor.emmet.action.updateImageSize"]
629 | },
630 | {
631 | "before": ["", "e", "c"],
632 | "commands": ["editor.emmet.action.toggleComment"]
633 | },
634 | {
635 | "before": ["", "e", "r", "c"],
636 | "commands": ["editor.emmet.action.reflectCSSValue"]
637 | },
638 | {
639 | "before": ["", "e", "w"],
640 | "commands": ["editor.emmet.action.wrapWithAbbreviation"]
641 | }
642 | ]
643 | }
644 | ```
645 |
646 |
647 |
648 |
649 |
650 | ### Visual Mode
651 |
652 | | Status | Command | Description |
653 | | ------------------ | -------------- | --------------------------------------------- |
654 | | :white_check_mark: | `` ebi | Emmet Balance (inward) |
655 | | :white_check_mark: | `` ebo | Emmet Balance (outward) |
656 | | :white_check_mark: | `` et | Emmet Go To Matching Pair |
657 | | :white_check_mark: | `` ec | Emmet Toggle Comment |
658 | | :white_check_mark: | `` en | Emmet Select Next Item |
659 | | :white_check_mark: | `` eN | Emmet Select Previous Item |
660 | | :white_check_mark: | `` ex | Emmet Evaluate Math Expression |
661 | | :white_check_mark: | `` ew | Emmet Wrap Individual Lines with Abbreviation |
662 |
663 |
664 |
665 | Settings Example (click to expand)
666 |
667 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
668 |
669 | ```json
670 | {
671 | "vim.visualModeKeyBindingsNonRecursive": [
672 | {
673 | "before": ["", "e", "b", "i"],
674 | "commands": ["editor.emmet.action.balanceIn"]
675 | },
676 | {
677 | "before": ["", "e", "b", "o"],
678 | "commands": ["editor.emmet.action.balanceOut"]
679 | },
680 | {
681 | "before": ["", "e", "t"],
682 | "commands": ["editor.emmet.action.matchTag"]
683 | },
684 | {
685 | "before": ["", "e", "c"],
686 | "commands": ["editor.emmet.action.toggleComment"]
687 | },
688 | {
689 | "before": ["", "e", "n"],
690 | "commands": ["editor.emmet.action.selectNextItem"]
691 | },
692 | {
693 | "before": ["", "e", "N"],
694 | "commands": ["editor.emmet.action.selectPrevItem"]
695 | },
696 | {
697 | "before": ["", "e", "x"],
698 | "commands": ["editor.emmet.action.evaluateMathExpression"]
699 | },
700 | {
701 | "before": ["", "e", "w"],
702 | "commands": [
703 | "editor.emmet.action.wrapIndividualLinesWithAbbreviation"
704 | ]
705 | }
706 | ]
707 | }
708 | ```
709 |
710 |
711 |
712 |
713 |
714 | ## Git Commands
715 |
716 | Git is a distributed version-control system for tracking changes in any set of files, originally designed for coordinating work among programmers cooperating on source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.
717 |
718 | ### Normal Mode
719 |
720 | | Status | Command | Description |
721 | | ------------------ | ---------------- | --------------------------------------- |
722 | | :white_check_mark: | `` gg | Focus On Source Control View |
723 | | :white_check_mark: | `` gtl | Focus On Timeline View |
724 | | :white_check_mark: | `` gir | Git Initialize Repository |
725 | | :white_check_mark: | `` gai | Git Add To .gitignore |
726 | | :white_check_mark: | `` gpg | Publish To Github |
727 | | :white_check_mark: | `` gar | Git Add Remote |
728 | | :white_check_mark: | `` grr | Git Remove Remote |
729 | | :white_check_mark: | `` gsc | Git Stage Change |
730 | | :white_check_mark: | `` gsac | Git Stage All Changes |
731 | | :white_check_mark: | `` gsam | Git Stage All Merge Changes |
732 | | :white_check_mark: | `` gsat | Git Stage All Tracked Changes |
733 | | :white_check_mark: | `` gsau | Git Stage All Untracked Changes |
734 | | :white_check_mark: | `` guc | Git Unstage Changes |
735 | | :white_check_mark: | `` guac | Git Unstage All Changes |
736 | | :white_check_mark: | `` gcm | Git Commit |
737 | | :white_check_mark: | `` gca | Git Commit All |
738 | | :white_check_mark: | `` gcs | Git Commit Staged |
739 | | :white_check_mark: | `` gce | Git Commit Empty |
740 | | :white_check_mark: | `` gulc | Git Undo Last Commit |
741 | | :white_check_mark: | `` gph | Git Push |
742 | | :white_check_mark: | `` gpf | Git Push (Force) |
743 | | :white_check_mark: | `` gpbt | Git Push To... |
744 | | :white_check_mark: | `` gpbtf | Git Push To... (Force) |
745 | | :white_check_mark: | `` gpl | Git Pull |
746 | | :white_check_mark: | `` gPf | Git Pull From... |
747 | | :white_check_mark: | `` gPr | Git Pull (Rebase) |
748 | | :white_check_mark: | `` gAr | Git Abort Rebase |
749 | | :white_check_mark: | `` gcb | Git Create Branch |
750 | | :white_check_mark: | `` gcbf | Git Create Branch From |
751 | | :white_check_mark: | `` gdb | Git Delete Branch |
752 | | :white_check_mark: | `` gmb | Git Merge Branch |
753 | | :white_check_mark: | `` gpb | Git Publish Branch |
754 | | :white_check_mark: | `` grb | Git Rename Branch |
755 | | :white_check_mark: | `` gRb | Git Rebase Branch |
756 | | :white_check_mark: | `` gC | Git Checkout To |
757 | | :white_check_mark: | `` gCd | Git Checkout To (Detached) |
758 | | :white_check_mark: | `` gcp | Git Cherry Pick |
759 | | :white_check_mark: | `` gdc | Git Discard Changes |
760 | | :white_check_mark: | `` gdac | Git Discard All Changes |
761 | | :white_check_mark: | `` gdat | Git Discard All Tracked Changes |
762 | | :white_check_mark: | `` gdau | Git Discard All Untracked Changes |
763 | | :white_check_mark: | `` gss | Git Stash |
764 | | :white_check_mark: | `` gsiu | Git Stash (Include Untracked) |
765 | | :white_check_mark: | `` gas | Git Apply Stash |
766 | | :white_check_mark: | `` gals | Git Apply Latest Stash |
767 | | :white_check_mark: | `` gds | Git Drop Stash |
768 | | :white_check_mark: | `` gps | Git Pop Stash |
769 | | :white_check_mark: | `` gpls | Git Pop Latest Stash |
770 | | :white_check_mark: | `` gct | Git Create Tag |
771 | | :white_check_mark: | `` gdt | Git Delete Tag |
772 | | :white_check_mark: | `` gpt | Git Push Tags |
773 | | :white_check_mark: | `` gff | Git Fetch |
774 | | :white_check_mark: | `` gfp | Git Fetch (Prune) |
775 | | :white_check_mark: | `` gffar | Git Fetch From All Remotes |
776 | | :white_check_mark: | `` goc | Git Open Changes |
777 | | :white_check_mark: | `` gof | Git Open File |
778 | | :white_check_mark: | `` gsn | Git Show Next Change |
779 | | :white_check_mark: | `` gsN | Git Show Previous Change |
780 | | :white_check_mark: | `` gmn | Git Move To Next Change |
781 | | :white_check_mark: | `` gmN | Git Move To Previous Change |
782 | | :white_check_mark: | `` gcn | Git Compare Editor Next Change |
783 | | :white_check_mark: | `` gcN | Git Compare Editor Previous Change |
784 | | :white_check_mark: | `` giv | Git Toggle Inline View |
785 | | :white_check_mark: | `` mcb | Merge Conflict Accept Both |
786 | | :white_check_mark: | `` mcc | Merge Conflict Accept Current |
787 | | :white_check_mark: | `` mci | Merge Conflict Accept Incoming |
788 | | :white_check_mark: | `` mcab | Merge Conflict Accept All Both |
789 | | :white_check_mark: | `` mcac | Merge Conflict Accept All Current |
790 | | :white_check_mark: | `` mcai | Merge Conflict Accept All Incoming |
791 | | :white_check_mark: | `` mco | Merge Conflict Compare Current Conflict |
792 | | :white_check_mark: | `` mcn | Merge Conflict Next Conflict |
793 | | :white_check_mark: | `` mcN | Merge Conflict Previous Conflict |
794 |
795 |
796 |
797 | Settings Example (click to expand)
798 |
799 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
800 |
801 | ```json
802 | {
803 | "vim.normalModeKeyBindingsNonRecursive": [
804 | {
805 | "before": ["leader", "g", "g"],
806 | "commands": ["workbench.scm.focus"]
807 | },
808 | {
809 | "before": ["leader", "g", "t", "l"],
810 | "commands": ["timeline.focus"]
811 | },
812 | {
813 | "before": ["leader", "g", "i", "r"],
814 | "commands": ["git.init"]
815 | },
816 | {
817 | "before": ["leader", "g", "a", "i"],
818 | "commands": ["git.ignore"]
819 | },
820 | {
821 | "before": ["leader", "g", "p", "g"],
822 | "commands": ["github.publish"]
823 | },
824 | {
825 | "before": ["leader", "g", "a", "r"],
826 | "commands": ["git.addRemote"]
827 | },
828 | {
829 | "before": ["leader", "g", "r", "r"],
830 | "commands": ["git.removeRemote"]
831 | },
832 | {
833 | "before": ["leader", "g", "s", "c"],
834 | "commands": ["git.stage"]
835 | },
836 | {
837 | "before": ["leader", "g", "s", "a", "c"],
838 | "commands": ["git.stageAll"]
839 | },
840 | {
841 | "before": ["leader", "g", "s", "a", "m"],
842 | "commands": ["git.stageAllMerge"]
843 | },
844 | {
845 | "before": ["leader", "g", "s", "a", "t"],
846 | "commands": ["git.stageAllTracked"]
847 | },
848 | {
849 | "before": ["leader", "g", "s", "a", "u"],
850 | "commands": ["git.stageAllUntracked"]
851 | },
852 | {
853 | "before": ["leader", "g", "u", "c"],
854 | "commands": ["git.unstage"]
855 | },
856 | {
857 | "before": ["leader", "g", "u", "a", "c"],
858 | "commands": ["git.unstageAll"]
859 | },
860 | {
861 | "before": ["leader", "g", "c", "c"],
862 | "commands": ["git.commit"]
863 | },
864 | {
865 | "before": ["leader", "g", "c", "a"],
866 | "commands": ["git.commitAll"]
867 | },
868 | {
869 | "before": ["leader", "g", "c", "s"],
870 | "commands": ["git.commitStaged"]
871 | },
872 | {
873 | "before": ["leader", "g", "c", "e"],
874 | "commands": ["git.commitEmpty"]
875 | },
876 | {
877 | "before": ["leader", "g", "u", "l", "c"],
878 | "commands": ["git.undoCommit"]
879 | },
880 | {
881 | "before": ["leader", "g", "p", "h"],
882 | "commands": ["git.push"]
883 | },
884 | {
885 | "before": ["leader", "g", "p", "f"],
886 | "commands": ["git.pushForce"]
887 | },
888 | {
889 | "before": ["leader", "g", "p", "b", "t"],
890 | "commands": ["git.pushTo"]
891 | },
892 | {
893 | "before": ["leader", "g", "p", "b", "t", "f"],
894 | "commands": ["git.pushToForce"]
895 | },
896 | {
897 | "before": ["leader", "g", "p", "l"],
898 | "commands": ["git.pull"]
899 | },
900 | {
901 | "before": ["leader", "g", "P", "f"],
902 | "commands": ["git.pullFrom"]
903 | },
904 | {
905 | "before": ["leader", "g", "P", "r"],
906 | "commands": ["git.pullRebase"]
907 | },
908 | {
909 | "before": ["leader", "g", "A", "r"],
910 | "commands": ["git.rebaseAbort"]
911 | },
912 | {
913 | "before": ["leader", "g", "c", "b"],
914 | "commands": ["git.branch"]
915 | },
916 | {
917 | "before": ["leader", "g", "c", "b", "f"],
918 | "commands": ["git.branchFrom"]
919 | },
920 | {
921 | "before": ["leader", "g", "d", "b"],
922 | "commands": ["git.deleteBranch"]
923 | },
924 | {
925 | "before": ["leader", "g", "m", "b"],
926 | "commands": ["git.merge"]
927 | },
928 | {
929 | "before": ["leader", "g", "p", "b"],
930 | "commands": ["git.publish"]
931 | },
932 | {
933 | "before": ["leader", "g", "r", "b"],
934 | "commands": ["git.renameBranch"]
935 | },
936 | {
937 | "before": ["leader", "g", "R", "b"],
938 | "commands": ["git.rebase"]
939 | },
940 | {
941 | "before": ["leader", "g", "C"],
942 | "commands": ["git.checkout"]
943 | },
944 | {
945 | "before": ["leader", "g", "C", "d"],
946 | "commands": ["git.checkoutDetached"]
947 | },
948 | {
949 | "before": ["leader", "g", "c", "p"],
950 | "commands": ["git.cherryPick"]
951 | },
952 | {
953 | "before": ["leader", "g", "d", "c"],
954 | "commands": ["git.clean"]
955 | },
956 | {
957 | "before": ["leader", "g", "d", "a", "c"],
958 | "commands": ["git.cleanAll"]
959 | },
960 | {
961 | "before": ["leader", "g", "d", "a", "t"],
962 | "commands": ["git.cleanAllTracked"]
963 | },
964 | {
965 | "before": ["leader", "g", "d", "a", "u"],
966 | "commands": ["git.cleanAllUntracked"]
967 | },
968 | {
969 | "before": ["leader", "g", "s", "s"],
970 | "commands": ["git.stash"]
971 | },
972 | {
973 | "before": ["leader", "g", "s", "i", "u"],
974 | "commands": ["git.stashIncludeUntracked"]
975 | },
976 | {
977 | "before": ["leader", "g", "a", "s"],
978 | "commands": ["git.stashApply"]
979 | },
980 | {
981 | "before": ["leader", "g", "a", "l", "s"],
982 | "commands": ["git.stashApplyLatest"]
983 | },
984 | {
985 | "before": ["leader", "g", "d", "s"],
986 | "commands": ["git.stashDrop"]
987 | },
988 | {
989 | "before": ["leader", "g", "p", "s"],
990 | "commands": ["git.stashPop"]
991 | },
992 | {
993 | "before": ["leader", "g", "p", "l", "s"],
994 | "commands": ["git.stashPopLatest"]
995 | },
996 | {
997 | "before": ["leader", "g", "c", "t"],
998 | "commands": ["git.createTag"]
999 | },
1000 | {
1001 | "before": ["leader", "g", "d", "t"],
1002 | "commands": ["git.deleteTag"]
1003 | },
1004 | {
1005 | "before": ["leader", "g", "p", "t"],
1006 | "commands": ["git.pushTags"]
1007 | },
1008 | {
1009 | "before": ["leader", "g", "f", "f"],
1010 | "commands": ["git.fetch"]
1011 | },
1012 | {
1013 | "before": ["leader", "g", "f", "p"],
1014 | "commands": ["git.fetchPrune"]
1015 | },
1016 | {
1017 | "before": ["leader", "g", "f", "f", "a", "r"],
1018 | "commands": ["git.fetchAll"]
1019 | },
1020 | {
1021 | "before": ["leader", "g", "o", "c"],
1022 | "commands": ["git.openChange"]
1023 | },
1024 | {
1025 | "before": ["leader", "g", "o", "f"],
1026 | "commands": ["git.openFile"]
1027 | },
1028 | {
1029 | "before": ["leader", "g", "s", "n"],
1030 | "commands": ["editor.action.dirtydiff.next"]
1031 | },
1032 | {
1033 | "before": ["leader", "g", "s", "N"],
1034 | "commands": ["editor.action.dirtydiff.previous"]
1035 | },
1036 | {
1037 | "before": ["leader", "g", "m", "n"],
1038 | "commands": ["workbench.action.editor.nextChange"]
1039 | },
1040 | {
1041 | "before": ["leader", "g", "m", "N"],
1042 | "commands": ["workbench.action.editor.previousChange"]
1043 | },
1044 | {
1045 | "before": ["leader", "g", "c", "n"],
1046 | "commands": ["workbench.action.compareEditor.nextChange"]
1047 | },
1048 | {
1049 | "before": ["leader", "g", "c", "N"],
1050 | "commands": ["workbench.action.compareEditor.previousChange"]
1051 | },
1052 | {
1053 | "before": ["leader", "g", "i", "v"],
1054 | "commands": ["toggle.diff.renderSideBySide"]
1055 | },
1056 | {
1057 | "before": ["leader", "m", "c", "b"],
1058 | "commands": ["merge-conflict.accept.both"]
1059 | },
1060 | {
1061 | "before": ["leader", "m", "c", "c"],
1062 | "commands": ["merge-conflict.accept.current"]
1063 | },
1064 | {
1065 | "before": ["leader", "m", "c", "i"],
1066 | "commands": ["merge-conflict.accept.incoming"]
1067 | },
1068 | {
1069 | "before": ["leader", "m", "c", "a", "b"],
1070 | "commands": ["merge-conflict.accept.all-both"]
1071 | },
1072 | {
1073 | "before": ["leader", "m", "c", "a", "c"],
1074 | "commands": ["merge-conflict.accept.all-current"]
1075 | },
1076 | {
1077 | "before": ["leader", "m", "c", "a", "i"],
1078 | "commands": ["merge-conflict.accept.all-incoming"]
1079 | },
1080 | {
1081 | "before": ["leader", "m", "c", "o"],
1082 | "commands": ["merge-conflict.compare"]
1083 | },
1084 | {
1085 | "before": ["leader", "m", "c", "n"],
1086 | "commands": ["merge-conflict.next"]
1087 | },
1088 | {
1089 | "before": ["leader", "m", "c", "N"],
1090 | "commands": ["merge-conflict.previous"]
1091 | }
1092 | ]
1093 | }
1094 | ```
1095 |
1096 |
1097 |
1098 |
1099 |
1100 | ### Visual Mode
1101 |
1102 | | Status | Command | Description |
1103 | | ------------------ | -------------- | ------------------------------- |
1104 | | :white_check_mark: | `` gs | Git Stage Selected Ranges |
1105 | | :white_check_mark: | `` gu | Git Unstage Selected Ranges |
1106 | | :white_check_mark: | `` gr | Git Revert Selected Ranges |
1107 | | :white_check_mark: | `` mca | Merge Conflict Accept Selection |
1108 |
1109 |
1110 |
1111 | Settings Example (click to expand)
1112 |
1113 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
1114 |
1115 | ```json
1116 | {
1117 | "vim.visualModeKeyBindingsNonRecursive": [
1118 | {
1119 | "before": ["", "g", "s"],
1120 | "commands": ["git.stageSelectedRanges"]
1121 | },
1122 | {
1123 | "before": ["", "g", "u"],
1124 | "commands": ["git.unstageSelectedRanges"]
1125 | },
1126 | {
1127 | "before": ["", "g", "r"],
1128 | "commands": ["git.revertSelectedRanges"]
1129 | },
1130 | {
1131 | "before": ["leader", "m", "c", "a"],
1132 | "commands": ["merge-conflict.accept.selection"]
1133 | }
1134 | ]
1135 | }
1136 | ```
1137 |
1138 |
1139 |
1140 |
1141 |
1142 | ## Debug Commands
1143 |
1144 | Debugging is a core feature of Visual Studio Code. In this tutorial, we will show you how to configure and use debugging basics. We will walk you through how you get started with Node. js debugging in VS Code.
1145 |
1146 | ### Normal Mode
1147 |
1148 | | Status | Command | Description |
1149 | | ------------------ | -------------- | -------------------------------- |
1150 | | :white_check_mark: | `` df | View Show Run And Debug |
1151 | | :white_check_mark: | `` dc | Debug Continue |
1152 | | :white_check_mark: | `` dp | Debug Pause |
1153 | | :white_check_mark: | `` dr | Debug Restart |
1154 | | :white_check_mark: | `` dh | Debug Show Hover |
1155 | | :white_check_mark: | `` ds | Debug Start Debugging |
1156 | | :white_check_mark: | `` di | Debug Step Into |
1157 | | :white_check_mark: | `` du | Debug Step Out |
1158 | | :white_check_mark: | `` do | Debug Step Over |
1159 | | :white_check_mark: | `` dx | Debug Stop |
1160 | | :white_check_mark: | `` db | Debug Toggle Breakpoint |
1161 | | :white_check_mark: | `` dal | Debug Add Logpoint |
1162 | | :white_check_mark: | `` daf | Debug Add Function Breakpoint |
1163 | | :white_check_mark: | `` dac | Debug Add Conditional Breakpoint |
1164 | | :white_check_mark: | `` dai | Debug Inline Breakpoint |
1165 | | :white_check_mark: | `` deb | Debug Enable All Breakpoint |
1166 | | :white_check_mark: | `` ddb | Debug Disable All Breakpoint |
1167 | | :white_check_mark: | `` drb | Debug Remove All Breakpoint |
1168 | | :white_check_mark: | `` dn | Debug Go To Next Breakpoint |
1169 | | :white_check_mark: | `` dN | Debug Go To Previous Breakpoint |
1170 |
1171 |
1172 |
1173 | Settings Example (click to expand)
1174 |
1175 | Below is an example of a [settings.json](https://code.visualstudio.com/Docs/customization/userandworkspace) file with settings relevant to VSCodeVim:
1176 |
1177 | ```json
1178 | {
1179 | "vim.normalModeKeyBindingsNonRecursive": [
1180 | {
1181 | "before": ["", "d", "f"],
1182 | "commands": ["workbench.view.debug"]
1183 | },
1184 | {
1185 | "before": ["", "d", "c"],
1186 | "commands": ["workbench.action.debug.continue"]
1187 | },
1188 | {
1189 | "before": ["", "d", "p"],
1190 | "commands": ["workbench.action.debug.pause"]
1191 | },
1192 | {
1193 | "before": ["", "d", "r"],
1194 | "commands": ["workbench.action.debug.restart"]
1195 | },
1196 | {
1197 | "before": ["", "d", "h"],
1198 | "commands": ["editor.debug.action.showDebugHover"]
1199 | },
1200 | {
1201 | "before": ["", "d", "s"],
1202 | "commands": ["workbench.action.debug.start"]
1203 | },
1204 | {
1205 | "before": ["", "d", "i"],
1206 | "commands": ["workbench.action.debug.stepInto"]
1207 | },
1208 | {
1209 | "before": ["", "d", "u"],
1210 | "commands": ["workbench.action.debug.stepOut"]
1211 | },
1212 | {
1213 | "before": ["", "d", "o"],
1214 | "commands": ["workbench.action.debug.stepOver"]
1215 | },
1216 | {
1217 | "before": ["", "d", "b"],
1218 | "commands": ["editor.debug.action.toggleBreakpoint"]
1219 | },
1220 | {
1221 | "before": ["", "d", "x"],
1222 | "commands": ["workbench.action.debug.stop"]
1223 | },
1224 | {
1225 | "before": ["", "d", "a", "l"],
1226 | "commands": ["editor.debug.action.addLogPoint"]
1227 | },
1228 | {
1229 | "before": ["", "d", "a", "f"],
1230 | "commands": [
1231 | "workbench.debug.viewlet.action.addFunctionBreakpointAction"
1232 | ]
1233 | },
1234 | {
1235 | "before": ["", "d", "a", "c"],
1236 | "commands": ["editor.debug.action.conditionalBreakpoint"]
1237 | },
1238 | {
1239 | "before": ["", "d", "a", "i"],
1240 | "commands": ["editor.debug.action.toggleInlineBreakpoint"]
1241 | },
1242 | {
1243 | "before": ["", "d", "e", "b"],
1244 | "commands": ["workbench.debug.viewlet.action.enableAllBreakpoints"]
1245 | },
1246 | {
1247 | "before": ["", "d", "d", "b"],
1248 | "commands": ["workbench.debug.viewlet.action.disableAllBreakpoints"]
1249 | },
1250 | {
1251 | "before": ["", "d", "r", "b"],
1252 | "commands": ["workbench.debug.viewlet.action.removeAllBreakpoints"]
1253 | },
1254 | {
1255 | "before": ["", "d", "n"],
1256 | "commands": ["editor.debug.action.goToNextBreakpoint"]
1257 | },
1258 | {
1259 | "before": ["", "d", "N"],
1260 | "commands": ["editor.debug.action.goToPreviousBreakpoint"]
1261 | }
1262 | ]
1263 | }
1264 | ```
1265 |
1266 |
1267 |
1268 |
1269 |
1270 | ## VSCode Explorer
1271 |
1272 | ### Focus Sidebar File Explorer
1273 |
1274 | | Status | Command | Description |
1275 | | ------------------ | ------- | ---------------------------- |
1276 | | :white_check_mark: | e | File Focus On Files Explorer |
1277 | | :white_check_mark: | a | File New File |
1278 | | :white_check_mark: | A | File New Folder |
1279 | | :white_check_mark: | y | File Copy |
1280 | | :white_check_mark: | x | File Cut |
1281 | | :white_check_mark: | p | File Paste |
1282 | | :white_check_mark: | r | File Rename |
1283 | | :white_check_mark: | d | File Move To Trash |
1284 | | :white_check_mark: | D | File Delete Permanent |
1285 | | :white_check_mark: | c | File Collapse Folders |
1286 | | :white_check_mark: | s | Open To The Sidebar |
1287 | | :white_check_mark: | f | Reveal In The File Explorer |
1288 | | :white_check_mark: | t | Open In Integrated Terminal |
1289 | | :white_check_mark: | u | Copy Path |
1290 | | :white_check_mark: | i | Copy Relative Path |
1291 |
1292 |
1293 |
1294 | Keybinding Example (click to expand)
1295 |
1296 | Visual Studio Code lets you perform most tasks directly from the keyboard. This page lists out the default bindings (keyboard shortcuts) [keybindings.json](https://code.visualstudio.com/docs/getstarted/keybindings) and describes how you can update them.
1297 |
1298 | ```json
1299 | [
1300 | // Explorer
1301 | {
1302 | "key": "e",
1303 | "command": "workbench.explorer.fileView.focus",
1304 | "when": "!editorFocus && !inputFocus"
1305 | },
1306 | {
1307 | "key": "a",
1308 | "command": "explorer.newFile",
1309 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
1310 | },
1311 | {
1312 | "key": "shift+a",
1313 | "command": "explorer.newFolder",
1314 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
1315 | },
1316 | {
1317 | "key": "y",
1318 | "command": "filesExplorer.copy",
1319 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
1320 | },
1321 | {
1322 | "key": "x",
1323 | "command": "filesExplorer.cut",
1324 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
1325 | },
1326 | {
1327 | "key": "p",
1328 | "command": "filesExplorer.paste",
1329 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
1330 | },
1331 | {
1332 | "key": "r",
1333 | "command": "renameFile",
1334 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
1335 | },
1336 | {
1337 | "key": "d",
1338 | "command": "moveFileToTrash",
1339 | "when": "explorerResourceMoveableToTrash && explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
1340 | },
1341 | {
1342 | "key": "shift+d",
1343 | "command": "deleteFile",
1344 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
1345 | },
1346 | {
1347 | "key": "c",
1348 | "command": "workbench.files.action.collapseExplorerFolders",
1349 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
1350 | },
1351 | {
1352 | "key": "s",
1353 | "command": "explorer.openToSide",
1354 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
1355 | },
1356 | {
1357 | "key": "f",
1358 | "command": "revealFileInOS",
1359 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
1360 | },
1361 | {
1362 | "key": "t",
1363 | "command": "openInTerminal",
1364 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
1365 | },
1366 | {
1367 | "key": "u",
1368 | "command": "copyFilePath",
1369 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
1370 | },
1371 | {
1372 | "key": "i",
1373 | "command": "copyRelativeFilePath",
1374 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
1375 | }
1376 | ]
1377 | ```
1378 |
1379 |
1380 |
1381 |
1382 |
1383 | ## VSCode Panel
1384 |
1385 | ### Focus Terminal
1386 |
1387 | | Status | Command | Description |
1388 | | ------------------ | ------- | -------------------------------- |
1389 | | :white_check_mark: | CTRL m | View Toggle Maximized Panel |
1390 | | :white_check_mark: | CTRL J | Terminal Scroll Down (Line) |
1391 | | :white_check_mark: | CTRL H | Terminal Scroll Down (Page) |
1392 | | :white_check_mark: | CTRL K | Terminal Scroll Down (Line) |
1393 | | :white_check_mark: | CTRL L | Terminal Scroll Down (Page) |
1394 | | :white_check_mark: | CTRL n | Terminal Focus Next Terminal |
1395 | | :white_check_mark: | CTRL N | Terminal Focus Previous Terminal |
1396 |
1397 |
1398 |
1399 | Keybinding Example (click to expand)
1400 |
1401 | Visual Studio Code lets you perform most tasks directly from the keyboard. This page lists out the default bindings (keyboard shortcuts) [keybindings.json](https://code.visualstudio.com/docs/getstarted/keybindings) and describes how you can update them.
1402 |
1403 | ```json
1404 | [
1405 | // Terminal
1406 | {
1407 | "key": "ctrl+m",
1408 | "command": "workbench.action.toggleMaximizedPanel",
1409 | "when": "terminalFocus && terminalProcessSupported"
1410 | },
1411 | {
1412 | "key": "ctrl+shift+j",
1413 | "command": "workbench.action.terminal.scrollDown",
1414 | "when": "terminalFocus && terminalProcessSupported"
1415 | },
1416 | {
1417 | "key": "ctrl+shift+k",
1418 | "command": "workbench.action.terminal.scrollUp",
1419 | "when": "terminalFocus && terminalProcessSupported"
1420 | },
1421 | {
1422 | "key": "ctrl+shift+h",
1423 | "command": "workbench.action.terminal.scrollDownPage",
1424 | "when": "terminalFocus && terminalProcessSupported"
1425 | },
1426 | {
1427 | "key": "ctrl+shift+l",
1428 | "command": "workbench.action.terminal.scrollUpPage",
1429 | "when": "terminalFocus && terminalProcessSupported"
1430 | },
1431 | {
1432 | "key": "ctrl+n",
1433 | "command": "workbench.action.terminal.focusNext",
1434 | "when": "terminalFocus && terminalProcessSupported"
1435 | },
1436 | {
1437 | "key": "ctrl+shift+n",
1438 | "command": "workbench.action.terminal.focusPrevious",
1439 | "when": "terminalFocus && terminalProcessSupported"
1440 | }
1441 | ]
1442 | ```
1443 |
1444 |
1445 |
1446 |
1447 |
--------------------------------------------------------------------------------
/keybindings.json:
--------------------------------------------------------------------------------
1 | [
2 | // Explorer
3 | {
4 | "key": "e",
5 | "command": "workbench.explorer.fileView.focus",
6 | "when": "!editorFocus && !inputFocus"
7 | },
8 | {
9 | "key": "a",
10 | "command": "explorer.newFile",
11 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
12 | },
13 | {
14 | "key": "shift+a",
15 | "command": "explorer.newFolder",
16 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
17 | },
18 | {
19 | "key": "y",
20 | "command": "filesExplorer.copy",
21 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
22 | },
23 | {
24 | "key": "x",
25 | "command": "filesExplorer.cut",
26 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
27 | },
28 | {
29 | "key": "p",
30 | "command": "filesExplorer.paste",
31 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
32 | },
33 | {
34 | "key": "r",
35 | "command": "renameFile",
36 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
37 | },
38 | {
39 | "key": "d",
40 | "command": "moveFileToTrash",
41 | "when": "explorerResourceMoveableToTrash && explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
42 | },
43 | {
44 | "key": "shift+d",
45 | "command": "deleteFile",
46 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
47 | },
48 | {
49 | "key": "c",
50 | "command": "workbench.files.action.collapseExplorerFolders",
51 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
52 | },
53 | {
54 | "key": "s",
55 | "command": "explorer.openToSide",
56 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
57 | },
58 | {
59 | "key": "f",
60 | "command": "revealFileInOS",
61 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
62 | },
63 | {
64 | "key": "t",
65 | "command": "openInTerminal",
66 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
67 | },
68 | {
69 | "key": "u",
70 | "command": "copyFilePath",
71 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
72 | },
73 | {
74 | "key": "i",
75 | "command": "copyRelativeFilePath",
76 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
77 | },
78 | // Git
79 | {
80 | "key": "g",
81 | "command": "workbench.scm.focus",
82 | "when": "!editorFocus && !inputFocus"
83 | },
84 | {
85 | "key": "o",
86 | "command": "workbench.action.focusNextPart",
87 | "when": "timelineFollowActiveEditor && !inputFocus"
88 | },
89 | {
90 | "key": "c",
91 | "command": "git.timeline.copyCommitId",
92 | "when": "timelineFollowActiveEditor && !inputFocus"
93 | },
94 | // Terminal
95 | {
96 | "key": "ctrl+m",
97 | "command": "workbench.action.toggleMaximizedPanel",
98 | "when": "terminalFocus && terminalProcessSupported"
99 | },
100 | {
101 | "key": "ctrl+shift+j",
102 | "command": "workbench.action.terminal.scrollDown",
103 | "when": "terminalFocus && terminalProcessSupported"
104 | },
105 | {
106 | "key": "ctrl+shift+k",
107 | "command": "workbench.action.terminal.scrollUp",
108 | "when": "terminalFocus && terminalProcessSupported"
109 | },
110 | {
111 | "key": "ctrl+shift+h",
112 | "command": "workbench.action.terminal.scrollDownPage",
113 | "when": "terminalFocus && terminalProcessSupported"
114 | },
115 | {
116 | "key": "ctrl+shift+l",
117 | "command": "workbench.action.terminal.scrollUpPage",
118 | "when": "terminalFocus && terminalProcessSupported"
119 | },
120 | {
121 | "key": "ctrl+n",
122 | "command": "workbench.action.terminal.focusNext",
123 | "when": "terminalFocus && terminalProcessSupported"
124 | },
125 | {
126 | "key": "ctrl+shift+n",
127 | "command": "workbench.action.terminal.focusPrevious",
128 | "when": "terminalFocus && terminalProcessSupported"
129 | }
130 | ]
131 |
--------------------------------------------------------------------------------
/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "vim.insertModeKeyBindingsNonRecursive": [
3 | // Vim Shortcuts
4 | {
5 | "before": ["j", "k"],
6 | "after": [""]
7 | }
8 | ],
9 | "vim.visualModeKeyBindingsNonRecursive": [
10 | // Vim Shortcuts
11 | {
12 | "before": ["", "l"],
13 | "after": ["$"]
14 | },
15 | {
16 | "before": ["", "h"],
17 | "after": ["^"]
18 | },
19 | {
20 | "before": ["J"],
21 | "after": ["5", "j"]
22 | },
23 | {
24 | "before": ["K"],
25 | "after": ["5", "k"]
26 | },
27 | // VSCode Shortcuts
28 | {
29 | "before": ["", "a"],
30 | "commands": ["editor.action.quickFix"]
31 | },
32 | {
33 | "before": ["", "s"],
34 | "commands": ["workbench.action.toggleSidebarVisibility"]
35 | },
36 | {
37 | "before": ["", "d"],
38 | "commands": ["editor.action.duplicateSelection"]
39 | },
40 | {
41 | "before": ["", "f"],
42 | "commands": ["editor.action.formatSelection"]
43 | },
44 | {
45 | "before": ["", "u"],
46 | "commands": ["editor.action.transformToTitlecase"]
47 | },
48 | {
49 | "before": ["", "i"],
50 | "commands": ["workbench.action.toggleEditorWidths"]
51 | },
52 | {
53 | "before": ["", "o"],
54 | "commands": ["workbench.action.quickOpen"]
55 | },
56 | {
57 | "before": ["", "p"],
58 | "commands": ["workbench.action.showCommands"]
59 | },
60 | {
61 | "before": [""],
62 | "commands": ["editor.action.moveLinesDownAction"]
63 | },
64 | {
65 | "before": [""],
66 | "commands": ["editor.action.moveLinesUpAction"]
67 | },
68 | // Emmet
69 | {
70 | "before": ["", "e", "b", "i"],
71 | "commands": ["editor.emmet.action.balanceIn"]
72 | },
73 | {
74 | "before": ["", "e", "b", "o"],
75 | "commands": ["editor.emmet.action.balanceOut"]
76 | },
77 | {
78 | "before": ["", "e", "t"],
79 | "commands": ["editor.emmet.action.matchTag"]
80 | },
81 | {
82 | "before": ["", "e", "c"],
83 | "commands": ["editor.emmet.action.toggleComment"]
84 | },
85 | {
86 | "before": ["", "e", "n"],
87 | "commands": ["editor.emmet.action.selectNextItem"]
88 | },
89 | {
90 | "before": ["", "e", "N"],
91 | "commands": ["editor.emmet.action.selectPrevItem"]
92 | },
93 | {
94 | "before": ["", "e", "x"],
95 | "commands": ["editor.emmet.action.evaluateMathExpression"]
96 | },
97 | {
98 | "before": ["", "e", "w"],
99 | "commands": [
100 | "editor.emmet.action.wrapIndividualLinesWithAbbreviation"
101 | ]
102 | },
103 | // Git
104 | {
105 | "before": ["", "g", "s"],
106 | "commands": ["git.stageSelectedRanges"]
107 | },
108 | {
109 | "before": ["", "g", "u"],
110 | "commands": ["git.unstageSelectedRanges"]
111 | },
112 | {
113 | "before": ["", "g", "r"],
114 | "commands": ["git.revertSelectedRanges"]
115 | },
116 | {
117 | "before": ["leader", "m", "c", "a"],
118 | "commands": ["merge-conflict.accept.selection"]
119 | }
120 | ],
121 | "vim.normalModeKeyBindingsNonRecursive": [
122 | // Vim Shortcuts
123 | {
124 | "before": ["J"],
125 | "after": ["5", "j"]
126 | },
127 | {
128 | "before": ["K"],
129 | "after": ["5", "k"]
130 | },
131 | {
132 | "before": ["", "l"],
133 | "after": ["$"]
134 | },
135 | {
136 | "before": ["", "h"],
137 | "after": ["^"]
138 | },
139 | {
140 | "before": [""],
141 | "commands": [":nohl"]
142 | },
143 | {
144 | "before": [""],
145 | "after": ["", "h"]
146 | },
147 | {
148 | "before": [""],
149 | "after": ["", "j"]
150 | },
151 | {
152 | "before": [""],
153 | "after": ["", "k"]
154 | },
155 | {
156 | "before": [""],
157 | "after": ["", "l"]
158 | },
159 | // VSCode Shortcuts
160 | {
161 | "before": ["", "e", "f"],
162 | "commands": ["workbench.explorer.fileView.focus"]
163 | },
164 | {
165 | "before": ["", "a"],
166 | "commands": ["editor.action.quickFix"]
167 | },
168 | {
169 | "before": ["", "s", "s"],
170 | "commands": ["workbench.action.toggleSidebarVisibility"]
171 | },
172 | {
173 | "before": ["", "d", "s"],
174 | "commands": ["editor.action.duplicateSelection"]
175 | },
176 | {
177 | "before": ["", "f", "d"],
178 | "commands": ["editor.action.formatDocument"]
179 | },
180 | {
181 | "before": ["", "q"],
182 | "commands": ["workbench.action.closeActiveEditor"]
183 | },
184 | {
185 | "before": ["", "w"],
186 | "commands": ["workbench.action.files.save"]
187 | },
188 | {
189 | "before": ["", "r", "s"],
190 | "commands": ["editor.action.rename"]
191 | },
192 | {
193 | "before": ["", "t", "s"],
194 | "commands": ["workbench.action.gotoSymbol"]
195 | },
196 | {
197 | "before": ["", "u"],
198 | "commands": ["editor.action.transformToTitlecase"]
199 | },
200 | {
201 | "before": ["", "i"],
202 | "commands": ["workbench.action.toggleEditorWidths"]
203 | },
204 | {
205 | "before": ["", "o"],
206 | "commands": ["workbench.action.quickOpen"]
207 | },
208 | {
209 | "before": ["", "p"],
210 | "commands": ["workbench.action.showCommands"]
211 | },
212 | {
213 | "before": ["", "m", "n"],
214 | "commands": ["editor.action.marker.next"]
215 | },
216 | {
217 | "before": ["", "m", "N"],
218 | "commands": ["editor.action.marker.prev"]
219 | },
220 | {
221 | "before": ["", "t", "r"],
222 | "commands": ["workbench.action.tasks.reRunTask"]
223 | },
224 | {
225 | "before": ["", "t", "c"],
226 | "commands": ["workbench.action.tasks.configureTaskRunner"]
227 | },
228 | {
229 | "before": ["", "n", "h"],
230 | "commands": ["notifications.hideList"]
231 | },
232 | {
233 | "before": ["", "n", "c"],
234 | "commands": ["notifications.clearAll"]
235 | },
236 | {
237 | "before": ["", "n", "f"],
238 | "commands": ["notifications.focusToasts"]
239 | },
240 | {
241 | "before": ["", "n", "s"],
242 | "commands": ["notifications.showList"]
243 | },
244 | {
245 | "before": ["", "g", "l"],
246 | "commands": ["workbench.action.gotoLine"]
247 | },
248 | {
249 | "before": ["", "f", "b"],
250 | "commands": ["breadcrumbs.focusAndSelect"]
251 | },
252 | {
253 | "before": ["", "t", "w"],
254 | "commands": ["editor.action.toggleWordWrap"]
255 | },
256 | // View Commands
257 | {
258 | "before": ["", "v", "i", "i"],
259 | "commands": ["workbench.action.increaseViewSize"]
260 | },
261 | {
262 | "before": ["", "v", "d", "d"],
263 | "commands": ["workbench.action.decreaseViewSize"]
264 | },
265 | {
266 | "before": ["", "v", "i", "h"],
267 | "commands": ["workbench.action.increaseViewHeight"]
268 | },
269 | {
270 | "before": ["", "v", "d", "h"],
271 | "commands": ["workbench.action.decreaseViewHeight"]
272 | },
273 | {
274 | "before": ["", "v", "i", "w"],
275 | "commands": ["workbench.action.increaseViewWidth"]
276 | },
277 | {
278 | "before": ["", "v", "d", "w"],
279 | "commands": ["workbench.action.decreaseViewWidth"]
280 | },
281 | {
282 | "before": ["", "t", "t"],
283 | "commands": ["workbench.action.files.newUntitledFile"]
284 | },
285 | {
286 | "before": ["", "t", "n"],
287 | "commands": ["workbench.action.nextEditor"]
288 | },
289 | {
290 | "before": ["", "t", "N"],
291 | "commands": ["workbench.action.previousEditor"]
292 | },
293 | {
294 | "before": ["", "v", "g", "j"],
295 | "commands": ["workbench.action.moveActiveEditorGroupDown"]
296 | },
297 | {
298 | "before": ["", "v", "g", "h"],
299 | "commands": ["workbench.action.moveActiveEditorGroupLeft"]
300 | },
301 | {
302 | "before": ["