# VS Code

:Visual Studio Code ,是微软公司于 2015 年发布的一款开源、轻量级的 IDE 。

  • 官网 (opens new window)
  • 基于 Electron 框架开发,跨平台,支持 Web IDE 。
  • 支持远程终端。
  • 本身是一个轻量级的代码编辑器,但可以通过安装插件扩展很多功能,比如搭建任意编程语言的开发环境。

# 用法

  • 在 VS Code 中打开一个项目目录,即可操作其下的文件。

  • 界面的左侧显示了几个主要按钮,点击它们会显示不同内容的侧边栏:

    • Explorer :显示项目目录的文件列表。
    • Search :显示搜索栏。支持对项目目录下的所有文件进行全文搜索,支持替换、正则匹配。
    • Source Control :显示 Git 的暂存区文件。
    • Run :运行项目代码。可能需要配置合适的编译器、解释器。
    • Remote Explorer :显示可用的远程开发环境。
    • Extensions :显示插件列表。
  • 状态栏的左下角包含几个按钮,比如切换 Git 分支、显示报错栏。

  • 状态栏的右下角如下:

    • Ln 12, Col 1 :表示当前光标位于第 12 行、第 1 列。
    • Spaces: 4 :表示按下一个 Tab 键会输入 4 个空格。点击它可以设置空格数。
    • UTF-8 :表示当前文件的编码格式。点击它可以切换成其它编码格式。
    • CRLF :表示当前文件的换行符风格。点击它可以改成 LF 风格。
    • MarkDown :表示当前文件的语言。点击它可以切换成其它语言。
  • 支持使用正则替换,例如:

    log-(\d*).txt   # 查找表达式
    log-($1).log    # 替换表达式,用 $1 的格式引用元素组
    

# 设置

  • 点击页面左下角的齿轮按钮,即可打开设置页面。
    • 可以进行全局设置,也可以只对某个项目进行设置。
    • 如果对某个项目进行了个性化设置,则会在该项目的根目录下创建一个 .vscode 目录,用于保存设置信息。
  • 建议的设置:
    • 启用 Settings Sync 功能,将 VS Code 的主题、快捷键、插件等配置信息备份到云端,跟 GitHub 账号绑定。
    • 在输入代码时时会自动弹出补全窗口,默认可以按 Tab 或 Enter 键进行补全,也可以按 Esc 键忽略。建议在设置中关闭 "Accept Suggestion On Enter" 选项,这样按 Enter 键的作用总是换行。
    • 启用 "Format On Type" 选项,允许在输入换行符时自动格式化代码。再设置手动格式化的快捷键为 Alt + F
    • 设置 "Run Selected Text in Active Terminal" 的快捷键为 Shift + Enter ,便于快速在当前激活的终端中(没有则自动创建)执行光标所在行或选中的内容。
    • 设置切换行注释的快捷键为 Ctrl + Q ,切换块注释的快捷键为 Ctrl + Shift + Q ,与 NotePad++ 的注释快捷键一致。

# 常用快捷键

  • F1 :打开命令面板,用于快速执行一些命令。例如:
    • Fold All :将代码块全部折叠。
    • Unfold All :将代码块全部展开。
    • Trim Trailing Whitespace :去掉每行末尾的空字符。
  • Ctrl + ` :打开终端。终端可以是 CMD、PowerShell、WSL 等类型。
  • F2 :重命名光标所在的标识符。
  • F3Ctrl + F :在当前文件中打开搜索栏。
  • F11 :切换至全屏显示。
  • F12 :转到光标所在的标识符的定义位置。
  • Alt + ↑/↓ :向上、向下移动光标所在行或选中的多行。
  • Alt + ←/→ :将光标切换到上一次、下一次编辑的位置,甚至可以切换到其它文件。
  • 按住 Alt 时,可以用鼠标连续拖选多处文本,同时选中它们。
  • 按住 Shift 时,可以按 ↑/↓ 键改变选中的文本范围。
  • Alt + Shift + ↓ :复制并粘贴当前行,或选中的多行。
  • 选中一行或多行之后:
    • Tab :向右移动文本,调整缩进。
    • Shift + Tab :向左移动文本,调整缩进。
  • Ctrl + [/] :向左、向右移动文本,调整缩进。
  • Ctrl + Shift + [/] :折叠、展开代码块。
  • Ctrl + ←/→ :以单词为单位左右移动光标。
  • Ctrl + Backspace/Delete :以单词为单位删除代码。

# 常用插件

  • One Dark Pro :提供几种界面主题。
  • vscode-icon :给不同类型的文件加上美观的图标。
  • Align by RegEx :用于自动添加空格以对齐多行中的某个字符,比如对齐注释符号 # 。
  • Beautify :用于格式化 JS、CSS、HTML 代码。
  • Markdown Preview Enhance :一个增强型的 Markdown 阅读器,支持实时预览、显示目录、导出成 HTML、PDF 等格式。
  • Code Spell Checker :检查单词拼写错误。建议将它禁用避免干扰,要检查时再启用。
  • hexdump for VSCode :用于按十六进制查看文件内容,并且右键某个字节可进行修改。

# 远程开发

VS Code 支持远程开发模式。

  • 官方教程 (opens new window)
  • 可以在本机的 VS Code 界面中打开其它主机上的文件目录,进行编辑、编译、调试等操作。
  • 远程目录可以位于物理机、虚机,甚至 Docker 容器中。

# 相关概念

  • Electron
    • :一个跨平台的 GUI 应用开发框架。
    • 原名为 Atom Shel ,于 2013 年由 GitHub 公司发布。
    • 采用 JavaScript、HTML、CSS 等前端技术开发应用,用 Chromium 显示前端,用 node.js 运行后端。
  • Atom
    • :一个代码编辑器,基于 Electron 框架开发。
    • 于 2014 年由 GitHub 公司发布。
  • Monaco Editor
    • :VS Code 的代码编辑器,现已作为一个独立项目开源。
  • github1s (opens new window)
    • :一个 2021 年发布的开源项目,用于通过 Web IDE 查看任意 GitHub 项目的文件。
    • 用法:在浏览器中访问任意 GitHub 项目,将域名 github.com 改为 github1s.com ,即可进入基于 VS Code 构建的 Web IDE 页面。

# WSL

:Windows 的 Linux 子系统(Windows Subsystem for Linux ,WSL),是 Windows 10 提供的一种虚拟机服务。

  • 官方文档 (opens new window)
  • 开启 WSL 服务之后,可以在 Windows 中启动一个虚拟的 Linux 子系统。
    • 例如安装 Ubuntu 类型的 WSL 之后,在 CMD 命令行中执行 ubuntu 命令即可进入 shell 终端。
    • 启动只需要几秒,并且比虚拟机的开销小很多。
    • 兼容大部分的 Linux 接口,因此可以安装、运行大部分 Linux 程序。
    • 将 Windows 磁盘文件挂载在 /mnt/ 目录下,可以直接访问。
  • WSL 2 版本比 WSL 1 版本的功能更强:
    • 具有完整的 Linux 内核,可以运行 Docker 容器。
    • 可以调用 Windows 程序。