跳转至

VSCode 初始化

概要: 初始化配置VSCode

创建时间: 2022.12.19 21:35:51

更新时间: 2023.01.11 21:26:28

下载VSCode安装包

使用VSCode命令行

Linux

以Debian发行版为例,键入 code --help即可查看VSCode支持的命令
主要命令
image.png
扩展管理命令
image.png
其它命令
image.png

macOS

如果是使用zsh,那么

Bash
echo 'export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"' >> ~/.zshrc
source ~/.zshrc
如果使用的bash,那么
Bash
echo 'export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"' >> ~/.bashrc
source ~/.bashrc
然后即可使用VSCode的命令行

安装VSCode扩展

下面的 ext-id 代指扩展的ID,可以通过在GUI上右键复制扩展ID获取到
image.png

扩展管理

列出已安装的所有扩展

Bash
code --list-extensions
安装扩展
Bash
code --install-extension $ext-id
卸载扩展
Bash
code --uninstall-extension $ext-id
配置扩展存放的本地根目录
Bash
code --extensions-dir <dir>

扩展列表

下面的VSCode扩展插件按照用途分类,可以使用上一节的命令批量安装

Text Only
// =============================================================================
// VS Code Extensions for lzwang
// =============================================================================

// utils
formulahendry.code-runner
aaron-bond.better-comments
Gruntfuggly.todo-tree
alefragnani.Bookmarks

// prefenrence
MS-CEINTL.vscode-language-pack-zh-hans
zhuangtongfa.material-theme
PKief.material-icon-theme
PKief.material-product-icons
oderwat.indent-rainbow

// remote development
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit
ms-vscode.remote-explorer
ms-vscode-remote.remote-containers

// git
waderyan.gitblame
mhutchie.git-graph
huizhou.githd

// docker 
ms-azuretools.vscode-docker

// =============================================================================
// languages
// =============================================================================

// shell
truman.autocomplate-shell
timonwong.shellcheck

// go
golang.go

// python
ms-python.python
ms-python.vscode-pylance
ms-python.black-formatter
donjayamanne.python-environment-manager
njpwerner.autodocstring

// markdown
yzhang.markdown-all-in-one
hancel.markdown-image

// nginx
shanoor.vscode-nginx

// toml
bungcip.better-toml

配置VSCode

VSCode的全局配置可以使用 CMD + SHIFT + P 或者 CTRL + SHIFT + P 然后键入 Preferences: Open User Settings (JSON)打开 settings.json 文件进行配置
在安装上面的扩展后,参考配置如下

