Android Studio - File in Path 搜索你想要的

1. 前言

在AS中,我们经常使用 Ctrl+Shift+FFile in Path 去搜索内容,但是总是会搜索出很多非项目的或者包含Build下的文件结果,现在就来解决一下这个问题。

搜索结果中包含Build目录下文件结果

2. File in Path 的 Scope

Scope提供了自定义搜索范围功能,可以添加设置自己想要的搜索范围。

2.1 进入Scope设置

Ctrl+Shift+F 打开 File in Path

打开Scopes设置

2.2 Scope设置介绍

填写名称
Scope设置介绍

2.3 Scope设置操作

Scope设置操作

3. 定制想要的搜索范围

操作的时候,使用左边目录选择,加右边操作,可以快速定制。但是一般还需要通过手动调整 Pattern 来达到更精准效果。

3.1 默认搜索范围

File in Path 默认搜索范围包含三大块,选择 Package 方式查看,分别是 Libs ClassesProduction ClassesTest Classes值得注意的是,使用 Project 只能看到 项目目录,但是搜索时的范围,还是包含前面提到的三大块。在包含文件数目中,可以看到写明【未显示非项目目录】

  • Libs Classes:项目中所有使用到的类库,除了引入的三方类库如 Okhttp还包含android sdk本身类库
  • Production Classes:项目文件。一般会分两个目录。一个源码目录,一个非源码目录(包含build生成文件,未在settting中include的模块等)。
  • Test Classes:单元测试文件。

3.2 定制操作

定制操作
  • 定制过程,根据Package和Project相结合查看,当前Scope的搜索目录范围。
  • 然后可以使用右侧功能进行操作,或者直接修改过滤条件 Pattern。建议熟悉语法后使用 Pattern,因为最终都是靠 Pattern 生效的,而且右侧功能局限太大,不够灵活。
  • 调整范围后,边上的搜索文件数目会实时更新,可以得知自己的语法有没有生效,是否过滤掉了一些非目标范围。
  • 切换 PackageProject 查看目录范围,确认无误后,保存。
  • 最终实际使用,查看搜索结果是否符合目的了。若未达到目标,看看结果中还有哪些目录未过滤掉,然后再调整过滤条件重新尝试。

3.3 语法简介

语法格式

  • [header][model_name]:path:model_name不一定需要。例: file[Example.app]:src/main/myDir/*

头部

  • file :指定文件
  • src :项目src目录文件
  • lib :引用到的库文件,包括第三方及android sdk的。
  • test:测试用例文件

指定模块

  • [heard][module name]:例如file[app],或 file[Demo.app]

尾部
路径,可以用 * 代表作为通配符,指任意。例如:file:*/build//*,指任意build目录,匹配xxx/build/xxxxx,后面//*的一个 / 属于转意,放在 *

运算符

  • &&:与
  • ||:或
  • !:非

3.4 最终效果

下面以搜索 项目文件(包含未include模块源码) 为目的,给出最终结果,并解释各项。

file[*]:*/&&!file:*build//*&&!file[*]:*libs//*&&!test:*..*&&!file:*.iml&&!file:*.aar&&!file:mapping.txt&&!file:.gitignore&&!file:.idea//*&&!file:gradle//*

  • file[*]:*/:指定范围,项目下所有模块的所有文件。这样可以排除项目外的路径,如Android库等。

  • !file:*build//*:排除所有build文件夹及其内容

  • !file[*]:*libs//*:排除所有模块下libs文件夹及其内容

  • !test:*..*:排除所有test用例

  • !file:*.iml:排除iml类型文件

  • !file:*.aar:排除aar类型文件

  • !file:mapping.txt:排除mapping.txt文件

  • !file:.gitignore:排除gitignore文件

  • !file:.idea//*:排除idea目录

  • !file:gradle//*:排除gradle目录

4. Scope组合使用

除了直接使用一条完整的Scope过滤代码,也可以把他们拆开,使用 &&||! 进行自由组合。记得先保存,引用才能生效。

4. 参考

StackOverflow:
Android Studio : Exclude files in build folder from search result
IntelliJ IDEA - JetBrains:
Scopes—IntelliJ IDEA - JetBrains
Scopes语法介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容