VS Code Workflow
Keyboard-driven workflows for VS Code. This page documents the clean UI settings, custom tab shortcuts, Explorer tree navigation, and daily editing shortcuts used for a minimal development setup.
Overview
Section titled “Overview”- Use visible editor tabs instead of a single-tab workflow.
- Use Ctrl+, and Ctrl+. to move between open tabs.
- Use Ctrl+Shift+E to focus the Explorer tree.
- Use Ctrl+1 to return from the Explorer tree to the editor.
- Use the Explorer tree for file selection, rename, delete, copy, cut, paste, and folder navigation.
- Use a minimal VS Code UI so i3 handles the window environment and VS Code stays focused on editing.
- Keep the shortcut set small so the workflow is easy to remember.
Open user settings
Section titled “Open user settings”Open the command palette and edit user settings directly as JSON.
Ctrl+Shift+PPreferences: Open User Settings (JSON)On Linux, the file is usually stored here.
~/.config/Code/User/settings.jsonFor Code OSS, the path may be different.
~/.config/Code - OSS/User/settings.jsonOpen keyboard shortcuts
Section titled “Open keyboard shortcuts”Use the keyboard shortcuts UI for searching command names and checking existing bindings.
Ctrl+K Ctrl+SOpen the raw keyboard shortcuts JSON when the final configuration should be edited directly.
Ctrl+Shift+PPreferences: Open Keyboard Shortcuts (JSON)On Linux, the file is usually stored here.
~/.config/Code/User/keybindings.jsonFor Code OSS, the path may be different.
~/.config/Code - OSS/User/keybindings.jsonUser settings JSON
Section titled “User settings JSON”Use this user settings file for the clean VS Code view. It keeps editor tabs visible, disables preview tabs, hides the title/menu/status/activity UI, disables the command center, and keeps the editor focused.
{ // Theme "workbench.colorTheme": "Visual Studio Dark",
// Editor basics "editor.minimap.enabled": false, "editor.stickyScroll.enabled": false, "files.autoSave": "afterDelay",
// Extension behavior "extensions.ignoreRecommendations": true, "extensions.autoUpdate": false, "update.mode": "none",
// TypeScript / JavaScript "js/ts.updateImportsOnFileMove.enabled": "never",
// Telemetry "redhat.telemetry.enabled": false,
// GitHub Copilot disabled "github.copilot.enable": { "*": false, "plaintext": false, "markdown": false, "scminput": false },
// Minimal UI "window.titleBarStyle": "native", "window.customTitleBarVisibility": "never", "window.menuBarVisibility": "hidden", "window.commandCenter": false, "workbench.layoutControl.enabled": false, "workbench.statusBar.visible": false, "workbench.activityBar.location": "hidden", "workbench.activityBar.compact": true, "workbench.navigationControl.enabled": false, "workbench.browser.showInTitleBar": false,
// Tabs "workbench.editor.showTabs": "multiple", "workbench.editor.enablePreview": false, "workbench.editor.enablePreviewFromQuickOpen": false,
// Chat layout "chat.viewSessions.orientation": "stacked",
// Confirmations "window.confirmSaveUntitledWorkspace": false, "explorer.confirmPasteNative": false,
// Turkish locale allowed for unicode highlighting "editor.unicodeHighlight.allowedLocales": { "tr": true }}- window.titleBarStyle sets VS Code to use the native title bar mode.
- window.customTitleBarVisibility removes the remaining custom title bar strip.
- window.menuBarVisibility hides the File, Edit, Selection, View, Go, Run, Terminal, Help row.
- workbench.layoutControl.enabled removes the layout control icon area.
- window.commandCenter disables the command center in the title area.
- workbench.statusBar.visible hides the bottom status bar.
- workbench.activityBar.location hides the left activity icon strip.
- workbench.editor.showTabs keeps the normal tab row visible.
- workbench.editor.enablePreview disables preview tabs so opened files stay as real tabs.
- workbench.editor.enablePreviewFromQuickOpen disables preview behavior from quick open.
Keyboard shortcuts JSON
Section titled “Keyboard shortcuts JSON”Use this small keyboard shortcuts file. It keeps only the custom shortcuts used in the workflow.
// Place your key bindings in this file to override the defaults[ { "key": "ctrl+n", "command": "explorer.newFile", "when": "filesExplorerFocus && !inputFocus" }, { "key": "ctrl+shift+n", "command": "explorer.newFolder", "when": "filesExplorerFocus && !inputFocus" }, { "key": "ctrl+,", "command": "workbench.action.previousEditor" }, { "key": "ctrl+.", "command": "workbench.action.nextEditor" }]- Ctrl+, moves to the previous open editor tab.
- Ctrl+. moves to the next open editor tab.
- Ctrl+N creates a new file only when the Explorer tree is focused.
- Ctrl+Shift+N creates a new folder only when the Explorer tree is focused.
- The when condition keeps file and folder creation scoped to the Explorer tree.
Reload VS Code after settings changes
Section titled “Reload VS Code after settings changes”Some UI settings apply only after the VS Code window reloads. Use the command palette to reload the window.
Ctrl+Shift+PDeveloper: Reload WindowA full restart also works.
pkill codecodeEffective daily shortcut set
Section titled “Effective daily shortcut set”This is the small set used in daily work.
| Shortcut | Action |
|---|---|
| Ctrl+Shift+E | Focus Explorer tree |
| Ctrl+1 | Focus editor |
| Ctrl+, | Previous open tab |
| Ctrl+. | Next open tab |
| Ctrl+N | New file when Explorer is focused |
| Ctrl+Shift+N | New folder when Explorer is focused |
| Up / Down | Move inside Explorer tree |
| Left / Right | Collapse or expand folders in Explorer |
| Enter | Open selected file |
| F2 | Rename selected file or folder |
| Delete | Delete selected file or folder |
| Ctrl+C | Copy selected file or folder |
| Ctrl+X | Cut selected file or folder |
| Ctrl+V | Paste selected file or folder |
Tab workflow
Section titled “Tab workflow”Tabs are visible and preview mode is disabled. Opening a file keeps it as a real tab instead of replacing the previous file.
Ctrl+, # previous open tabCtrl+. # next open tabCtrl+W # close current tabCtrl+Shift+T # reopen closed tab- Ctrl+, and Ctrl+. move between open tabs, not code history.
- Go Back and Go Forward are not part of this workflow.
- The goal is predictable tab switching, not navigation history.
Explorer tree workflow
Section titled “Explorer tree workflow”Use the Explorer tree when navigating the project structure or managing files and folders.
Ctrl+Shift+E # focus Explorer treeCtrl+1 # return to editor
Up / Down # move selectionRight # expand selected folderLeft # collapse selected folderEnter # open selected file
Ctrl+N # new file when Explorer is focusedCtrl+Shift+N # new folder when Explorer is focusedF2 # rename selected file or folderDelete # delete selected file or folderCtrl+C # copy selected file or folderCtrl+X # cut selected file or folderCtrl+V # paste selected file or folder- The Explorer must be focused before Ctrl+N creates a project file.
- The Explorer must be focused before Ctrl+Shift+N creates a project folder.
- Use Ctrl+Shift+E first when file or folder creation does not trigger.
- Use Ctrl+1 to leave the tree and return to the editor.
Open files quickly
Section titled “Open files quickly”Use quick open when the file name is known. This is faster than expanding the tree deeply.
Ctrl+P # open file by nameCtrl+Shift+F # search across the projectCtrl+F # search current fileCtrl+G # go to lineCtrl+Shift+O # go to symbol in current fileCtrl+T # go to symbol in workspace- Use Ctrl+P for direct file navigation.
- Use Ctrl+Shift+F when the file is unknown but the text is known.
- Use Ctrl+F for local search inside the current file.
Editor groups and splits
Section titled “Editor groups and splits”VS Code arranges open files into editor groups. Splits create additional groups either side by side or stacked, and each group can be focused directly by position.
Ctrl+\ # split active editor into a second groupCtrl+K Ctrl+\ # split active editor downwardCtrl+1 # focus editor group 1Ctrl+2 # focus editor group 2Ctrl+3 # focus editor group 3Ctrl+K <arrow> # move current editor to another groupCreate a 2x2 layout
Section titled “Create a 2x2 layout”First split side by side, then split one of the groups downward.
Ctrl+\ # left and right splitCtrl+K Ctrl+\ # split the active group downwardText editing shortcuts
Section titled “Text editing shortcuts”These are the useful editing shortcuts to keep. They cover comments, line movement, selection, and common save or undo actions.
| Shortcut | Action |
|---|---|
| Ctrl+S | Save |
| Ctrl+Z | Undo |
| Ctrl+Shift+Z | Redo |
| Ctrl+/ | Toggle line comment |
| Ctrl+D | Select next occurrence |
| Alt+Up / Alt+Down | Move current line up or down |
| Shift+Alt+Up / Shift+Alt+Down | Duplicate current line |
| Ctrl+Shift+K | Delete current line |
| Ctrl+Left / Ctrl+Right | Move word by word |
| Ctrl+Shift+Left / Ctrl+Shift+Right | Select word by word |
Troubleshooting settings save errors
Section titled “Troubleshooting settings save errors”If VS Code reports an error while saving settings, check that the JSON is valid and that the file is owned by the current user.
ls -l ~/.config/Code/User/settings.jsonls -l ~/.config/Code/User/keybindings.jsonFix ownership if the files are owned by root or another user.
sudo chown "$USER:$USER" ~/.config/Code/User/settings.jsonsudo chown "$USER:$USER" ~/.config/Code/User/keybindings.jsonFile locations
Section titled “File locations”- User settings: ~/.config/Code/User/settings.json
- Keyboard shortcuts: ~/.config/Code/User/keybindings.json
- Code OSS user settings: ~/.config/Code - OSS/User/settings.json
- Code OSS keyboard shortcuts: ~/.config/Code - OSS/User/keybindings.json