1、问题描述
今天使用Android Studio时,想通过使用快捷键Ctrl+Shift+F来进行全局搜索指定字符串,如下图所示:想搜索字符串”码农偷懒了”,
打开string.xml文件,里面明明有字符串”码农偷懒了”,但是就是搜索不到结果,如下图所示
错误提示如下所示:
No occurrences of '码农偷懒了' found in Project with mask '*.xml *.java' Find Options... (Ctrl+Shift+F)
2、问题解决
根据错误提示,重新使用快捷键Ctrl+Shift+F打开搜索面板,并进入【File name filter】选项,去掉【File mask(s)】菜单项的勾选。如下图所示:
去掉勾选后,如下图所示:
然后点击【Find】按钮,就出现了搜索结果,如下图所示:
这样通过搜索字符串找到了字符串定义的地方,然后就可以找到该字符串在其他的地方引用了。
使用快捷键Ctrl+Shift+F,搜索关键字”code_undisposed”,如下图所示:
搜索结果如下所示:
当然,此时也可以使用Alt+F7快捷键进行搜索,将鼠标放在
码农偷懒了
这一行,然后按Alt+F7快捷键,就可以搜索了,如下图所示:
上面的快捷键都是Android Studio默认的快捷键,如下所示:
有时候,一个很小的疏忽就会导致完全达不到你的要求,很艹蛋!下次注意不要随意勾选【File mask(s)】选项!
3、自定义搜索Scope
博客更新这么久了,今天有个读者灵魂颤抖吧 回复了我,回复内容如下:
1楼 灵魂颤抖吧 3小时前发表 [回复]
自定义过滤build下的intermediates和generated文件夹中的所有文件:
Options(Tab)- Scope - Custom(勾选) - 右侧三个点(点击)-
加号(点击)– local – 过滤内容:!file:intermediates/&&!file:generated/
让我通过该回复,又学会了一项新技能:【自定义搜索Scope】
通过 灵魂颤抖吧 读者的提示,搜索关键字【!file:intermediates/&&!file:generated/】来到了【Stack Overflow】网站,地址如下所示:
https://stackoverflow.com/questions/22973939/ignore-r-java-fies-in-find-results
按照上面的方法,使用下面几步,即可实现自定义搜索Scope.
- 第一步:在Android Studio 中,使用快捷键【Ctrl+Shift+F】打开搜索框,如下所示:
- 第二步:在【Scope】区域,选择【Custom】选项,然后点击右侧的【…】按钮,如下所示:
点击完后,弹出如下所示的弹框
- 第三步:点击【+】按钮,在【Add scope】中选择【Local】
然后填写名称为自定义的【ExcludeIntermediates】,如下所示:
点击【OK】按钮,然后弹出如下所示的框,
- 第四步:在【Pattern】文本框中,我们要填写自定义的过滤规则,然后点击【OK】按钮保存。
例如,我们填写规则
!file:*intermediates*/&&!file:*generated*/
定义该规则后,imtermediates目录以及generated目录下的文件将不被搜索。
如下图所示,使用自定义的Scope之后,搜索build\intermediates\manifest\androidTest\debug\AndroidManifest.xml文件中的字符串“ Tests for com.xtc.watch” 搜索不到了
将Scope改为原来的【Whole project】即可搜索的到,如下所示:
4、更多自定义搜索Scope规则
学会了上面的基本规则之后,你想怎么定义Scope规则都可以,下面介绍一个其他人定义的规则,如下所示:
规则代码如下
!file:*intermediates*/&&!file:*generated*/&&file:*java&&!file:R.java&&!file:*_.java||file:*strings.xml||file:*dimes.xml||file:*styles.xml||file:*attrs.xml||file:*colors.xml||file:*layout/*xml&&!file:*build/*xml
该规则,
- 忽略R.java文件
- 忽略所有的通过 Android Annotations生成的java文件 (i.e. *_.java files)
- 包含strings.xml, dimens.xml, styles.xml, attrs.xml, colors.xml files
- 包含所有的layout/* path 目录下的xml文件
参考链接
https://stackoverflow.com/questions/22973939/ignore-r-java-fies-in-find-results
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。