ขอบเขตการค้นหาไฟล์ที่ จำกัด ใน Sublime Text 2


238

ใน Sublime Text ฉันมักจะใช้Cmd+ P/ Ctrl+ Pเพื่อค้นหาและข้ามไปมาระหว่างไฟล์ต่างๆ

บ่อยครั้งที่มันจะรับไฟล์ชั่วคราวหรือแคชเช่น. scssc หรือสิ่งต่าง ๆ ในโฟลเดอร์ / tmp

มีวิธีที่ฉันสามารถ จำกัด สิ่งที่ปรากฏในผลการค้นหาหรือไม่?

คำตอบ:


319

เพิ่มและแก้ไขใน~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsไฟล์ของคุณ

// These files will still show up in the side bar, but won't be included in
// Goto Anything or Find in Files
"binary_file_patterns": ["*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"],

"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS"],

12
การbinary_file_patternsลบไฟล์ออกจาก Goto Anything แต่ไม่ได้อยู่ใน Find in Files ตามที่ควรเป็นตามความคิดเห็น ใครบ้างที่ประสบปัญหานี้ รู้วิธีการแก้ไขหรือไม่ ฉันใช้ Ubuntu สร้าง 2221; สิ่งเดียวกันเกิดขึ้นบน Mac ของฉัน (ไม่ทราบหมายเลขบิลด์)
Tyler Collier

51
นอกจากนี้"file_exclude_patterns": ["*.log"]หากคุณต้องการละเว้นไฟล์บางไฟล์แทนที่จะเป็นโฟลเดอร์
Matt Zukowski

4
ใช้งานได้ใน ST3 หรือไม่ ความคิดเห็นดูเหมือนแตกต่างกันใน ST # ดูเหมือนว่า folder_exclude_patterns จะแยกออกจากแถบด้านข้าง แต่ฉันต้องการเพียงยกเว้นจาก goto และค้นหาในไฟล์
Michael

20
@ Michael มันเหมือนกันใน ST3 ทุกคนอื่น: มีวิธีแยกโฟลเดอร์โดยไม่ซ่อนหรือไม่ ฉันมักจะต้องการดูแหล่งที่มาของห้องสมุดบางแห่ง แต่ไม่ได้รับในผลการค้นหาทั่วไป
Parris

7
@Parris ฉันมีปัญหาเดียวกัน ต้องการแยกออกจากบอทการค้นหาจากแถบด้านข้าง
spieglio

148

สำหรับ Sublime Text 3: หากต้องการแยกออกจากผลลัพธ์การค้นหาและ GoTo โดยไม่ต้องลบออกจากแถบด้านข้างให้เปลี่ยนการ"binary_file_patterns"ตั้งค่า จับคู่ไฟล์และโฟลเดอร์

ตัวอย่างเช่นหากต้องการยกเว้นไฟล์ใน "dist" และ "node_modules" จากการทำดัชนี GoTo ให้เพิ่มไฟล์นี้ในไฟล์การตั้งค่าผู้ใช้ของคุณ:

"binary_file_patterns": ["dist/*", "node_modules/*", "*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"]

