VScode 快捷键,使你工作事半功倍
1.快速上手VS Code
命令行的使用
运行 code --help
打印出VS Code命令行支持的所有参数。
最基本的命令行使用方式是在code
命令后加上文件或者文件夹的地址,这样VS Code 就会在一个新窗口中打开这个文件或文件夹。
如果你希望使用已经打开的窗口来打开文件,可以在code
命令后添加参数 -r来进行窗口的复用。
你也可以使用参数 -g <file:line[:character]>
打开文件,然后滚动到文件中某个特定的行和列,比如输入code -r -g package.json:128
命令,你就可以打开package.json
这个文件,然后自动跳转到 128 行。
这个命令可以方便你从终端里快速地在 VS Code 里打开一个文件进行预览,一个特别常见的例子就是当我们使用脚本执行某个命令,这个命令告诉我们某个文件的某一行出现了错误,我们就能够快速定位了。
VS Code 也可以用来比较两个文件的内容,你只需使用 -d
参数,并传入两个文件路径,比如输入 code -r -d a.txt b.txt
命令,就可以比较a.txt和b.txt两个文件的内容了。有了这个命令,你就可以既使用命令行运行脚本,也可以借助 VS Code 的图形化界面进行文件内容的对比了。
VS Code 命令行除了支持打开磁盘上的文件以外,也接受来自管道中的数据。这样你就可以将原本在命令行中展示的内容,实时地展示在 VS Code 里,然后在编辑器中搜索和修改。比如,你可以把当前目录下所有的文件名都展示在编辑器里,此时只需使用ls | code -
命令。
总结
-
-r
表示使用当前的VS Code窗口 -
-g <file:line[:character]>
表示跳转到指定文件夹的指定列 -
-d
用于两个文件做对比 -
ls | code -
VS Code支持管道,利用管道可以将原本在命令行中展示的内容实时显示在VS Code中
2.双手离开鼠标
1.光标移动
-
ctrl+左右方向键
:光标按照单词跳动,不是按照字符跳动 -
ctrl+shift+\
:代码块的移动。从一个{跳到另一个} -
ctrl+ Home/End
:跳到文档第一行和最后一行
2.文本选择
在光标移动基础上加上shift
按键就可以实现对文本的选中
-
ctrl+方向键+shift
:选中文本 -
Home/End+shift
:选中当前光标前或后的文本 - :选中代码块 (没有找到自定义的地方)
3.删除操作
-
ctrl+shift+K
:表示删除当前列(或者选中列) -
delete+L
:删除左边内容(自定义可以修改) -
delete+R
:删除右边内容(自定义可以修改)
3.快捷键进阶
代码行编辑
-
ctrl+Enter
:下一行 -
ctrl+shift+Enter
:上一行 -
Alt+上下键
:移动一段代码。(会自动修改代码的缩进格式,非常方便) -
Alt+shift+上下键
:复制一段代码 -
ctrl+U
:撤销本次光标移动 -
Alt+shift+A
:注释选中的整块代码
4.创建多个光标
创建多光标做批量修改
- 鼠标创建:
Alt+鼠标点击
- 键盘创建:
ctrl+Alt+下按键
先创建出多个光标后,将所有光标通过End
移至最后,再做调整
创建多光标的两个特殊命令
1. ctrl+D
第一次按下时,它会选中光标附近的单词;第二次按下时,它会找到这个单词第二次出现的位置,创建一个新的光标,并且选中它。适用于处理多次出现的“相同”单词。
2.Alt + Shift + i
先选中代码,选中代码每一行的最后都会创建一个新的光标。这种方法是基于代码行的,如果你的需求是在同一行添加多个光标,那么就不适用了。
5.如何快速在文件、符号、代码之间跳转
文件跳转
按下ctrl+Tab
然后继续按着 Ctrl
键但是松开 Tab
键,这样你就可以打开一个文件列表,这个列表罗列了当前打开的所有文件。接下来,你可以通过按下 Tab
键在这个列表里跳转,选择你想要打开的文件。最后选到你想打开的文件后,松开 Ctrl
键,这个文件就被打开了。
Alt+Z
表示使文本自动换行。
当文件过多需要一直按住Tab键,这时按ctrl+P
会跳出个最近打开文件的列表,同时在列表的顶部还有一个搜索框,使用这个搜索框来快速地找到你想要的文件,然后按下 Enter
键直接在当前窗口打开。按下ctrl+Enter
在新窗口打开。
行跳转
按下ctrl+g
,编辑器就会出现一个输入框,直接输入行数。
如果你想跳转到某个文件的某一行,你只需要先按下ctrl+p
,输入文件名,然后在这之后加上 :
和指定行号即可。
符号 (Symbols) 跳转
VS Code 提供了一套 API 给语言服务插件,它们可以分析代码,告诉 VS Code 项目或者文件里有哪些类、哪些函数或者标识符(我们把这些统称为符号)。
按下ctrl+shift+O
出现一个带着@
符号的搜索栏,能够看到当前文件里的所有符号。使用方向键,或者搜索,找到你想要的符号后,按下回车,就能够立刻跳转到那个符号的位置。
在@
符号后加:
就可以将当前文件的所有符号,进行分类,这样搜索符号也就更加方便。
有些语言除了提供单个文件里的符号,还支持在多个文件里进行符号跳转。比如在 VS Code 里,如果你打开了多个 JavaScript
文件,就可以按下ctrl+T
,搜索这些文件里的符号。
定义 (Definition) 和实现 (implementation) 跳转
-
F12
:跳转到函数的定义处 -
ctrl+F12
:跳转到函数的实现的位置
这个命令实现也与语言本身有关, 比如JavaScript
因为并没有接口(interface)的概念,定义和实现恰好是相同的。
引用 (Reference) 跳转
很多时候,除了要知道一个函数或者类的定义和实现以外,你可能还希望知道它们被谁引用了,以及在哪里被引用了。这时你只需要将光标移动到函数或者类上面,然后按下 Shift + F12
,VS Code 就会打开一个引用列表和一个内嵌的编辑器。在这个引用列表里,你选中某个引用,VS Code 就会把这个引用附近的代码展示在这个内嵌的编辑器里。
6.玩转鼠标操作
文本选择
- 单击鼠标左键就可以把光标移动到相应的位置。
- 双击鼠标左键,则会将当前光标下的单词选中。
- 连续三次按下鼠标左键,则会选中当前这一行代码。
- 连续四次按下鼠标左键,则会选中整个文档。
- 选中其中的多行代码:如果你单击行号,就能够直接选中这一行。如果你在某个行号上按下鼠标,然后上下移动,则能够选中多行代码。
文本编辑
- 用鼠标进行
剪切+粘贴
:按下鼠标左键不松开,移动鼠标的话,就可以把这段文本拖拽到我们想要的位置 - 用鼠标进行
复制+粘贴
:在拖拽这段文本的同时,按下ctrl
键,这段文本将会被复制粘贴到虚拟光标所在的位置
7.代码自动补全、快速修复和重构
重构
当我们想修改一个函数或者变量的名字时候,我们只需把光标放到函数或者变量名上,然后按下 F2
,这样这个函数或者变量出现的地方就都会被修改。这个操作并不是一个粗暴的搜索关键词并替换,在上面的动图中你可以看到,最后一行代码里有个 bar3
函数调用,但当我们去重命名bar
这个函数时,bar3
并没有受到影响。
8.极速搜索有时候比Intellisense还重要
单文件搜索
ctrl+F
能够快速地调出搜索窗口,编辑器就会把当前光标所在位置的单词自动填充到搜索框中。与此同时,当前文件里和搜索关键词相同的单词都会被高亮出来。
自动填充搜索关键词的好处在于,当我们按下 ctrl +F
搜索这个单词之后,我们还能够立刻通过回车键(向下)或者 shift+回车键
(向上) 在所有搜索结果当中快速跳转。
首先我们将光标移动到我们想要搜索的单词处,然后按下F3
,此时我们同样调出了搜索框,但与前面 ctrl +F
这个快捷键不同的是,这时光标依然是在编辑器当中,而不是在搜索框中。
然后我们通过不断按下F3
就能够在搜索结果之间自上而下地循环跳转,这时我们只需直接打字就能对代码进行修改了。如果我们想要在搜索结果里自下而上地跳转,只需增加shift键,按下shift+F3
来实现自下而上的跳转。
搜索框的功能
第一个是大小写敏感。默认情况下,VS Code 的搜索是不区分大小写的,也就是说哪怕大小写不一样,也会算到搜索结果里去。但如果我们不想要这个特性,就可以点击右边第一个按钮,或者按下Alt + C
来关闭它。
第二个是全单词匹配。有的时候我们搜索的单词恰好是别的某个单词中间的一部分,如果我们不希望这样的结果出现在搜索结果中,那么就可以点击这个按钮或按下 Alt + W
来关闭它。
第三个,就是正则表达式匹配了。当我们点击这个按钮或按下Alt+R
,就能够打开正则表达式的支持,然后在搜索框中输入正则表达式来搜索。要注意的是,编辑器中的这个搜索框,它里面的正则表达式使用的是 JavaScript
的正则引擎。
我们可以先选中一段文本,然后按下 Ctrl + F
调出搜索框,这之后点击这个按钮,就可以将这段文本的范围设置为接下来的搜索区域。然后当我们在输入框里输入关键字后,编辑器就只会在这个区域里进行搜索。
单文件替换
在搜索到我们想要的结果之后,我们可以直接在文件中进行修改,也可以使用替换窗口进行批量替换。如果你在使用鼠标或者是触控板的话,只需按一下搜索窗口最左侧的箭头按钮即可打开替换框。
我们也可以通过快捷键直接调出替换窗口。按下ctrl+H
当前光标所在的单词就会被用作为搜索关键词,同时编辑器将光标移动到替换窗口中,我们只需直接输入想要替换的关键词就行了。
9.版本控制
差异编辑器
四个按钮
第一个按钮的功能是从差异编辑器跳转到一个普通的编辑器,并且打开这个文件。这样我们能够无干扰地进行编辑操作了。
第二个按钮控制的是:是否要在差异编辑器里显示代码里行末的空格符的变化。比如说你不小心在行末添加了几个空格,默认情况下,VS Code 觉得这几个空格不影响代码,就不会在差异编辑器里显示。但我建议把它打开,这样你就可以确保能够看到所有的代码改动。
接下来的两个箭头按钮,就是用于在当前文件里的多个变动之间进行跳转了。