First point, and most important point:
Use what editor suits you. Every damn time.
I happen to like VSCode, and this is my starter’s guide for it.
There is the download page here. If you want, you can do that. But meh I’ve moved away from windows because update managers should be a thing.
So use one of the below commands!
brew install visual-studio-code
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
sudo apt install apt-transport-https
sudo apt update
sudo apt install code # or code-insiders
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
yum check-update
sudo yum install code
Once you have installed vscode, you also want to ⌘
+ shift
+ p
and run the command:
Shell command: Install
code
command in path
This lets you install extensions from CLI.
THis also lets you open a cwd in shell in a VSCdoe window with code .
.
Or you can add a cwd to the last selected VSCode window with code --add .
Over time, I have multiple code folders (multiple projects) that I open in the same window. Any window with multiple folders is a workspace. I have a folder in my personal repo that contains all of these workspaces.
This allows me to easily jump back into a “system” area, such as:
Keyboard shortcuts are kindof a big point. I do have some modifications.
⌘
+ p
- open a file with fuzzy searching⌘
+ shift
+ p
- start typing a vscode command⌘
+ ctrl
+ f
- switch to full screen (or zen mode, idk, i use it only on laptop anyway)⌘
+ ,
- Open settings⌘
+ w
- Close current tab⌘
+ shift
+ w
- Close current tab and window⌘
+ b
- hide/show the side panel⌘
+ shift
+ e
- files explorer, shows a tree view⌘
+ shift
+ f
- search for stuff across multiple files (side panel) (can also replace)⌘
+ shift
+ g
- opens the git commit panel thingy⌘
+ shift
+ d
- open the run and debug panelctrl
+ ~
- open/hide terminal panel⌘
+ g
- git push origin⌘
+ f
- search for stuff in your current file (can also replace)⌘
+ shift
+ o
- fuzzy symbol search (language specific, 100x better than find)⌘
+ d
- highlight next occurrence of the highlighted string (you could then c to change them all)⌘
+ shift
+ d
- this one’s debug, it should be highlight of all of the previous one but i should fix that sometime⌘
+ r
- rename symbol (language specific, 100x better than replace)⌘
+ alt
+ f
- format your current file (this also happens on save with most file times, but some extensions are dumb)I have heavily modified VSCode over time. I like my configuration. It does have some warts though, I could clean it up.
My live settings file is decently well documented.
VSCode ships with support for Javascript built in. Support for other languages is added with extensions. I’ve listed the ones I use below, broken by language. Honestly, most of these don’t even load unless you open the filetype.
You can also paste these names into the extension pane.
Open the extension pane with ⌘
+ shift
+ x
.
Via CLI, you can install with things like:
code --install-extension <extension-name> <extension-name>
pbpaste | xargs code --install-extension
Or to just install everything I recommend:
curl -SsL https://raw.githubusercontent.com/jakdept/jakdept/main/dotfiles/vscode-install.list | xargs code --install-extension
VSCode ships with some default themes. To change your theme, run:
Preferences: Color Theme
Additional themes are just extensions.
Search for theme extensions with @category:themes
.
I use this theme myself.
code --instal-extension gerane.Theme-WarpOS
I am hooked on vim. VSCode does not natively support vim keybindings. I do miss that from Sublime. But this extension almost makes up the gap perfectly. Except your editor now needs half a second to load.
code --install-extension vscodevim.vim
This extension is the second most important extension to me. I never use it, I am sad that I do not. It allows you to join someone else’s editor. It also allows someone else to join yours. It’s like Google Docs for VSCode.
code --install-extension ms-vsliveshare.vsliveshare
Do note, Vim does make this more interesting. Also, you have to sign into Github and follow some prompts.
One of the big heavy VSCode extensions is GitLens. GitLens also drastically modifies your code window, dynamically as you move. GitLens also keeps pushing for access to Github, and Gitlab, even if you disable most of it.
mhutchie.git-graph
waderyan.gitblame
With those two extensions, and the Git support built into VSCode, I avoid gitlens
.
I’ve got a ton others to go through, I will just list the rest and their use.
HookyQR.beautify
GitHub.copilot
EditorConfig.EditorConfig
zapu.vscode-aspell
ms-vscode-remote.remote-ssh-edit
Gruntfuggly.todo-tree
quicktype.quicktype
rangav.vscode-thunder-client
atlassian.atlascode
GitHub.vscode-pull-request-github
GitLab.gitlab-workflow
ms-azuretools.vscode-docker
ms-kubernetes-tools.vscode-kubernetes-tools
Honestly, with
kubectl
anddocker
I more often just run the commands. But if you do not know them, the extensions can be more friendly.
DavidAnson.vscode-markdownlint
fabianlauer.vs-code-xml-format
GrapeCity.gc-excelviewer
dineug.vuerd-vscode
Cronos87.yaml-symbols
hilleer.yaml-plus-json
redhat.vscode-yaml
zxh404.vscode-proto3
adpyke.vscode-sql-formatter
& jakebathman.mysql-syntax
ms-vscode.hexeditor
golang.go
felixfbecker.php-intellisense
ms-vscode.cpptools
salesforce.salesforcedx-vscode-apex
ms-python.python
ms-python.vscode-pylance
rebornix.ruby
wingrunr21.vscode-ruby
CraigMaslowski.erb
jetmartin.bats
foxundermoon.shell-format
timonwong.shellcheck
bmalehorn.vscode-fish
mikestead.dotenv
jq-syntax-highlighting.jq-syntax-highlighting
luggage66.AWK
twxs.cmake
1dot75cm.RPMSpec
coolbear.systemd-unit-file
redhat.vscode-yaml
puppet.puppet-vscode
hashicorp.terraform
bbenoist.vagrant
korekontrol.saltstack
warpnet.salt-lint
samuelcolvin.jinjahtml