---
url: https://eoht.net/notes/vscode.md
description: >-
  汇总 VS Code 日常使用中的命令行、编辑器设置与查找替换技巧，包括用 code 命令打开目录、新建窗口、比较文件或禁用扩展，在
  settings.json 中配置自动保存、格式化、字号、缩放和空白符显示，并整理常用正则字符、捕获组替换以及多光标、折叠等快捷键，便于按需查询。
---

# VS Code 使用技巧：命令行、settings.json、正则查找与快捷键 {#vs-code-tips}

## 命令行工具 {#command-line-tools}

`command+shift+p` 打开 `Command Palette` (`命令面板`) 输入 `shell command`，点击回车

使用 VS code 打开当前文件夹 code .

|                               |                                    |
| ----------------------------- | ---------------------------------- |
| `code -r .`                   | 在最近使用的代码窗口打开当前文件夹 |
| `code -n`                     | 创建新文件                         |
| `code --locale=es`            | 修改语言                           |
| `code --diff file1 file2`     | 打开 diff 编辑器                   |
| `code --help`                 | 查看帮助                           |
| `code --disable-extensions .` | 禁用所有的插件                     |

## 自定义设置 {#custom-settings}

打开 `settings.json`
| | |
| ----------------------------- | ---------------------------------- |
| `"editor.formatOnPaste": true` | 粘贴时格式化 |
| `"editor.fontSize": 18` | 改变字体大小 |
| `"window.zoomLevel": 5` | 设置缩放等级 |
| `"editor.fontFamily": "Fira Code", "editor.fontLigatures": true` | 编程字体连字 |
| `"files.autoSave": "afterDelay"` | 自动保存 |
| `"editor.formatOnSave": true,` | 保存时格式化 |
| `"editor.tabSize": 4` | 修改 tab 长度 |
| `"editor.renderWhitespace": "all"` | 空白符号显示 |

## VSCode 查找和替换正则表达式转义字符 {#escape-characters-in-vscode-regex}

|                   |                                                                                                                                                                                                                                                                                                                                         |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `\t`              | tab                                                                                                                                                                                                                                                                                                                                     |
| `\r`              | 回车符号\r                                                                                                                                                                                                                                                                                                                              |
| `\n`              | 换行符号\n                                                                                                                                                                                                                                                                                                                              |
| `\uxxxx`          | 匹配 Unicode 编码为 xxx 的字符,如\u0020 匹配空格，这个符号可以用来帮助匹配中文，后面说                                                                                                                                                                                                                                                  |
| `\`               | 特殊符号转义，如"*" ，转义后匹配的是字符"*"， “(” 匹配的是括号"("                                                                                                                                                                                                                                                                       |
| `[字符序列]`      | 匹配\[ ]中的任意字符，如\[ae]，字符 a 和字符 e 均匹配                                                                                                                                                                                                                                                                                     |
| `[^字符序列]`     | 匹配不在\[ ]中的任意字符，如\[^ae]除了 a 和 e，其他字符都匹配                                                                                                                                                                                                                                                                             |
| `[字符 1-字符 2]` | 匹配在\[ ]之间的任意字符，如\[a-x]，就是匹配 a 和 x 之间的所有字符（包括 a 和 x）                                                                                                                                                                                                                                                         |
| `.`               | 匹配任意单个字符(除了\n)                                                                                                                                                                                                                                                                                                                |
| `\w`              | 匹配所有单词字符（如"a"，“3”，“E”，但不匹配"?"，"."等）                                                                                                                                                                                                                                                                                 |
| `\W`              | 和\w 相反，匹配所有非单词字符                                                                                                                                                                                                                                                                                                           |
| `[\u4e00-\u9fa5]` | 利用区间和\u 转义符号，匹配中文（该区间包含 2 万个汉字），可以当做中文版的\w 使用                                                                                                                                                                                                                                                       |
| `\s`              | 匹配空格                                                                                                                                                                                                                                                                                                                                |
| `\S`              | 和\s 相反，匹配非空格                                                                                                                                                                                                                                                                                                                   |
| `\d`              | 匹配数字字符，如"1"，“4”，"9"等                                                                                                                                                                                                                                                                                                         |
| `\D`              | 和\d 相反，匹配除了数字字符外的其他字符                                                                                                                                                                                                                                                                                                 |
| `*`               | 将前面的元素匹配 0 到多次，如"\d\*.\d"，可以匹配"19.9"，".0",“129.9”                                                                                                                                                                                                                                                                    |
| `+`               | 将前面的元素匹配 1 到多次，如"be+"，可以匹配"be"， “beeeeee”                                                                                                                                                                                                                                                                            |
| `？`              | 将前面的元素匹配 0 次或者一次，如"rai?n" 可以且只可以匹配 “ran” 或者 “rain”                                                                                                                                                                                                                                                             |
|                   | n 是个数字，将前面的元素匹配 n 次，如"be{3}“可以且只可以匹配 ”beee”                                                                                                                                                                                                                                                                     |
|                   | 将前面的元素匹配至少 n 次，最多 m 次，如"be{1,3}" 可以且只可以匹配"be",“bee”, “beee”                                                                                                                                                                                                                                                    |
| `\|`              | 相当于"或",表示匹配由                                                                                                                                                                                                                                                                                                                   |
| `$n`              | n 是个数字，这个是替换时使用括号（ ）将匹配的 patter 分割成了几个元素，然后在替换的 patter 里面使用，类似于变量。如果查找 patter 是"(\w+)(\s)(\w+)",那么$1 就是(\w+),$2 是(\s),$3 是(\w+)，替换 patter 是$3$2$1,那么替换结果就是(\w+)(\s)(\w+)。假设匹配到的是"one two"，那么$1,$2,$3 分别为"one", " “, “two”，替换后的结果为"two one”. |

## 技巧 {#additional-tips}

|                          |                                       |
| ------------------------ | ------------------------------------- |
| 一次更改所有类似单词     | `Ctrl+Shift+L`                        |
| 将光标移到行的末尾和开头 | `Alt + Shift + I`                     |
| 代码折叠                 | `Ctrl + Shift + [` `Ctrl + Shift + ]` |
