# 参考表

# Vscode快捷键
#### 基本
| | 说明 |
| ------------ | -------------------------- |
| `<C-p>` | 打开 "Quick Open" 栏;搜索文件或符号; |
| `<C-S-p>` | 打开命令面板; "Command Palette" |
| `<C-,>` | 打开设置 `Settings` 界面 |
| `<C-k><C-s>` | 打开`Keyboard Shortcuts` 界面 |
#### 基础编辑
| | 说明 |
| ---------------------- | ------------------------------- |
| `<C-{[/]}>` | 调整当前行**缩进** |
| `<C-/>` | 插入**行注释** |
| `<A-S-a>` | 插入**块注释** |
| `<C-Delete>` | 删除至 word 尾部 |
| **行编辑** | |
| `<A-{↑/↓}>` | 向上/向下**移动**当前行 |
| `<S-A-{↑/↓}>` | 向上/向下**复制插入**当前行 |
| `<C-CR>` | 在当前行**下方**插入空行 |
| `<C-S-CR>` | 在当前行**上方**插入空行 |
| `<C-l>` | **选中**当前整行 |
| `<C-S-k>` | **删除**当前行 |
| `<C-x>` | **剪切**当前行 |
| **代码折叠** | |
| `<C-S-{[/]}>` | 折叠、展开**当前光标位置**的代码块 |
| `<C-k>{<C-0>/<C-j>}` | 折叠、展开所**有**区域代码 |
| `<C-k><C-/>` | 折叠所有**块注释** |
| **格式化** | |
| `<S-A-f>` | 格式化当前整个文件 |
| `<C-k><C-f>` | 格式化选中文本 |
| `<C-k><C-x>` | 修剪选中行的尾随空格 |
| **触发提示** | |
| `<C-Space>` | 触发建议——Trigger Suggest |
| `<C-S-Space>` | 触发参数提示——Trigger parameter hints |
| `<C-.>` | 触发"Quick Fix" |
| `<C-k><C-i>`, `<S-k>` | 触发 "Show hover" |
| | |
| `F2` | 重命名选中标识符(变量名或函数)<br>(同时修改所有对应处) |
| `<C-z>` | 撤销;undo |
| `<C-y>` | 重做;redo |
##### 光标移动
| | 说明 |
| --------------------- | -------------------------- |
| `<C-{←/→}>` | 以单词为单位移动光标 |
| | |
| `<C-S-\>` | 跳转至**匹配括号**处;Go to Bracket |
| `<C-g>` | 跳转到指定行 |
| `<C-Home>`, `<C-end>` | 跳转到文件头 / 尾 |
##### 范围选中
| | 说明 |
| ------------------------------------------------ | ---------------------- |
| `<S-{movement}>` | 选中移动经过区域 |
| `<S-A-{←/→}>` | 缩小/扩展**选中区域**(增量选择) |
| | |
| `<C-l>` | 选中整行 |
| `<C-S-A-{↑/↓/←/→}>` \| <br>`<S-A><DragMouseL>` | 列块选中——为选中块中**每一行添加光标** |
##### 多光标编辑
| | 说明 |
| ------------- | -------------------------- |
| `<A-LClick>` | 为点击处增加一个新光标 |
| `<C-A-{↑/↓}>` | 在当前光标位置上方/下方增加一个新光标 |
| `<S-A-i>` | 在所有**选中行的末尾**增加光标 |
| | |
| `<C-d>` | 为当前**选中项**的**下一个出现位置**增加光标 |
| `<C-S-l>` | 为当前**选中项**的**所有出现位置**增加光标 |
| `<C-F2>` | 为当前**单词**的**所有出现位置**增加光标 |
##### 导航跳转
| | 说明 |
| ----------------------------- | ----------------------------------------------- |
| `<A-{←/→}>` | 返回上一个/后一个**跳转位置**——go back/forward |
| **定义** | |
| `F12` \| `<C-LClick>` | 跳转到**定义**(也可从定义跳转回声明处)<br>Go to Definition |
| `<C-k>F12` \| `<C-A-LClick>` | 跳转到定义/实现并**在旁侧编辑页组中打开** |
| `<A-F12>` | 打开窥视窗,查看**定义** <br>Peek Definition |
| **引用** | |
| `<S-F12>` | 跳转到至**引用**<br>Go to References |
| `<S-A-F12>` | 查看**所有引用** |
| **实现** | |
| `<C-F12>` | 跳转到至**接口、抽象类的具体实现**<br>Go to Implementations |
| `<C-S-F12>` | 打开窥视窗,查看**接口、抽象类的具体实现**<br>Peek Implementations |
| **符号搜索** | |
| `<C-S-o>` | 在**当前文件**中搜索 symbol 并导航跳转 |
| `<C-t>` | 在**当前工作区**中搜索 symbol 并导航跳转 |
| **错误相关** | |
| `F8` | 跳转到当前文件中下一处错误位置 |
| `<S-F8>` | 跳转到当前文件中上一处报错位置 |
| **diff 相关**(diff view 下) | |
| `F7` | **Go to Next Difference** |
| `<S-F7>` | **Go to Previous Difference** |
##### 查找替换
| | 说明 |
| ----------------- | ----------------- |
| `<C-f>` | 查找 |
| `<C-S-f>` | 整个工作区中查找 |
| `<C-h>` | **替换** |
| `<CR>` / `<S-CR>` | 跳至下一个 / 前一个匹配项 |
| `<C-d>` | 选中**下一个匹配项**(多光标) |
| `<A-CR>` | 选中**所有匹配项**(多光标) |
##### 窗口页面
| | 说明 |
| --------- | -------------------------------- |
| `<C-0>` | 聚焦到**左侧边栏** |
| `<C-b>` | **左侧边栏**显示/隐藏 |
| `<C-j>` | **底部面板**显示/隐藏 |
| | |
| `<C-S-e>` | 打开& 聚焦左侧 **Explor 面板** |
| `<C-S-j>` | 打开& 聚焦左侧 **OUTLINE 面板**(**自定义**) |
| `<C-S-f>` | 打开& 聚焦左侧 **搜索面板** |
| `<C-S-d>` | 打开& 聚焦左侧 **RUN AND DEBUG 面板** |
| `<C-S-m>` | 打开& 聚焦底部 **PROBLEMS 面板** |
| | |
| `<C-k>o` | **在新窗口中打开**当前编辑页文件 |
| `<C-S-n>` | 打开一个新 VS Code 窗口 |
| `<C-S-w>` | 关闭 VS Code 窗口 |
| | |
| `<C-k>v` | 在**旁侧**打开 Markdown 预览窗口 |
| `<C-k>z` | 进入/退出 Zen 模式 |
##### 编辑页&组
| | 说明 |
| :---------------------------------- | :--------------------------- |
| **编辑页** | |
| `<C-Tab>` | 切换到**当前编辑页组**中上一个访问的编辑页 |
| `<C-PageUp>` \| <br> `<C-PageDown>` | 切换到**左侧 / 右侧的编辑页** |
| `<A-{num}>` | 切换到**当前组**中第 num 个编辑页 |
| `<S-A-{num}>` | 将**当前编辑页**移动到第 num 个**编辑页组** |
| `<C-S-t>` | 重新打开上次关闭的标签页 |
| `<C-w>` | 关闭当前编辑页 |
| `<C-w>w` | 关闭**当前编辑页组**中的所有编辑页 |
| `<C-k><C-w>` | 关闭**所有编辑页** |
| | |
| **编辑页组** | |
| `<C-\>` | 将当前编辑器拆分成**左右**两栏 |
| `<C-k><C-\>` | 将当前编辑器拆分成**上下**两栏 |
| `<C-{num}>` | 在编辑页组之间**切换** |
| `<C-k>{↑/↓/←/→}` | **移动**当前编辑页组位置 |
##### 文件管理
| | 说明 |
| ------------ | ----------------------------------------------------- |
| `<C-n>` | 新建文件 |
| `<C-s>` | 保存 |
| `<C-k>s` | 保存全部文件 |
| `<C-k>p` | 复制当前文件的**路径** |
| `<C-k>r` | 在**文件资源管理器中**打开**当前文件所在目录** |
| | |
| `<A-LClick>` | 在**当前编辑页右侧的编辑页组**中打开文件 |
| `<C-CR>` | 在**新编辑页组**中打开选中文件 <br>(在 Exployer 文件栏或 Quick Open 栏下) |
| | |
| `<C-k>f` | 关闭当前 workspace(不关闭 VSCode 窗口) |
##### 调试
![[_attachment/19-快捷键汇总/Vscode 快捷键.assets/IMG-Vscode 快捷键-42D3E426D2A792D7D1427953E741238D.png|221]]
##### 文件内容比较 diff
>查看 diff: 在 explorer 里选择文件右键 `Select for compare`,然后需要对比的文件上右键选择 `Compare with selected`
##### 快速滚动
`Alt + 鼠标滚轮` 以5倍速快速滚动
`Ctrl + ↑|↓` 按行滚动屏幕(移动一行)
##### 执行任务
`Ctrl + Shift + B` 运行Build Task
# VSCodeNeovim 插件快捷键
###### 代码导航
![[_attachment/19-快捷键汇总/Vscode 快捷键.assets/IMG-Vscode 快捷键-DF696C07FC7D5F1C674308870A8B9987.png|555]]
###### **VSCode Explorer 侧边栏相关操作**
![[_attachment/19-快捷键汇总/Vscode 快捷键.assets/IMG-Vscode 快捷键-ABA0ABF880FC12A6771497AA2468B5BE.png|581]]
| | 说明 | VSCode 命令 |
| ----------------------------- | ---------------- | ---------------------------------- |
| `j`, `k` | 上下移动 | `list.focusDown/Up` |
| `<C-u>`,`<C-d>` | 半屏上下移动 | |
| **`o` , `<CR>`,`za` , `zA`** | **触发**折叠/展开 | `list.toggleExpand` |
| **`h`**,`zc` | **折叠** | `list.collapse` |
| **`zm`,`zM`** | **折叠全部** | `list.collapseAll` |
| **`l`**,`<CR>` | **展开** or **选择** | `list.toggleExpand`, `list.select` |
| `zo`,`zO` | **展开** | `list.toggleExpand` |
| `zC` | **选择但仍聚焦在 list** | `list.collapseAllToFocus` |
| / | **搜索** | |
###### **VSCode 悬浮窗口的中操作**
![[_attachment/19-快捷键汇总/Vscode 快捷键.assets/IMG-Vscode 快捷键-E687EA35BAA8BF6943A2C95B0450B93D.png|316]]
###### **快速打开面板**
| | 说明 |
| ----------- | ----------------------- |
| `<C-[n,p]>` | 向后,向前移动(next, previous) |
###### **窗口导航**
| | 说明 |
| ---------------- | ----------------------------------------------- |
| `<C-w>[j,k,h,l]` | 聚焦到上下左右**窗口**<br>("**窗口**"——包括**侧边栏**和**底部窗口**) |
###### **编辑页相关**
| | 说明 |
| --------------------- | --------------------------- |
| `<C-w>[s, v]` | 水平、垂直**拆分当前编辑页** |
| `<C-w>q` \| `<C-w>c` | 关闭**当前编辑页** |
| `<C-w><C-[j,k,h,l]>` | 移动**当前编辑页**到上,下,左,右**编辑页组** |
| `gt`,`gT` | 移动到后一个,前一个编辑页 |
| `<C-w> >` , `<C-w> <` | 增大、减小 "**当前编辑页**" 窗口**宽度** |
| `<C-w> +` , `<C-w> -` | 增大、减小 "**当前编辑页**" 窗口**高度** |
| `<C-w>=` | 重置**编辑页组大小**(均等) |
| `<C-w>_` | 开启/关闭 "**编辑页大小自适应**" |
###### **编译页组相关**
| | 说明 |
| -------------------- | ----------------------- |
| `<C-w>[w, p]` | **聚焦**到后一个、前一个**编译页组** |
| `<C-w>[t, b]` | **聚焦**到第一个、最后一个**编译页组** |
| `<C-w><S-[j,k,h,l]>` | 上,下,左,右移动**当前编辑组** |
###### **多光标**(可视模式下)
| | 行可视模式 | 块可视模式 |
| ---- | ----- | ------ |
| `mi` | 在行首插入 | 在光标前插入 |
| `ma` | 在行尾插入 | 在光标后插入 |
`mI` 和 `mA` 则会考虑空行
# 参考资料
##### 官网说明
https://code.visualstudio.com/docs/getstarted/tips-and-tricks (实用Tricks)
https://code.visualstudio.com/docs/getstarted/keybindings
##### 中文说明
https://lzw.me/a/vscode-visual-studio-code-shortcut.html
##### 博客演示
- [VS Code 快捷键-34张gif动图](https://zhuanlan.zhihu.com/p/354829366)