简单常用姿势:光标定位到某单词,摁下 C+f
,就会弹出搜索框,此时搜索框里边有内容,而且光标也在搜索框内。S+Enter
可以向上查找单词, Enter
则向下查找单词,而要修改查找到的动词,得动用鼠标把光标聚焦到文本编辑器里边,然后修改它!
基本同上姿势:何为基本同上,就是有一点不同,那就是光标不在搜索框内,而是在编辑器内,这样你就可以无须动用鼠标了。默认是 Shift + F3
和 F3
C+J s
:向下(自动打开搜索框)C+G s
:向上(自动打开搜索框)除了搜索纯文本以外,搜索框还支持多种不同的搜索方式。(在搜索框的最右侧,就有三个配置按钮。)
Alt+C
关闭大小写Alt+W
Alt+R
打开。(这个可以很有用呀!可以学习一下JS的正则表达式),如 hello|foo
可以搜索两个这样的单词快捷键记忆:它们分别使用了 Case「match case区分大小写」、Word 和 Regular Expression 的第一个字母作为快捷键的一部分
在文本选择范围内进行搜索:
为啥要配置?——用户不like搜索框某一部分的默认行为,如
editor.find.seedSearchStringFromSelection
来关闭它)还有就是,用户觉得如果选中了多行文本,那么当开始搜索时,应该自动地只在这几行代码里进行搜索,而不是直接的全局搜索,而要达成这样的目的,则需要打开设置“editor.find.autoFindInSelection” 即可!
搜索到了想要的结果,那么我就得要替换它!
Ctrl+h
:调出替换窗口,关于内容的替换,可以单个替换(Ctrl+Shift+1
),可以全部替换(C+A+Enter)Tab
+ Shift+Tab
:帮助你在这搜索输入框和替换输入框里边直接进行跳转。Tab
是跳到替换框,而 Shift+Tab
则是跳到搜索框C+S+f
:多了个 Shift
,就能实现多文件搜索了,而这个搜索是在当前打开的文件夹下进行搜索的,即整个打开的根目录!如果你要发挥多文件搜索的更大功效,我们可以通过书写配置来决定在哪些子文件夹下进行搜索,以及过滤掉哪些特殊的文件或者文件夹。
相较于单文件搜索,多文件搜索多了两个输入框,那么这两个输入需要填写什么内容呢?
我无中生有的测试了一下,如 05-*
写在「包含的文件」这个输入框里边,那么搜索的内容就只能在该文件里边找了,而如果写在「排除的文件」里边,那么除了 05-
开头的目录或文件不找,其余的目录和文件都得去匹配搜索!
其实这两个配置的书写格式是 glob,很多编程语言和配置都会使用 glob 来模糊匹配文件名和文件夹。
曾经写过这样的书写格式,如某个前端项目的
karma.conf.js
里边:{ files: [ 'dist/**/*.test.js', 'dist/**/*.test.css' ], }
但我不知道这是一种叫glob的书写格式。
glob 它最早是出现在类Unix系统的命令行中, 是用来匹配文件路径的。比如,
lib/**/*.js
匹配 lib 目录下所有的 js 文件关于它的匹配规则:
不同语言的 glob 库支持的规则会略有不同。下面是 node-glob 的匹配规则。
*
匹配任意 0 或多个任意字符?
匹配任意一个字符[...]
若字符在中括号中,则匹配。若以!
或^
开头,若字符不在中括号中,则匹配!(pattern|pattern|pattern)
不满足括号中的所有模式则匹配?(pattern|pattern|pattern)
满足 0 或 1 括号中的模式则匹配+(pattern|pattern|pattern)
满足 1 或 更多括号中的模式则匹配*(a|b|c)
满足 0 或 更多括号中的模式则匹配@(pattern|pat*|pat?erN)
满足 1 个括号中的模式则匹配**
跨路径匹配任意字符可以把
**
看做是递归搜索!关于它的使用场景:
任务管理,如压缩某目录下的
.js
文件、把编译好的文件打包扔到某个目录下……命令行:
多文件的配置比单文件里的搜索框还要更多一些,你可以打开设置搜索 “search” 看看都有哪些。以下是两个被用户修改比较频繁的设置。
第一个是“search.collapseResults”。它是用来控制是否自动展开搜索结果。默认的配置是 “auto” 自动, 也就是说,VS Code 会根据搜索结果的多少来决定是否要将某个文件下的搜索结果展开,如果某个文件夹下的结果过多的话,就会将其暂时折叠,而用户需要自行展开结果。吕大佬自己喜欢将其设置为 “alwaysExpand
”,这样我每次都能直接看到结果了。
第二个是 “search.location” ,也就是多文件搜索视图的位置。默认情况下,搜索视图会出现在侧边栏。但是 VS Code 同样允许你把搜索视图放到底部面板中去,你只需将其修改为 “panel” 即可。相信很多用户都跟我一样,使用过非常多把搜索视图放在底部的开发工具,并且很习惯了,那这个设置就能够帮助到我们。
一个 macOS 系统上特有的搜索功能,叫做共享搜索记录。这个功能需要通过设置 “editor.find.globalFindClipboard
” 和 “search.globalFindClipboard
” 打开。当这个功能被打开之后,我们在 VS Code 中的搜索关键词和搜索记录,都会被共享给系统,然后当我们打开别的支持这个功能的应用时,比如 Safari 或者 Chrome 浏览器,按下 “Cmd + F”键,就会发现同样的搜索关键词已经被自动填充到搜索框中了。
一个功能丰富且快速的搜索,在很多情况下甚至比语言服务还要来得有用。这是因为,VS Code 里的多文件搜索太快了,就拿我自己来说,当我对某个类或者函数的名字有个大概的印象,我都会使用多文件搜索,进行模糊匹配,基本都能找到想要的结果。这比绞尽脑汁想出到底是哪个具体的类、名字是啥,然后使用语言服务来找到它在哪里被使用了,要快捷得多。虽说很暴力,但不得不说也很有效。
学到了什么?
还需要继续学什么?