ฉันไม่สามารถหาวิธีใช้สิ่งนี้ในแต่ละโครงการ :( การตั้งค่าส่วนใหญ่สามารถย้ายไปยังproject.sublime-projectไฟล์ "โครงการ> บันทึกโครงการเป็น" บันทึกรากของโครงการของคุณและเพิ่ม"settings": {...}ไปยัง json ใน ไฟล์ที่สร้างขึ้น (จากซอร์สทำงานเป็น ST3 build 3095) แต่ไม่ทำงานกับ "binary_file_patterns"


3
มันจะทำงานอย่างที่ควรจะเป็นมันจะทำตัวเหมือนละเว้นไฟล์ถ้าคุณต้องการคิดแบบนั้น ขอบคุณมาก!
Peter_Fretter

6
แต่มันเป็นไปไม่ได้ที่จะเปลี่ยนแปลงโครงการนี้?
user2602152

หมายเหตุ: ทำงานใน Sublime 2.0.2 ด้วย +1 สำหรับคำอธิบายที่ดีและการแสดงที่folder/**ใช้ได้เช่นกัน :)
ลองจับในที่สุด

7
ดูเหมือนจะไม่ได้ผลสำหรับฉัน ฉันใช้ ST3 build 3095 ฉันไม่สามารถแก้ไขการตั้งค่า -> การตั้งค่า - ค่าเริ่มต้นดังนั้นฉันจึงเพิ่มตัวกรองไปยัง -> การตั้งค่า - ผู้ใช้ ฉันพยายามเพิ่ม"unused/"รวมถึง"*/unused/*"แต่ไม่ได้ผลสำหรับฉัน อย่างไรก็ตามฉันสามารถเพิ่มตัวกรองแยกเช่นนี้ใน-*/unused/*,-*/_sgbak/*การค้นหาของฉันซึ่งเป็นที่น่ารำคาญเพราะมันจำไม่ได้ดังนั้นคุณต้องเพิ่มมันในแต่ละครั้ง
Redtopia

@ user2602152 ฉันไม่สามารถทำงานได้ตามโครงการดูคำตอบที่อัปเดตสำหรับสิ่งที่ฉันพยายาม
Jay

98

คุณสามารถยกเว้นรูปแบบไฟล์และโฟลเดอร์บางส่วนจากโครงการของคุณโดยแก้ไขการตั้งค่าโครงการของคุณเช่น:

{
    "folders":
    [
        {
            "path": "src",
            "folder_exclude_patterns": ["backup"]
        },
        {
            "path": "docs",
            "file_exclude_patterns": ["*.css"]
        }
    ]
}

นี้ได้อธิบายไว้ในเอกสารโครงการ


7
ใช้งานได้กับ Sublime Text 3. ลบโฟลเดอร์ที่แยกออกจากแถบด้านข้าง แต่นั่นไม่ใช่ปัญหาสำหรับจุดประสงค์ของฉัน
Webdevotion

วิธีที่ดีที่สุดในการซ่อนจากการค้นหา แต่ไม่ใช่จากแถบด้านข้างต่อโครงการคืออะไร
Adriano Resende

@AdrianoResende เท่าที่ฉันรู้ว่าไม่มีวิธีที่ถูกต้องในการทำเช่นนี้ในแต่ละโครงการ เฉพาะจากการตั้งค่าระดับโลก
kleinfreund

85

นอกจากนี้คุณยังสามารถยกเว้นโฟลเดอร์ในบานหน้าต่างค้นหาทั้งหมดโดยใช้-*/foldername/*ไวยากรณ์ในWhereฟิลด์ - เช่น:

-*/node_modules/*

http://www.sublimetext.com/forum/viewtopic.php?f=2&t=3847&start=10


2
ใช่ สมบูรณ์ ฉันไม่ต้องการแยก node_modules ออกจากโปรเจ็กต์ทั้งหมดเพียงต้องการกรองออกจากการค้นหา ร็อกกิ้ง!
ส่วนตัว

ฉันไม่คิดว่ามันจะลงwhereสนาม
โนอาห์

ใช่มันไปที่นั่น
Daniel Flippance

3
โปรดทราบว่าใน Windows คุณจะต้องใช้เครื่องหมายทับซ้าย (/) เพื่อให้ไดเรกทอรียกเว้นแม้ว่าคุณจะใช้เครื่องหมายแบ็กสแลชเพื่อค้นหาไดเรกทอรีตัวอย่างในฟิลด์ Where:C:\Projects\SearchThis,-*/but/not/this/*
sp00n

จะแยกหลายโฟลเดอร์ได้อย่างไร?
Anon30 30

21

ในข้อความประเสริฐ 3 (BLD 3059 Windows) ฉันต้องการ จำกัด ฟังก์ชั่น "ค้นหาในโฟลเดอร์" สำหรับไฟล์ / โฟลเดอร์บางไฟล์และอาจเป็นไฟล์เดียว

การทำงานต่อไปนี้สำหรับฉันเนื้อหาของที่ไหน: กล่อง

/C/path/2/project/folder,*.c,*.h,-*/path/not/to/look/in,/C/path/2/specific/file/file.h

การนำไปเพิ่มเติมโดยไม่มีเส้นทางที่แน่นอนคุณสามารถรวมข้างต้นกับตำแหน่งที่ตั้งสัญลักษณ์ต่อไปนี้

<open folders>, <open files>, <current file>

<open folders>,*.c,*.h,-*/never_this_in_folder/*,<open files>

นี่ควรเป็นคำตอบที่ได้รับการยอมรับตอบคำถามและไม่ซ่อนโฟลเดอร์จาก UI ที่คุณต้องการดู
JohnC

ใช่. คำแนะนำอื่น ๆ ที่มีfolder_exclude_patternsและfile_exclude_patternsซ่อนเฉพาะจากแถบด้านข้างไม่ใช่จากการค้นหาหรือ GoTo น่าเศร้าที่ฉันไม่พบการตั้งค่าถาวรสำหรับการยกเว้นจากการค้นหาและ GoTo ดังนั้นคำตอบนี้จึงเป็นวิธีแก้ปัญหาที่ดีที่สุด
Magne

ที่จริงแล้วเพิ่งยืนยันว่ามันซ่อนจาก Goto แต่ก็ยังไม่ปิดบังในการค้นหาทั่วทั้งโครงการ
Magne

2
ฉันเพิ่งพบว่ามันแยกออกจากการค้นหาในไฟล์หากคุณมีตัวเลือกเหล่านี้ในไฟล์การตั้งค่าทั่วโลกของคุณ ("Sublime Text -> Preferences -> Setting - User -") มันไม่ทำงานกับไฟล์การตั้งค่าโครงการดังนั้นจึงต้องทำการกำหนดเนื่องจากมีการใช้การตั้งค่าเหล่านี้สำหรับทุกโครงการ / แอป
Magne

16

สำหรับ SublimeText 2 มันใช้งานได้ดีสำหรับฉัน

เมื่อคุณเลือกค้นหาในไฟล์ให้ระบุยกเว้นโฟลเดอร์ในตำแหน่งที่ป้อน

-bower_components/**/*, -dist/**/*, -node_modules/**/*, -tmp/**/*

ดังนั้นเครื่องหมายยัติภังค์ตามด้วยการแยกรูปแบบสำหรับโฟลเดอร์ที่คุณไม่ต้องการค้นหา

-folder1/**/*, -folder2/**/*

สิ่งนี้จะ จำกัด ขอบเขตการค้นหาของคุณ

ดูนี่


12

ฉันคิดว่าคำตอบเหล่านี้มากมายครอบคลุม Sublime Text ในเวอร์ชันที่ต่างกันนี่คือวิธีที่ฉันทำกับSublime Text 3บน Mac

  1. เปิดSublime Text> การตั้งค่า> การตั้งค่า -เมนูผู้ใช้
  2. แก้ไขfile_exclude_patternsและfolder_exclude_patternsค่าเพื่อละเว้นไฟล์และ / หรือโฟลเดอร์จากเครื่องมือค้นหา

ตัวอย่าง

"file_exclude_patterns":
[
    ".svn",
    ".git",
    ".hg",
    ".md",
    ".txt",
    ".DS_Store"
],
"folder_exclude_patterns":
[
    "node_modules",
    "bower_components",
    ".svn",
    ".git",
    ".hg",
    "CVS",
    "deprecated",
    "cache"
],

ภาพหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่


ฉันกำลังมองหาโซลูชันระดับโลก (ไม่ใช่โครงการต่อโครงการ) และพยายามแยกไฟล์จากโฟลเดอร์ฉันได้ทุกอย่างที่นี่! (ใช้ ST3 บน Linux Mint)
gfd

ขอบคุณสำหรับสิ่งนี้ - ฉันได้ทำงานกับ ST2 บน Ubuntu แล้ว ความคลาดเคลื่อนอย่างรวดเร็ว: ฉันต้องเพิ่ม * ลงใน "file_exclude_patterns"; เช่น ".txt" -> "* .txt" ฉันติดตามสิ่งนี้: lugolabs.com/articles/…
ximiki

วิธีนี้ใช้งานได้ แต่ยังแยกคุณไม่ให้สามารถเปิดไฟล์ / โฟลเดอร์ในประเสริฐได้เช่นกัน สมมติว่าคุณต้องการแยกออกnode_modulesเมื่อทำการค้นหาทั้งโฟลเดอร์ อย่างไรก็ตามถ้าคุณกำลังดีบักบางอย่างและมีปัญหากับการพึ่งพามันจะดีถ้ามีตัวเลือกในการเปิดไฟล์ใน node_modules
Jeremy

4

คุณยังสามารถแยกโฟลเดอร์ออกจากการค้นหาของคุณผ่านช่องที่ไหน:

ที่ไหน: <open folders>,-*/node_modules/*.*,-*/build/*.*

ดังนั้นในตัวอย่างของฉันด้านบน:

  1. ฉันค้นหาทุกโฟลเดอร์ที่เปิดอยู่
  2. ฉันไม่รวมโฟลเดอร์ชื่อ "node_modules" ซึ่งเป็นโฟลเดอร์ระดับบนสุดภายใต้ไดเรกทอรีรากสำหรับโครงการของฉัน
  3. ฉันไม่รวมโฟลเดอร์ชื่อ "build" ซึ่งเป็นโฟลเดอร์ระดับบนสุดภายใต้ไดเรกทอรีรากสำหรับโครงการของฉัน

สิ่งนี้ใช้ได้กับฉันใน Sublime Text 3 และโฟลเดอร์ยังคงแสดงในแถบด้านข้าง นี่เป็นการยกเว้นเพียงการค้นหาผ่านอินพุต (ไม่มีผลต่อการสร้างดัชนีเบื้องหลัง)



2

สำหรับสองสามครั้งที่คุณจำเป็นต้อง จำกัด การค้นหา (และแทนที่) ไปยังไดเรกทอรีปัจจุบันเท่านั้นให้ทำดังนี้

c/Path/2/Project,-c/Path/2/Project/*/*

บิตที่สำคัญอยู่/*/*ในเส้นทางที่ไม่รวมรูปแบบ ใช้ Sublime Text 3 สร้าง 3083 บน Windows 7 64- บิต


กุญแจสำคัญสำหรับสิ่งนั้นคืออะไร? คุณวางไว้ที่ไหน (การตั้งค่าประเสริฐ)
Leon Gaban

@LeonGaban เคล็ดลับนี้เป็นรายการ 'ตำแหน่ง' สำหรับแผงโต้ตอบการค้นหาในไฟล์ ปุ่มลัดเริ่มต้นคือ CTRL + SHIFT + F
MEngelby777

2

\/ทราบเพียงว่าถ้าคุณต้องการที่จะเพิ่มโฟลเดอร์ย่อยของโฟลเดอร์โครงการของคุณคุณต้องที่จะเข้าร่วมกับโฟลเดอร์ ใช้ตัวอย่างเดียวกันของ @ DavidPärsson:

    {
        "folders":
        [
            {
                "path": "src",
                "folder_exclude_patterns": ["backup\/src\/log"]
            }
        ]
    }

0

ฉันคิดว่าวิธีที่ง่ายที่สุดเพื่อให้แน่ใจว่าไฟล์และโฟลเดอร์ดังกล่าวไม่รวมอยู่ในแต่ละโครงการคือเพียงเพิ่มรหัสต่อไปนี้ในการตั้งค่าผู้ใช้ Sublime (เพิ่มและแก้ไขใน~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsไฟล์ของคุณ)

{
    // Remove certain files permanently from Sublime via Preferences.sublime-settings.
    "folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]   
}

ส่วนสำคัญ: https://gist.github.com/ahmadawais/690a816ca158067708ad4dbe17822841

หรือคุณสามารถตรวจสอบไฟล์การตั้งค่าของฉันที่นี่ https://github.com/ahmadawais/dotFiles/blob/master/SublimeText/User/Preferences.sublime-settings#L80-L81

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.