Visual Studio Code DISTRO With:
- Vim Extension
- LazyVim like global keybindings
- Github Copilot & Copilot Chat Extensions
And more sensible defaults For Maximum Productivity and Comfort.
├── profiles
│ └── prof.code-profile
├── settings.json
└── Workspaces
└── PLACE YOUR WORKSPACES HEREExtensions in profile:
- Tailwind CSS IntelliSense
- Catppuccin for VSCode
- markdownlint
- ESLint
- ES7+ React/Redux/React-Native snippets
- Prettier - Code formatter
- GitHub Copilot
- GitHub Copilot Chat
- Bash IDE
- Container Tools
- Postman
- Paste JSON as Code
- YAML
- Code Spell Checker
- vscode-icons
- Vim
- Markdown All in One
markdownlint
required for markdownlint extension.
install it or uninstall markdownlint extension.
shfmt and shellcheck
required for Bash IDE extension.
install those or uninstall Bash IDE extension.
- Clone
VSCLazydirectory in your dotfiles. - Remove
.git. - Import
profprofile from profiles/prof.code-profile. - Symlink global settings.json file for keybindings.
In my case, on linux, I save dotfiles at~/.dotfiles, which is managed withgitandstow.
ln -sf "$HOME/.dotfiles/VSCLazy/settings.json" "$HOME/.config/Code/User/settings.json"For macOS (untested)
ln -sf "$HOME/.dotfiles/VSCLazy/settings.json" "$HOME/Library/Application Support/Code/User/settings.json"For Windows (untested)
New-Item -ItemType SymbolicLink `
-Path "$env:APPDATA\Code\User\settings.json" `
-Target "$HOME\.dotfiles\VSCLazy\settings.json"NOTE:
Due to how vscode works, you must first open vscode at least once for creation of Code/User directory.
- Export your workspaces to workspaces via
File > Save Workspace As... - go to containing directory of them all
- select them all with
ctrl+a - drop them all in opened vscode instance
<leader> is set to space.
| Keybinding | Feature |
|---|---|
<C-d> |
Scroll down half page and center |
<C-u> |
Scroll up half page and center |
ctrl n |
Down (when given a dropdown) |
ctrl p |
Up (when given a dropdown) |
<leader> e |
Open file explorer |
ctrl b |
Close / open explorer |
| Keybinding | Feature |
|---|---|
s |
Search Word (EasyMotion) |
<leader> <leader> b |
Jump to word (before cursor)(EasyMotion) |
<leader> <leader> w |
Jump to word (after cursor)(EasyMotion) |
| Keybinding | Feature |
|---|---|
ctrl i |
Copilot inline chat AI |
ctrl alt i |
Copilot chat AI |
| Keybinding | Feature |
|---|---|
g d |
Go to definition |
g D |
Go to declaration |
g i |
Go to implementation |
g r |
Go to references |
g h |
Go to call hierarchy |
g y |
Go to type definition |
<leader> g g |
Focus source control |
| Keybinding | Feature |
|---|---|
K |
Show hover info |
g K |
Show parameter hints |
| Keybinding | Feature |
|---|---|
] d |
Next diagnostic |
[ d |
Previous diagnostic |
] e |
Next error |
[ e |
Previous error |
] w |
Next warning |
[ w |
Previous warning |
| Keybinding | Feature |
|---|---|
[ b |
Previous editor tab |
] b |
Next editor tab |
[ B |
Move editor left |
] B |
Move editor right |
alt {NUMBER} |
go to editor {NUMBER} |
ctrl w |
Close current editor |
<leader> b d |
Close current editor |
<leader> b r |
Close editors to the right |
<leader> b l |
Close editors to the left |
<leader> b o |
Close all other editors |
<leader> e |
Focus file explorer |
| Keybinding | Feature |
|---|---|
a |
Create a new file |
f |
Create a new directory |
d |
Delete selected file/directory |
y |
Copy selected file/directory |
p |
Paste into selected directory |
x |
Cut selected file/directory |
r |
Rename selected file/directory |
o |
Reveal file/directory in OS file manager |
| Keybinding | Feature |
|---|---|
alt {NUMBER} |
go to terminal {NUMBER} |
ctrl t |
create new terminal |
ctrl w |
delete active terminal |
ctrl i |
Copilot inline terminal chat AI |
| Keybinding | Feature |
|---|---|
<leader> s d |
Toggle problems panel |
<leader> s k |
Open command palette |
<leader> s r |
Search and replace |
<leader> s s |
Go to symbol in current file |
<leader> s S |
Go to symbol in a whole workspace |
<leader> / |
Quick text search |
| Keybinding | Feature |
|---|---|
<leader> f p |
Open recent projects (Workspaces) |
<leader> f r |
Open recent files |
<leader> f f |
Quick open file |
| Keybinding | Feature |
|---|---|
<leader> c a |
Quick fix |
<leader> c A |
Source action (depends on Markdown All In One) |
<leader> c r |
Rename symbol |
<leader> c p |
Preview markdown |
<leader> c u |
Remove unused imports |
| Keybinding | Feature |
|---|
Disclaimer
This project is purely a community-driven configuration setup and is not officially affiliated with or endorsed by Visual Studio Code (Microsoft), LazyVim, or any other commercial software vendor.
Use this configuration at your own risk. I make no guarantees regarding compatibility, stability, or fitness for any particular purpose.
I've been creating FOSS / GNU/Linux / nvim / web
related software for some time now.
If you used, forked or took code from one of my projects and you
would like to support me 👍,
you can donate here:
| type | address |
|---|---|
| Bitcoin (SegWit) | bc1ql8sp9shx4svzlwv0ckzv8s7pphw5upvmt8m2m7 |
| Ethereum (Ethereum) | 0xf2FCB0Af39DF7A608b76297e45181aF23fEB939F |