Skip to content

Instantly share code, notes, and snippets.

@ZediWards
Last active November 12, 2024 04:05
Show Gist options
  • Save ZediWards/8eecb291aa10a209876c05dbd4c625dd to your computer and use it in GitHub Desktop.
Save ZediWards/8eecb291aa10a209876c05dbd4c625dd to your computer and use it in GitHub Desktop.
VS Code Settings
// Place your key bindings in this file to override the defaults
[
// NAVIGATION
{
"key": "ctrl+shift+n",
"command": "workbench.action.terminal.new",
"when": "terminalFocus | editorFocus"
},
{
"key": "ctrl+shift+j",
"command": "workbench.action.togglePanel"
},
{
"key": "ctrl+shift+a",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "ctrl+shift+b",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
},
{
"key": "ctrl+shift+w",
"command": "workbench.action.terminal.kill",
"when": "terminalFocus"
},
// FILE TREE
// {
// "command": "workbench.action.toggleSidebarVisibility",
// "key": "ctrl+e"
// },
// {
// "command": "workbench.files.action.focusFilesExplorer",
// "key": "ctrl+e",
// "when": "editorTextFocus"
// },
// {
// "command": "workbench.files.action.focusFilesExplorer",
// "key": "ctrl+e",
// "when": "editorFocus"
// },
{
"key": "n",
"command": "explorer.newFile",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "renameFile",
"key": "r",
"when": "filesExplorerFocus && !inputFocus"
},
{
"key": "shift+n",
"command": "explorer.newFolder",
"when": "explorerViewletFocus"
},
// {
// "key": "shift+n",
// "command": "workbench.action.newWindow",
// "when": "!explorerViewletFocus"
// },
{
"command": "deleteFile",
"key": "d",
"when": "filesExplorerFocus && !inputFocus"
},
// EXTRA
// {
// "key": "ctrl+shift+5",
// "command": "editor.emmet.action.matchTag"
// },
{
"key": "ctrl+z",
"command": "workbench.action.toggleZenMode"
},
{
"key": "ctrl+b ctrl+b",
"command": "gitlens.toggleLineBlame"
},
{
"key": "ctrl+-",
"command": "extension.vim_ctrl+t",
"when": "editorTextFocus && vim.active && vim.use<C-t> && !inDebugRepl"
},
{
"key": "ctrl+t",
"command": "-extension.vim_ctrl+t",
"when": "editorTextFocus && vim.active && vim.use<C-t> && !inDebugRepl"
},
// {
// "key": "ctrl+j",
// "command": "selectNextSuggestion",
// "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
// },
// {
// "key": "ctrl+k",
// "command": "selectPrevSuggestion",
// "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
// },
{
"key": "ctrl+j",
"command": "-extension.vim_ctrl+j",
"when": "editorTextFocus && vim.active && vim.use<C-j> && !inDebugRepl"
},
{
"key": "space s g",
"command": "workbench.action.findInFiles",
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
},
{
"key": "ctrl-h",
"command": "workbench.action.navigateLeft"
},
{
"key": "ctrl-l",
"command": "workbench.action.navigateRight"
},
{
"key": "ctrl-k",
"command": "workbench.action.navigateUp"
},
{
"key": "ctrl-j",
"command": "workbench.action.navigateDown"
},
{
"key": "space e",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.toggleSidebarVisibility",
"workbench.files.action.focusFilesExplorer"
]
},
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus) && !sideBarFocus"
},
{
"key": "space e",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.toggleSidebarVisibility",
"workbench.action.focusActiveEditorGroup"
]
},
"when": "sideBarFocus && !inputFocus"
},
{
"key": "space e",
"when": "vim.mode == 'Normal' && editorTextFocus && foldersViewVisible",
"command": "workbench.action.toggleSidebarVisibility"
},
{
"key": "space c s",
"command": "workbench.action.gotoSymbol",
"when": "vim.mode == 'Normal' && editorTextFocus"
},
{
// "key": "ctrl-n",
// "command": "editor.action.addSelectionToNextFindMatch",
// "when": "(vim.mode == 'Normal' || vim.mode == 'Visual') && (editorTextFocus || !inputFocus)"
// },
{
"key": "enter",
"command": "explorer.openAndPassFocus",
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceIsFolder && !inputFocus"
},
{
"key": "enter",
"command": "list.toggleExpand",
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && explorerResourceIsFolder && !inputFocus"
}
]
{
"workbench.colorTheme": "Catppuccin Mocha",
// ----Icons
// "workbench.iconTheme": "catppuccin-mocha",
// ----- Settings
// we try to make semantic highlighting look good
"editor.semanticHighlighting.enabled": true,
// prevent VSCode from modifying the terminal colors
"terminal.integrated.minimumContrastRatio": 1,
// make the window's titlebar use the workbench colors
"window.titleBarStyle": "custom",
// ------ Color overrides
// use Mocha as the base
// pink as the accent color
"catppuccin.accentColor": "lavender",
// make Mocha specifically very dark
// (this preserves other flavors!)
"catppuccin.colorOverrides": {
"mocha": {
"base": "#101019",
"mantle": "#0e0e16",
"crust": "#0a0a10",
"green": "#8baa88",
"yellow": "#c2b79e"
}
},
// use your accent (pink) on the statusBar as well
"catppuccin.customUIColors": {
"mocha": {
// "statusBar.foreground": "accent"
}
},
"catppuccin.bracketMode": "dimmed",
"catppuccin.workbenchMode": "minimal",
"accessibility.dimUnfocused.enabled": true,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"editor.rulers": [88, 110],
// Python tweaks
"python.analysis.autoImportCompletions": true,
"python.analysis.completeFunctionParens": true,
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.REPL.sendToNativeREPL": false, //false = terminal, true = repl
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"notebook.formatOnCellExecution": true,
"notebook.showFoldingControls": "always",
"notebook.defaultFormatter": "ms-python.black-formatter",
"notebook.formatOnSave.enabled": true,
"isort.args": ["--profile=black", "--line-length=88"],
"black-formatter.args": ["--line-length=88", "--skip-string-normalization"],
"flake8.args": [
"--max-line-length=88", // matching Blacks defaults
"--extend-ignore=E203,W503" // matching Blacks defaults
],
// -------------------------------------------------------------- Melky's
"editor.suggest.insertMode": "replace",
"terminal.integrated.fontFamily": "FiraCode Nerd Font Mono",
"editor.linkedEditing": true,
"javascript.updateImportsOnFileMove.enabled": "always",
// "window.zoomLevel": 0.5,
"launch": {},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// "workbench.statusBar.visible": false,
"editor.minimap.enabled": false,
"breadcrumbs.enabled": false,
"update.showReleaseNotes": false,
"zenMode.hideLineNumbers": false,
"editor.lineNumbers": "relative",
"vim.leader": "<Space>",
"vim.hlsearch": false,
"vim.highlightedyank.enable": true,
"vim.highlightedyank.color": "#a9dc7660",
"vim.highlightedyank.duration": 250,
// Normal mode key bindings
"vim.normalModeKeyBindingsNonRecursive": [
// NAVIGATION
// switch b/w buffers
{ "before": ["<S-h>"], "commands": [":bprevious"] },
{ "before": ["<S-l>"], "commands": [":bnext"] },
// splits
{ "before": ["leader", "v"], "commands": [":vsplit"] },
{ "before": ["leader", "s"], "commands": [":split"] },
// panes
{
"before": ["leader", "h"],
"commands": ["workbench.action.focusLeftGroup"]
},
{
"before": ["leader", "j"],
"commands": ["workbench.action.focusBelowGroup"]
},
{
"before": ["leader", "k"],
"commands": ["workbench.action.focusAboveGroup"]
},
{
"before": ["leader", "l"],
"commands": ["workbench.action.focusRightGroup"]
},
// NICE TO HAVE
{ "before": ["leader", "w"], "commands": [":w!"] },
{ "before": ["leader", "q"], "commands": [":q!"] },
{ "before": ["leader", "x"], "commands": [":x!"] },
{
"before": ["[", "d"],
"commands": ["editor.action.marker.prev"]
},
{
"before": ["]", "d"],
"commands": ["editor.action.marker.next"]
},
{
"before": ["<leader>", "c", "a"],
"commands": ["editor.action.quickFix"]
},
{ "before": ["leader", "f"], "commands": ["workbench.action.quickOpen"] },
{ "before": ["leader", "p"], "commands": ["editor.action.formatDocument"] },
{
"before": ["g", "h"],
"commands": ["editor.action.showDefinitionPreviewHover"]
},
{
"before": ["g", "p", "d"],
"commands": ["editor.action.peekDefinition"]
},
{
"before": ["g", "i"],
"commands": ["editor.action.goToImplementation"]
},
{
"before": ["g", "p", "i"],
"commands": ["editor.action.peekImplementation"]
},
{
"before": ["g", "q"],
"commands": ["editor.action.quickFix"]
},
{
"before": ["g", "r"],
"commands": ["editor.action.referenceSearch.trigger"]
},
{
"before": ["g", "t"],
"commands": ["editor.action.goToTypeDefinition"]
},
{
"before": ["g", "p", "t"],
"commands": ["editor.action.peekTypeDefinition"]
}
],
// Visual mode Keybindings
"vim.visualModeKeyBindings": [
// Stay in visual mode while indenting
{
"before": ["<"],
"commands": ["editor.action.outdentLines"]
},
{ "before": [">"], "commands": ["editor.action.indentLines"] },
// Move selected lines while staying in visual mode
{ "before": ["J"], "commands": ["editor.action.moveLinesDownAction"] },
{ "before": ["K"], "commands": ["editor.action.moveLinesUpAction"] },
// toggle comment selection
{ "before": ["leader", "c"], "commands": ["editor.action.commentLine"] },
// esc visual mode
{ "before": ["f", "d"], "after": ["<ESC>"] }
],
// Insert mode Keybindings
"vim.insertModeKeyBindings": [{ "before": ["f", "d"], "after": ["<ESC>"] }],
// Formatting
"editor.formatOnSave": true,
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[graphql]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[handlebars]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"go.toolsManagement.autoUpdate": true,
"workbench.activityBar.location": "top",
"window.customTitleBarVisibility": "auto",
"window.density.editorTabHeight": "compact",
"editor.snippetSuggestions": "top",
"emmet.includeLanguages": {
"javascript": "javascriptReact"
},
"javascript.inlayHints.functionLikeReturnTypes.enabled": false,
"workbench.settings.applyToAllProfiles": [
"javascript.inlayHints.functionLikeReturnTypes.enabled",
"javascript.inlayHints.parameterNames.enabled",
"javascript.inlayHints.parameterTypes.enabled",
"javascript.inlayHints.propertyDeclarationTypes.enabled",
"javascript.inlayHints.variableTypes.enabled",
"typescript.inlayHints.functionLikeReturnTypes.enabled",
"typescript.inlayHints.parameterNames.enabled",
"typescript.inlayHints.parameterTypes.enabled",
"typescript.inlayHints.propertyDeclarationTypes.enabled",
"typescript.inlayHints.variableTypes.enabled",
"javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName",
"javascript.inlayHints.variableTypes.suppressWhenTypeMatchesName",
"typescript.inlayHints.parameterNames.suppressWhenArgumentMatchesName",
"typescript.inlayHints.variableTypes.suppressWhenTypeMatchesName",
"emmet.includeLanguages",
"editor.snippetSuggestions"
],
"javascript.inlayHints.parameterNames.enabled": "none",
"javascript.inlayHints.parameterTypes.enabled": false,
"javascript.inlayHints.propertyDeclarationTypes.enabled": false,
"javascript.inlayHints.variableTypes.enabled": false,
"typescript.inlayHints.functionLikeReturnTypes.enabled": true,
"typescript.inlayHints.parameterNames.enabled": "none",
"typescript.inlayHints.parameterTypes.enabled": true,
"typescript.inlayHints.propertyDeclarationTypes.enabled": true,
"typescript.inlayHints.variableTypes.enabled": true,
"workbench.editor.pinnedTabSizing": "compact",
"workbench.editor.tabSizing": "shrink",
"totalTypeScript.hideAllTips": false,
"totalTypeScript.hideBasicTips": false
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment