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

1. 前言

在AS中,我們經(jīng)常使用 Ctrl+Shift+FFile in Path 去搜索內(nèi)容,但是總是會(huì)搜索出很多非項(xiàng)目的或者包含Build下的文件結(jié)果,現(xiàn)在就來解決一下這個(gè)問題。

搜索結(jié)果中包含Build目錄下文件結(jié)果

2. File in Path 的 Scope

Scope提供了自定義搜索范圍功能,可以添加設(shè)置自己想要的搜索范圍。

2.1 進(jìn)入Scope設(shè)置

Ctrl+Shift+F 打開 File in Path

打開Scopes設(shè)置

2.2 Scope設(shè)置介紹

填寫名稱
Scope設(shè)置介紹

2.3 Scope設(shè)置操作

Scope設(shè)置操作

3. 定制想要的搜索范圍

操作的時(shí)候,使用左邊目錄選擇,加右邊操作,可以快速定制。但是一般還需要通過手動(dòng)調(diào)整 Pattern 來達(dá)到更精準(zhǔn)效果。

3.1 默認(rèn)搜索范圍

File in Path 默認(rèn)搜索范圍包含三大塊,選擇 Package 方式查看,分別是 Libs ClassesProduction Classes,Test Classes。值得注意的是,使用 Project 只能看到 項(xiàng)目目錄,但是搜索時(shí)的范圍,還是包含前面提到的三大塊。在包含文件數(shù)目中,可以看到寫明【未顯示非項(xiàng)目目錄】

  • Libs Classes:項(xiàng)目中所有使用到的類庫,除了引入的三方類庫如 Okhttp,還包含android sdk本身類庫
  • Production Classes:項(xiàng)目文件。一般會(huì)分兩個(gè)目錄。一個(gè)源碼目錄,一個(gè)非源碼目錄(包含build生成文件,未在settting中include的模塊等)。
  • Test Classes:單元測試文件。

3.2 定制操作

定制操作
  • 定制過程,根據(jù)Package和Project相結(jié)合查看,當(dāng)前Scope的搜索目錄范圍。
  • 然后可以使用右側(cè)功能進(jìn)行操作,或者直接修改過濾條件 Pattern。建議熟悉語法后使用 Pattern,因?yàn)樽罱K都是靠 Pattern 生效的,而且右側(cè)功能局限太大,不夠靈活。
  • 調(diào)整范圍后,邊上的搜索文件數(shù)目會(huì)實(shí)時(shí)更新,可以得知自己的語法有沒有生效,是否過濾掉了一些非目標(biāo)范圍。
  • 切換 PackageProject 查看目錄范圍,確認(rèn)無誤后,保存。
  • 最終實(shí)際使用,查看搜索結(jié)果是否符合目的了。若未達(dá)到目標(biāo),看看結(jié)果中還有哪些目錄未過濾掉,然后再調(diào)整過濾條件重新嘗試。

3.3 語法簡介

語法格式

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

頭部

  • file :指定文件
  • src :項(xiàng)目src目錄文件
  • lib :引用到的庫文件,包括第三方及android sdk的。
  • test:測試用例文件

指定模塊

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

尾部
路徑,可以用 * 代表作為通配符,指任意。例如:file:*/build//*,指任意build目錄,匹配xxx/build/xxxxx,后面//*的一個(gè) / 屬于轉(zhuǎn)意,放在 *。

運(yùn)算符

  • &&:與
  • ||:或
  • !:非

3.4 最終效果

下面以搜索 項(xiàng)目文件(包含未include模塊源碼) 為目的,給出最終結(jié)果,并解釋各項(xiàng)。

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

  • file[*]:*/:指定范圍,項(xiàng)目下所有模塊的所有文件。這樣可以排除項(xiàng)目外的路徑,如Android庫等。

  • !file:*build//*:排除所有build文件夾及其內(nèi)容

  • !file[*]:*libs//*:排除所有模塊下libs文件夾及其內(nèi)容

  • !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過濾代碼,也可以把他們拆開,使用 &&||、! 進(jìn)行自由組合。記得先保存,引用才能生效。

4. 參考

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Gradle plugin 3.0 & Android Studio 3.0 我們主要講一下升級(jí)gradle pl...
    coofee閱讀 18,685評(píng)論 6 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,261評(píng)論 6 342
  • 一 、問題方案 報(bào)錯(cuò)問題 Error:Execution failed for task ':app:mergeD...
    Ansel_Young閱讀 1,282評(píng)論 0 0
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)、焦點(diǎn)、注意力、語言聯(lián)想、情景聯(lián)想 觀點(diǎn): 1.統(tǒng)計(jì)學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會(huì)...
    Jenaral閱讀 5,967評(píng)論 0 5

友情鏈接更多精彩內(nèi)容