JSON
{
  // ===========================================================================
  // ======================== Software Config ==================================
  // ===========================================================================
  // themes
  "workbench.colorTheme": "One Dark Pro Flat",
  "workbench.iconTheme": "material-icon-theme",
  "workbench.productIconTheme": "material-product-icons",
  "workbench.colorCustomizations": {
    "editor.lineHighlightBackground": "#2925255e",
    "editor.lineHighlightBorder": "#faeb155e"
  },
  // workbench
  "workbench.startupEditor": "newUntitledFile",
  "workbench.editor.untitled.hint": "hidden",
  // editor
  "editor.tabSize": 4,
  "editor.fontSize": 15,
  "editor.lineHeight": 1.3,
  "editor.suggestSelection": "first",
  "editor.largeFileOptimizations": false,
  "editor.rulers": [
    80,
    100,
    120
  ], // 三条列文字数目提示线
  // terminal
  "terminal.integrated.fontFamily": "FiraCode Nerd Font",
  "terminal.integrated.fontSize": 13,
  "terminal.integrated.lineHeight": 1.0,
  "terminal.integrated.inheritEnv": false,
  // debug
  "debug.console.fontFamily": "Iosevka",
  "debug.console.fontSize": 13,
  "debug.console.lineHeight": 1.2,
  "editor.fontFamily": "FiraCode Nerd Font",
  // explorer
  "explorer.confirmDelete": false,
  "explorer.confirmDragAndDrop": false,
  "explorer.autoReveal": false,
  // files
  "files.exclude": {
    "**/__pycache__": true,
    "**/.idea": true,
    "**/.vscode": true
  }, // 隐藏的文件/文件夹模式
  "files.associations": {
    "*.config": "ini"
  }, // 文件类型关联
  "files.autoGuessEncoding": true,
  // others
  "git.ignoreMissingGitWarning": true,  // 缺失git工具时的提示
  // ===========================================================================
  // ================================ LANGUAGES ================================
  // ===========================================================================
  "[python]": {
    "editor.bracketPairColorization.enabled": true,
    "editor.cursorSmoothCaretAnimation": true,
    "editor.defaultFormatter": "ms-python.black-formatter",
    "editor.formatOnSave": true,
  },
  // ===========================================================================
  // =============================== EXTENTIONS ================================
  // ===========================================================================
  "extensions.ignoreRecommendations": true, // 忽略建议扩展的提示
  // Markdown-image (hancel.markdown-image)
  "markdown-image.github.path": "/Users/lzwang/MarkdownImages",
  "markdown-image.local.path": "images",
  // todo-tree
  "todo-tree.general.tags": [
    "BUG",
    "HACK",
    "FIXME",
    "TODO",
    "XXX",
    "[ ]",
    "[x]"
  ],
  "todo-tree.regex.regex": "(//|#|<!--|;|/\\*|^|^\\s*(-|\\d+.))\\s*($TAGS)",
  // shellcheck
  "shellcheck.executablePath": "/opt/homebrew/bin/shellcheck",
  // better-comments (aaron-bond.better-comments)
  "better-comments.tags": [
    {
      "tag": "!",
      "color": "#FF2D00",
      "strikethrough": false,
      "underline": false,
      "backgroundColor": "transparent",
      "bold": false,
      "italic": false
    },
    {
      "tag": "?",
      "color": "#3498DB",
      "strikethrough": false,
      "underline": false,
      "backgroundColor": "transparent",
      "bold": false,
      "italic": false
    },
    {
      "tag": "//",
      "color": "#474747",
      "strikethrough": true,
      "underline": false,
      "backgroundColor": "transparent",
      "bold": false,
      "italic": false
    },
    {
      "tag": "todo",
      "color": "#FF8C00",
      "strikethrough": false,
      "underline": false,
      "backgroundColor": "transparent",
      "bold": false,
      "italic": false
    },
    {
      "tag": "*",
      "color": "#98C379",
      "strikethrough": false,
      "underline": false,
      "backgroundColor": "transparent",
      "bold": false,
      "italic": false
    }
  ],
  // code-runner
  "code-runner.clearPreviousOutput": true,
  "code-runner.executorMap": {
    "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
    "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
    "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
    "python": "/opt/homebrew/Caskroom/miniconda/base/envs/PyPlayground/bin/python",
    "go": "go run",
    "powershell": "powershell -ExecutionPolicy ByPass -File",
    "bat": "cmd /c",
    "shellscript": "bash",
    "javascript": "node",
    "typescript": "ts-node",
    "scala": "scala",
    "swift": "swift",
    "rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",
    "autoit": "autoit3",
    "dart": "dart",
    "haskell": "runhaskell",
  },
}

VSCode快捷键

参考 15 Useful VS Code Keyboard Shortcuts to Increase Productivity 文章,常用到的快捷键记录如下(默认配置,反引号即 ` 符号)

命令 macOS Windows/Linux
显示全部命令 CMD + SHIFT + P or F1 CTRL + SHIFT + P or F1
显示所有快捷键 CMD + K, CMD + S CTRL + K, CTRL + S
打开集成终端 CMD + 反引号 CTRL + 反引号
跳转到文件 CMD + P CTRL + P
跳转到行 CTRL + G CTRL + G
在文件中搜索 CMD + F CTRL + F
在文件中替换 CMD + OPTION + F CTRL + H
在项目中搜索 CMD + SHIFT + F CTRL + SHIFT + F
禅模式 CMD + K, Z CTRL + K, Z
跳转到匹配当前选中的下一项 CMD + D CTRL + D
注释当前行 CMD + / CTRL + /
跳转到文件开头/结束 CMD + UP/DOWN CTRL + HOME/END
跳转到上一次编辑处(返回) CTRL + - CTRL + ALT + -
跳转到下一次编辑处(前进) CTRL + SHIFT + - CTRL + SHIFT + -
切换到上一个编辑的文件 CMD + OPTION + LEFT CTRL + PAGEUP
切换到下一个编辑的文件 CMD + OPTION + RIGHT CTRL + PAGEDOWN

参考