vscode
推荐配置
{
// ---------------------------------------------------------------------
"extensions.autoUpdate": "on",
"update.mode": "default",
// ---------------------------------------------------------------------
// System
// ---------------------------------------------------------------------
// breadcrumbs
"breadcrumbs.enabled": true,
// diffEditor
"diffEditor.wordWrap": "off",
// editor
"editor.bracketPairColorization.enabled": true,
"editor.fontFamily": "FiraCode Nerd Font",
"editor.fontLigatures": true,
"editor.fontSize": 18,
"editor.fontWeight": "400",
"editor.guides.bracketPairs": "active",
"editor.guides.indentation": true,
"editor.linkedEditing": true,
"editor.renderWhitespace": "all",
"editor.quickSuggestions": {
"other": "on",
"comments": "on",
"strings": "on",
},
// emmet
"emmet.includeLanguages": {},
// explorer
"explorer.confirmDelete": false,
"explorer.sortOrder": "type",
// extensions
"extensions.ignoreRecommendations": true,
// files
"files.autoGuessEncoding": true,
"files.associations": {},
"files.encoding": "utf8",
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
},
// git
"git.autorefresh": false,
"git.confirmSync": false,
// search
"search.followSymlinks": false,
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.code-search": true,
},
// settingsSync
"settingsSync.ignoredSettings": [],
// terminal
"terminal.integrated.defaultProfile.linux": "Term",
"terminal.integrated.defaultProfile.osx": "Term",
"terminal.integrated.defaultProfile.windows": "Term",
"terminal.integrated.fontFamily": "FiraCode Nerd Font",
"terminal.integrated.fontSize": 18,
"terminal.integrated.profiles.linux": {
"Term": {
"path": "/usr/bin/bash",
},
},
"terminal.integrated.profiles.osx": {
"Term": {
"path": "/opt/homebrew/bin/bash",
},
},
"terminal.integrated.profiles.windows": {
"Term": {
"path": "C:\\Program Files\\Git\\bin\\bash.exe",
},
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
},
"Command Prompt": {
"path": ["${env:windir}\\Sysnative\\cmd.exe", "${env:windir}\\System32\\cmd.exe"],
"args": [],
"icon": "terminal-cmd",
},
"Git Bash": {
"source": "Git Bash",
},
},
"terminal.integrated.showExitAlert": false,
// window
"window.restoreWindows": "none",
"window.zoomLevel": -1,
// workbench
"workbench.colorCustomizations": {
"editor.lineHighlightBorder": "#9fced11f",
"editor.lineHighlightBackground": "#1073cf2d",
"[Quiet Light]": {
"editorBracketHighlight.foreground1": "#e78009",
"editorBracketHighlight.foreground2": "#22990a",
"editorBracketHighlight.foreground3": "#1411c4",
"editorBracketHighlight.foreground4": "#ddcf11",
"editorBracketHighlight.foreground5": "#9c15c5",
"editorBracketHighlight.foreground6": "#ffffff",
"editorBracketHighlight.unexpectedBracket.foreground": "#FF2C6D",
},
},
"workbench.colorTheme": "Visual Studio Light",
"workbench.editor.useModal": "off",
"workbench.editorAssociations": {},
// ---------------------------------------------------------------------
// !!! basic
// ---------------------------------------------------------------------
// json@json
"[json]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true,
"editor.quickSuggestions": {
"strings": true,
},
"editor.suggest.insertMode": "replace",
"editor.tabSize": 2,
},
// jsonc@json
"[jsonc]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true,
"editor.quickSuggestions": {
"strings": true,
},
"editor.suggest.insertMode": "replace",
"editor.tabSize": 2,
},
// markdown@md
"[markdown]": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true,
"editor.quickSuggestions": {
"comments": "off",
"strings": "off",
"other": "off",
},
"editor.tabSize": 2,
"editor.wordWrap": "on",
},
// markdown@md
"markdown.preview.fontFamily": "FiraCode Nerd Font",
"markdown.preview.fontSize": 18,
// MarkdownPaste@md
"MarkdownPaste.path": "${fileDirname}/image",
// sql@sql
"[sql]": {
"editor.defaultFormatter": "cweijan.vscode-database-client2",
"editor.formatOnSave": true,
},
// database-client@sql
"database-client.autoSync": true,
"database-client.highlightSQLBlock": true,
"database-client.showTrigger": true,
"database-client.escapedAllObjectName": true,
// xml@xml
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml",
"editor.formatOnSave": true,
"editor.autoClosingBrackets": "never",
"editor.quickSuggestions": {
"comments": "off",
"strings": "off",
"other": "off",
},
"editor.tabSize": 2,
},
// yaml@yaml
"[yaml]": {
"editor.defaultFormatter": "redhat.vscode-yaml",
"editor.formatOnSave": true,
"diffEditor.ignoreTrimWhitespace": false,
"editor.autoIndent": "keep",
"editor.insertSpaces": true,
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": true,
},
"editor.tabSize": 2,
},
// ---------------------------------------------------------------------
// better-comments
"better-comments.tags": [
{
"tag": "BUG",
"color": "#dd0022",
"strikethrough": false,
"backgroundColor": "transparent",
},
{
"tag": "FIXME",
"color": "#ff8800",
"strikethrough": false,
"backgroundColor": "transparent",
},
{
"tag": "LOVE",
"color": "#ff6688",
"strikethrough": false,
"backgroundColor": "transparent",
},
{
"tag": "NOTE",
"color": "#33aaff",
"strikethrough": false,
"backgroundColor": "transparent",
},
{
"tag": "TODO",
"color": "#00bb66",
"strikethrough": false,
"backgroundColor": "transparent",
},
{
"tag": "TASK",
"color": "#ddbb88",
"strikethrough": false,
"backgroundColor": "transparent",
},
],
// indentRainbow
"indentRainbow.ignoreErrorLanguages": ["*"],
// jumpy
"jumpy.fontFamily": "FiraCode Nerd Font",
"jumpy.fontSize": 18,
// macros
"macros": {
"add_comma": [
"cursorLineEnd",
{
"command": "type",
"args": {
"text": ",",
},
},
],
"add_semicolon": [
"cursorLineEnd",
{
"command": "type",
"args": {
"text": ";",
},
},
],
"cpp_pointer": [
"insertSnippet",
{
"command": "type",
"args": {
"text": "->",
},
},
],
},
// path-autocomplete
"path-autocomplete.ignoredFilesPattern": "**/*.{go,asm,s}",
"path-autocomplete.triggerOutsideStrings": true,
// sortLines
"sortLines.filterBlankLines": true,
// vsicons
"vsicons.dontShowNewVersionMessage": true,
// ---------------------------------------------------------------------
// !!! python@ipynb@py
// ---------------------------------------------------------------------
// ipynb@ipynb
"[ipynb]": {
"editor.codeActionsOnSave": {},
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.quickSuggestions": {
"comments": "off",
"strings": "off",
"other": "off",
},
"editor.tabSize": 4,
},
// jupyter@ipynb
"jupyter.jupyterCommandLineArguments": ["--disable-gpu"],
// notebook@ipynb
"notebook.cellToolbarLocation": {
"default": "right",
"jupyter-notebook": "left",
},
// python@py
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit",
},
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.quickSuggestions": {
"comments": "off",
"strings": "off",
"other": "off",
},
"editor.tabSize": 4,
},
// black-formatter@py
"black-formatter.args": ["--line-length=999"],
// flake8@py
"flake8.args": ["--ignore=E203,E501", "--max-line-length=999"],
// isort@py
"isort.args": ["-rc", "--atomic", "--profile", "black"],
// pylint@py
"pylint.args": ["--errors-only", "--max-line-length=999"],
// python@py
"python.analysis.autoImportCompletions": true,
"python.analysis.completeFunctionParens": true,
"python.analysis.typeCheckingMode": "basic",
"python.languageServer": "Pylance",
"python.terminal.activateEnvInCurrentTerminal": true,
"python.terminal.activateEnvironment": true,
// ---------------------------------------------------------------------
}
推荐快捷键 Mac
// Place your key bindings in this file to override the defaults
[
// ---------------------------------------------------------------------
// Code Completion
// Trigger Suggest
{
"key": "alt+space",
"command": "editor.action.triggerSuggest",
"when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly && !suggestWidgetVisible",
},
// Quick Fix
{
"key": "shift+cmd+x",
"command": "editor.action.quickFix",
"when": "editorHasCodeActionsProvider && textInputFocus && !editorReadonly",
},
{
"key": "cmd+enter",
"command": "editor.action.quickFix",
"when": "editorHasCodeActionsProvider && textInputFocus && !editorReadonly",
},
{
"key": "cmd+.",
"command": "-editor.action.quickFix",
"when": "editorHasCodeActionsProvider && textInputFocus && !editorReadonly",
},
// ---------------------------------------------------------------------
// Editor Enhancements
// Close Active Editor
{
"key": "cmd+e",
"command": "workbench.action.closeActiveEditor",
},
{
"key": "cmd+w",
"command": "-workbench.action.closeActiveEditor",
},
// Smart Select
{
"key": "cmd+w",
"command": "editor.action.smartSelect.grow",
},
// ---------------------------------------------------------------------
// Jumpy
{
"key": "escape",
"command": "extension.jumpy-exit",
},
{
"key": "alt+q",
"command": "extension.jumpy-exit",
},
{
"key": "alt+l",
"command": "extension.jumpy-line",
},
{
"key": "alt+w",
"command": "extension.jumpy-word",
},
// ---------------------------------------------------------------------
// Line New Below
{
"key": "shift+enter",
"command": "editor.action.insertLineAfter",
"when": "editorTextFocus && !editorReadonly",
},
{
"key": "cmd+enter",
"command": "-editor.action.insertLineAfter",
"when": "editorTextFocus && !editorReadonly",
},
// Line Delete Left
{
"key": "cmd+backspace",
"command": "deleteAllLeft",
},
// ---------------------------------------------------------------------
// Macros
{
"key": "cmd+,",
"command": "macros.add_comma",
},
{
"key": "cmd+;",
"command": "macros.add_semicolon",
},
{
"key": "cmd+.",
"command": "macros.cpp_pointer",
},
// ---------------------------------------------------------------------
// Navigate Back
{
"key": "cmd+-",
"command": "workbench.action.navigateBack",
"when": "canNavigateBack",
},
{
"key": "ctrl+-",
"command": "-workbench.action.navigateBack",
"when": "canNavigateBack",
},
// Navigate Forward
{
"key": "cmd+oem_plus",
"command": "workbench.action.navigateForward",
},
{
"key": "ctrl+shift+-",
"command": "-workbench.action.navigateForward",
},
// ---------------------------------------------------------------------
// Open In Terminal
{
"key": "cmd+f11",
"command": "workbench.action.terminal.newWithCwd",
"args": {
"cwd": "${fileDirname}",
},
// "when": "!terminalFocus && !terminalIsOpen"
"when": "!terminalFocus",
},
{
"key": "cmd+f11",
"command": "workbench.action.terminal.toggleTerminal",
// "when": "terminalIsOpen"
// "when": "terminalShellType"
"when": "terminalGroupCount",
},
{
"key": "cmd+f12",
"command": "workbench.action.terminal.toggleTerminal",
"when": "terminal.active",
},
{
"key": "ctrl+`",
"command": "-workbench.action.terminal.toggleTerminal",
"when": "terminal.active",
},
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
// Fold
{
"key": "cmd+1 cmd+1",
"command": "editor.fold",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "alt+cmd+[",
"command": "-editor.fold",
"when": "editorTextFocus && foldingEnabled",
},
// Fold All
{
"key": "cmd+1 cmd+a",
"command": "editor.foldAll",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "cmd+k cmd+0",
"command": "-editor.foldAll",
"when": "editorTextFocus && foldingEnabled",
},
// Fold Recursively
{
"key": "cmd+1 cmd+r",
"command": "editor.foldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "cmd+k cmd+[",
"command": "-editor.foldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
// ---------------------------------------------------------------------
// Unfold
{
"key": "cmd+2 cmd+2",
"command": "editor.unfold",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "alt+cmd+]",
"command": "-editor.unfold",
"when": "editorTextFocus && foldingEnabled",
},
// Unfold All
{
"key": "cmd+2 cmd+a",
"command": "editor.unfoldAll",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "cmd+k cmd+j",
"command": "-editor.unfoldAll",
"when": "editorTextFocus && foldingEnabled",
},
// Unfold Recursively
{
"key": "cmd+2 cmd+r",
"command": "editor.unfoldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "cmd+k cmd+]",
"command": "-editor.unfoldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
// ---------------------------------------------------------------------
]
推荐快捷键 Win
// Place your key bindings in this file to override the defaults
[
// ---------------------------------------------------------------------
// Remove
{
"key": "ctrl+e",
"command": "-workbench.action.quickOpen",
},
{
"key": "alt+z",
"command": "-extension.cssrem.rem-switch-px",
},
{
"key": "alt+r",
"command": "-extension.cssrem.rpx-switch-px",
},
// ---------------------------------------------------------------------
// Macros
{
"key": "ctrl+,",
"command": "macros.add_comma",
},
{
"key": "ctrl+;",
"command": "macros.add_semicolon",
},
{
"key": "ctrl+.",
"command": "-docs.write",
"when": "editorTextFocus && config.docwriter.hotkey.windows == 'Ctrl + .' && editorLangId =~ /typescript|javascript|python|php|java|c|cpp|csharp/",
},
{
"key": "ctrl+.",
"command": "macros.cpp_pointer",
},
// Jumpy
{
"key": "escape",
"command": "extension.jumpy-exit",
},
{
"key": "alt+q",
"command": "extension.jumpy-exit",
},
{
"key": "alt+l",
"command": "extension.jumpy-line",
},
{
"key": "alt+w",
"command": "extension.jumpy-word",
},
// ---------------------------------------------------------------------
// Close Active Editor
{
"key": "ctrl+e",
"command": "workbench.action.closeActiveEditor",
},
{
"key": "ctrl+w",
"command": "-workbench.action.closeActiveEditor",
},
// Line New Below
{
"key": "shift+enter",
"command": "editor.action.insertLineAfter",
"when": "editorTextFocus && !editorReadonly",
},
{
"key": "ctrl+enter",
"command": "-editor.action.insertLineAfter",
"when": "editorTextFocus && !editorReadonly",
},
// Line Delete Left
{
"key": "ctrl+backspace",
"command": "deleteAllLeft",
},
// Navigate Back/Navigate Forward
{
"key": "alt+oem_minus",
"command": "workbench.action.navigateBack",
},
{
"key": "alt+left",
"command": "-workbench.action.navigateBack",
},
{
"key": "alt+oem_plus",
"command": "workbench.action.navigateForward",
},
{
"key": "ctrl+shift+-",
"command": "-workbench.action.navigateForward",
},
// Open In Terminal
{
"key": "alt+f11",
"command": "workbench.action.terminal.newWithCwd",
"args": {
"cwd": "${fileDirname}",
},
// "when": "!terminalFocus && !terminalIsOpen"
"when": "!terminalFocus",
},
{
"key": "alt+f11",
"command": "workbench.action.terminal.toggleTerminal",
// "when": "terminalIsOpen"
// "when": "terminalShellType"
"when": "terminalGroupCount",
},
{
"key": "alt+f12",
"command": "workbench.action.terminal.toggleTerminal",
"when": "terminal.active",
},
{
"key": "ctrl+`",
"command": "-workbench.action.terminal.toggleTerminal",
"when": "terminal.active",
},
// Quick Fix
{
"key": "ctrl+shift+x",
"command": "editor.action.quickFix",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly",
},
{
"key": "alt+enter",
"command": "-editor.action.quickFix",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly",
},
// Smart Select
{
"key": "ctrl+w",
"command": "editor.action.smartSelect.grow",
},
// ---------------------------------------------------------------------
// Fold
{
"key": "ctrl+1 ctrl+1",
"command": "editor.fold",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+shift+[",
"command": "-editor.fold",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+1 ctrl+1",
"command": "editor.fold",
"when": "editorFocus",
},
{
"key": "ctrl+-",
"command": "-editor.fold",
"when": "editorFocus",
},
{
"key": "ctrl+numpad_subtract",
"command": "-editor.fold",
"when": "editorFocus",
},
// Fold All
{
"key": "ctrl+1 ctrl+a",
"command": "editor.foldAll",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+k ctrl+0",
"command": "-editor.foldAll",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+1 ctrl+a",
"command": "editor.foldAll",
"when": "editorFocus",
},
{
"key": "ctrl+shift+-",
"command": "-editor.foldAll",
"when": "editorFocus",
},
{
"key": "ctrl+shift+numpad_subtract",
"command": "-editor.foldAll",
"when": "editorFocus",
},
// Fold Recursively
{
"key": "ctrl+1 ctrl+r",
"command": "editor.foldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+k ctrl+[",
"command": "-editor.foldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+1 ctrl+r",
"command": "editor.foldRecursively",
"when": "editorFocus",
},
{
"key": "ctrl+alt+-",
"command": "-editor.foldRecursively",
"when": "editorFocus",
},
{
"key": "ctrl+alt+numpad_subtract",
"command": "-editor.foldRecursively",
"when": "editorFocus",
},
{
"key": "ctrl+k ctrl+[",
"command": "-editor.foldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
// ---------------------------------------------------------------------
// Unfold
{
"key": "ctrl+2 ctrl+2",
"command": "editor.unfold",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+shift+]",
"command": "-editor.unfold",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+2 ctrl+2",
"command": "editor.unfold",
"when": "editorFocus",
},
{
"key": "ctrl+=",
"command": "-editor.unfold",
"when": "editorFocus",
},
{
"key": "ctrl+numpad_add",
"command": "-editor.unfold",
"when": "editorFocus",
},
// Unfold All
{
"key": "ctrl+2 ctrl+a",
"command": "editor.unfoldAll",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+k ctrl+j",
"command": "-editor.unfoldAll",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+2 ctrl+a",
"command": "editor.unfoldAll",
"when": "editorFocus",
},
{
"key": "ctrl+shift+=",
"command": "-editor.unfoldAll",
"when": "editorFocus",
},
{
"key": "ctrl+shift+numpad_add",
"command": "-editor.unfoldAll",
"when": "editorFocus",
},
// Unfold Recursively
{
"key": "ctrl+2 ctrl+r",
"command": "editor.unfoldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+k ctrl+]",
"command": "-editor.unfoldRecursively",
"when": "editorTextFocus && foldingEnabled",
},
{
"key": "ctrl+2 ctrl+r",
"command": "editor.unfoldRecursively",
"when": "editorFocus",
},
{
"key": "ctrl+alt+=",
"command": "-editor.unfoldRecursively",
"when": "editorFocus",
},
{
"key": "ctrl+alt+numpad_add",
"command": "-editor.unfoldRecursively",
"when": "editorFocus",
},
// ---------------------------------------------------------------------
]