vscode查找函数名_vscode学习笔记(三):搜索
今天来看一下编辑器自带的文本搜索功能,快速地穿梭于海量的代码之中
一个功能丰富且快速的搜索,在很多情况下甚至会比语言服务还要来得有用
单文件搜索
把光标放在编辑器当中,然后按下 Ctrl + F,就能够快速地调出搜索窗口
调出搜索窗口的时候,编辑器就会把当前光标所在位置的单词自动填充到搜索框中
与此同时,当前文件里和搜索关键词相同的单词都会被高亮出来
自动填充搜索关键词的好处在于,当我们按下 Ctrl + F搜索这个单词之后,还能够立刻通过回车键或者shift+回车键 在所有搜索结果当中快速跳转
这里需要注意的事情是,当开始搜索的时候,光标已经被移动到了搜索框当中,如果在这时候继续打字的话,那原有的搜索关键词将会被修改
如果希望找到搜索结果后,接下来就直接修改编辑器中的内容,那么就得将光标重新移动到编辑器当中
这种情况下,不妨换一个快捷键
首先将光标移动到我们想要搜索的单词处,然后按下 F3,此时同样调出了搜索框,但与前面Ctrl + F这个快捷键不同的是,这时光标依然是在编辑器当中,而不是在搜索框中
然后我们通过不断按下F3就能够在搜索结果之间自上而下地循环跳转,这时只需直接打字就能对代码进行修改了
如果想要在搜索结果里自下而上地跳转,也是可以通过快捷键实现的,只需多增加一个 shift 键即可,也就是按下 Shift + F3来实现自下而上的跳转
注意:在搜索框中打字的时候,搜索操作是自动触发的,而无需再按下回车键去手动地执行搜索这个操作
除了搜索纯文本以外,搜索框还支持多种不同的搜索方式
比如,在搜索框的最右侧,就有三个配置按钮
第一个是大小写敏感
这个很好理解,就是在文档中搜索关键词的时候,搜索的结果是否要跟关键词大小写完全一致
默认情况下,VS Code 的搜索是不区分大小写的,也就是说哪怕大小写不一样,也会算到搜索结果里去
但如果不想要这个特性,就可以点击这个按钮,或者按下上是 Alt + C来关闭它
第二个是全单词匹配
有的时候我们搜索的单词恰好是别的某个单词中间的一部分,如果不希望这样的结果出现在搜索结果中,那么就可以点击这个按钮或按下 Alt + W 来关闭它
第三个,就是正则表达式匹配了
当我们点击这个按钮或按下 Alt + R,就能够打开正则表达式的支持,然后在搜索框中输入正则表达式来搜索
要注意的是,编辑器中的这个搜索框,它里面的正则表达式使用的是 JavaScript 的正则引擎
这三个功能的快捷键的配置,它们分别使用了 Case、Word 和 Regular Expression 的第一个字母作为快捷键的一部分,若你知道是这几个单词,那对应的快捷键就不会容易忘了
除了这三个搜索设置以外,在搜索窗口关闭按钮的左侧,相信你还能看到一个特别的图标
那这个按钮的功能是什么呢?
我们可以先选中一段文本,然后按下 Ctrl+ F 调出搜索框,这之后点击这个按钮,就可以将这段文本的范围设置为接下来的搜索区域
然后当我们在输入框里输入关键字后,编辑器就只会在这个区域里进行搜索
搜索配置
上面我们提到的功能,都是 VS Code 的默认行为
但也有部分用户不喜欢搜索框的一部分行为,比如说自动填充搜索关键词,那你可以打开设置,搜索 “editor.find.seedSearchStringFromSelection” 来关闭它
也有个别用户觉得,如果选中了多行文本,那么当开始搜索时,应该自动地只在这几行代码里进行搜索,你则需要打开设置 “editor.find.autoFindInSelection”
单文件替换
在搜索到想要的结果之后,可以直接在文件中进行修改,也可以使用替换窗口进行批量替换
只需用鼠标点一下搜索窗口最左侧的箭头按钮即可打开替换框
替换框的后面,一共有两个按钮:第一个能够替换单个搜索结果,第二个则能够替换全部的搜索结果
查看对应的快捷键,只需把鼠标指针移动到它们上面,就能够看到了
也可以通过快捷键直接调出替换窗口,最常用的命令就是按下 Ctrl + H键,这样当前光标所在的单词就会被用作为搜索关键词,同时编辑器将光标移动到替换窗口中,只需直接输入想要替换的关键词就行了
当然,如果在书写完替换文本后,觉得搜索关键词需要修改,那你可以按下 Shift + Tab 键将光标移动到上面的搜索输入框里
Tab 和 Shift + Tab 键能够帮助你在这两个输入框直接进行跳转
多文件搜索和替换
多文件搜索的运行方法跟单文件搜索非常类似,通过按下Ctrl + Shift + F 来调出多文件搜索的视图
在这样一个视图中,我们看到了熟悉的搜索输入框,以及大小写敏感、全单词匹配和正则表达式三个配置按钮
搜索框的左侧则是下拉按钮,点击即可调出替换框
默认情况下,调出多文件搜索的视图时,VS Code 会在当前打开的文件夹下进行搜索
不过,要发挥多文件搜索的更大功效,可以通过书写配置来决定在哪些子文件夹下进行搜索,以及过滤掉哪些特殊的文件或者文件夹
要完成这样的配置,需要点击搜索框下三个点形状的图标,点开后,能看到两个输入框,它们的名字分别是“包含的文件” 和 “排除的文件”
这两个配置的书写格式是 glob,很多编程语言和配置都会使用 glob 来模糊匹配文件名和文件夹
扩展
glob:是用来返回匹配指定模式的文件名或目录,所谓的 glob 模式是指 shell 所使用的简化了的正则表达式
星号(*)匹配零个或多个任意字符
[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)
问号(?)只匹配一个任意字符
多文件搜索配置
多文件的配置比单文件里的搜索框还要更多一些,你可以打开设置搜索 “search” 看看都有哪些,这里仅介绍常用的两个
第一个是 “search.collapseResults”
它是用来控制是否自动展开搜索结果
默认的配置是 “auto” 自动, 也就是说,VS Code 会根据搜索结果的多少来决定是否要将某个文件下的搜索结果展开,如果某个文件夹下的结果过多的话,就会将其暂时折叠,用户需要展开结果
第二个是 “search.location” ,也就是多文件搜索视图的位置
默认情况下,搜索视图会出现在侧边栏
但是 VS Code 同样允许你把搜索视图放到底部面板中去,你只需将其修改为 “panel” 即可
文章开头说,一个功能丰富且快速的搜索,在很多情况下甚至比语言服务还要来得有用
这是因为,VS Code 里的多文件搜索太快了,当我对某个类或者函数的名字有个大概的印象,我都会使用多文件搜索,进行模糊匹配,基本都能找到想要的结果
这比绞尽脑汁想出到底是哪个具体的类、名字是啥,然后使用语言服务来找到它在哪里被使用了,要快捷得多,虽说很暴力,但不得不说也很有效
好了,搜索就介绍到这,我们下篇文章见~
2+
vscode查找函数名_vscode学习笔记(三):搜索相关推荐
- 大数据HiveSQL学习笔记三-查询基础语法以及常用函数
大数据HiveSQL学习笔记三-查询基础语法以及常用函数 一.基础语法 1.SELECT -列名- FROM -表名- WHERE -筛选条件- 如:需要根据城市,性别找出匹配的10个用户 user_ ...
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- Python学习笔记三之编程练习:循环、迭代器与函数
Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...
- Hive学习笔记三之函数操作
文章目录 5 函数 5.1 系统内置函数 5.2 常用内置函数 5.2.1 空字段赋值 5.2.2 CASE WHEN THEN ELSE END(类似于java中的switch case) 5.2. ...
- python3常用模块_Python学习笔记三(常用模块)
Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...
- MySQL学习笔记(三)查询
写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...
- 【AngularJs学习笔记三】Grunt任务管理器
为什么80%的码农都做不了架构师?>>> #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...
- Python基础学习笔记三
Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...
- SurfaceFlinger学习笔记(三)之SurfaceFlinger进程
概述 本系列是基于android Q 即android10 SurfaceFlinger学习笔记(一)应用启动流程 SurfaceFlinger学习笔记(二)之Surface SurfaceFling ...
最新文章
- Facebook的实时Hadoop系统
- 在没有工具的情况下检查SSD 的TRIM功能有没有打开
- Almost Regular Bracket Sequence
- 二叉树序列化与反序列化相关题目(Leetcode题解-Python语言)
- 阿里云HiShop海商创新合作—线上商城这样做更合适
- XML模板解析————Dom4j解析xml案例分析
- POS tagging中英文对应
- 移动端前端UI框架推荐
- 关于Protel 2004 绘制电路原理图
- 质点系的角动量与角动量定理
- 谷歌浏览器无法上网,其他浏览器正常,换chrome搜索引擎
- 模式识别学习笔记(8)——隐马尔可夫模型
- 关于QRCODE二维码使用彩色进行扩容的思考
- linux samba 断点续传,利用cURL实现单个文件分多段同时下载,支持断点续传
- 富途牛牛A股数据API使用基础教程
- 超爆笑段子大集锦 你要不笑我自宫
- Inspect的学习笔记
- [Go实战]怎么写测试类,运用testing.T
- No appenders could be found for logger
- 【Oracle】数据字典初步理解
热门文章
- supper 关键字
- php网盘 共享 直链,PHP比较简单的百度网盘文件直链的实现方法
- 为什么不能直接通过IP访问网站
- uniapp接入微信客服聊天流程(企业微信)
- IPFS为数据隐私保驾护航
- 慢性疲劳免疫失调综合症(CFIDS)
- 黑客:iPhone的这些脑残功能逼我去越狱 苹果:乖,招安是我强项!
- Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time简介
- 批处理、分时、实时各个操作系统特点
- YOLOv5全面解析教程③:更快更好的边界框回归损失