VS Code 文本编辑快捷键精选
引言
VS Code 是非常适合新手的编辑器,我当初试用了许多种编辑器后最终选定它。它的轻巧、灵活、高度可定制、高度可拓展,令人爱不释手。诚然在编辑文本方面它无法与 Vim 等神器相比,但也已经足够好了。如果你能熟练使用快捷键和灵活使用命令面板,完全可以脱离鼠标随性编码。
说明
上面我们已经说了 VS Code 是高度可定制的,它的快捷键难免会因为安装其他插件而产生冲突或者我们有自己的快捷键习惯,那么我们需要设置符合自己习惯的快捷键。ctrl + k ctrl + s
快捷键组合会打开 Keyboard Shortcuts 面板,在这里我们可以自定义快捷键。
下文中,我会按上表给出命令及其英文(如果有的话,事实上肯定都是有英文的,不过得打开 keybindings.json
文件去找,太麻烦。我给出英文也是便于以后理解)。至于何时我就省略了,因为一些触发条件我还没弄明白意思,手动尴尬。
在阅读本文时需要注意以下几点:
- 一些快捷键与我的习惯不符,我自己进行了调整。
- 一些快捷键是需要安装插件实现的,要安装何种插件我会在相应的地方说明。
- 本文是精选快捷键,那么一些不常用地快捷键就不予列出。
- 没有快捷键的命令,可以通过启动命令面板进行使用,这也是 VS Code 无鼠标操作的精髓。
光标移动快捷键
为了实现下面与括号相关的光标跳转需要安装插件 Bracket Jumper
命令 | 快捷键 | 来源 |
---|---|---|
光标移动行首(cursorHome) | home | Default |
光标移动行末(cursorEnd) | end | Default |
光标移动文首(cursorTop) | ctrl + end | Default |
光标移动文末(cursorBottom) | ctrl + end | Default |
光标向上移动一页(cursorPageUp) | PageUp | Default |
光标向下移动一页(cursorPageDown) | PageDown | Default |
光标向左移动一个单词(cursorWordStartLeft) | ctrl + leftarrow | Default |
光标向右移动一个单词(cursorWordEndRight) | ctrl + rightarrow | Default |
Jump to nearest left bracket at same or higer scope | shift + uparrow | User |
Jump to nearest right bracket at same or higer scope | shift + downarrow | User |
当然按住 ctrl 键,按上下方向键是常用的滚动界面功能。
多光标编辑
VS Code 可以多光标编辑。按住 alt
键,点击鼠标可以在任意位置添加光标。
命令 | 快捷键 | 来源 |
---|---|---|
在上一行添加光标(editor.action.insertCursorAbove) | ctrl + alt + UpArrow | Default |
在下一行添加光标(editor.action.insertCursorBelow) | ctrl + alt + DownArrow | Default |
在每一行末添加光标(需要先选中区域) | shift+alt+i | Default |
还有一类比较有意思的快捷键:
- ctrl+d,这个命令初次使用时会选中附近的单词,而第二次使用时会向下搜索并相中相同的一个单词,如果这个单词在最后面则会向问首搜索,依次类推。
- ctrl+shif+l或ctrl+f2,在全文相同的单词后面添加光标。这个命令比 f2 修改变量名使用范围更广。
复制和移动
常用的 ctrl + c
没选中文本时复制当前行,选中文本时复制当前文本。
按住 alt
键,再使用上下方向键可以,向上或向下移动当前行。
命令 | 快捷键 | 来源 |
---|---|---|
向上复制该行(editor.action.copyLinesUpAction) | shift + alt + UpArrow | Default |
向下复制该行(editor.action.copyLinesDownAction) | shift + alt + DownArrow | Default |
复制文件路径(copyFilePath),该命令作用于资源管理器 | shift + alt + c | Default |
文本选择
为了实现下面与括号相关的文本选择需要安装上文提到的插件 Bracket Jumper
命令 | 快捷键 | 来源 |
---|---|---|
Select to next-left bracket | alt+c leftarrow | user |
Select to next-right bracket | alt+c rightarrow | user |
Select to nearest left bracket at the same or higer | alt+c uparrow | user |
Select to nearest right bracket at the same or higer | alt+c downarrow | user |
选择到文首(cursorTopSelect) | ctrl+shift+home | Default |
选择到文末(cursorBottomSelect) | ctrl+shift+end | Default |
选择到行首(cursorHomeSelect) | shift+home | Default |
选择到行末(cursorEndSelect) | shift+end | Default |
从光标处向前选择(cursorLeftSelect) | shift+leftarrow | Default |
从光标处向后选择(cursorRightSelect) | shift+rightarrow | Default |
从光标处选择上一页(cursorPageUpSelect) | shift+PageUp | Default |
从光标处选择下一页(cursorPageDownSelect) | shift+PageDown | Default |
从光标处选择前一个单词(cursorWordStartLeftSelect) | ctrl+shift+leftarrow | Default |
从光标处选择后一个单词(cursorWordEndRightSelect) | ctrl+shift+rightarrow | Default |
将光标移动到上一个位置(VS Code翻译成软撤销) | ctrl+u | Default |
行操作
前面已经提到的与行相关的操作这里就不再重复了。
命令 | 快捷键 | 来源 |
---|---|---|
删除行(editor.action.deleteLines) | ctrl+l | user |
在上面插入行(editor.action.insertLineBefore) | ctrl+backspace | user |
在下面插入行(editor.action.insertLineAfter) | ctrl+Enter | Default |
行缩进(editor.action.indentLines) | ctrl+] | Default |
行减少缩进(editor.action.outdentLines) | ctrl+[ | Default |
转到行(workbench.action.gotoLines) | ctrl+g | Default |
拓展行选择(expandLineSelection) | alt+i | user |
合并行 | ctrl+h h | user |
注释
命令 | 快捷键 | 来源 |
---|---|---|
切换行注释 | ctrl+/ | Default |
切换块注释 | ctrl+alt+/ | user |
折叠所有块注释 | ctrl+k ctrlt+/ | Defualt |
格式化
命令 | 快捷键 | 来源 |
---|---|---|
格试化文件 | ctrl+alt+f | User |
格试化文件 | shift+alt+f | Default |
格试选定代码 | ctrl+k ctrl+f | Default |
转换
VS Code 将他翻译成转置,不过我看按照实际功能称之为调换顺序更好理解。
命令 | 快捷键 | 来源 |
---|---|---|
转置字母 | ctrl+h [ | User |
转置游标处的字符 | ctrl+h ] | User |
这两个命令虽说翻译的不一样,但实际功能来看就是相反的操作。
另一个就是大小写字母之间的转换了。
命令 | 快捷键 | 来源 |
---|---|---|
转换为大写 | ctrl+h a | User |
转换为小写 | ctrl+h z | User |
列块编辑
按住 shift+alt 用鼠标可以选择列或区块。相应的快捷键组是 ctrl+alt+shif 再加上 上下左右及pageup,pagedown等快捷键,具体功能自行体会,这么的快捷键其实一下也按不过来。
后记
本文只是总结了一些常用的文本编辑常用的快捷键,一些不常用或者未发现的神技肯定会随着功力的提高而慢慢浮出水面。另外,快捷键可能会与新安装的插件快捷键有所冲突,所以需要根据自己的要求进一步调整快捷键。此外,中文状态下一些组合快捷键无法识别的问题,亟待解决,如有解决方法望不吝赐教。