Giới hạn phạm vi tìm kiếm tệp trong văn bản cao siêu 2


238

Trong Sublime Text, tôi thường sử dụng Cmd+ P/ Ctrl+ Pđể tìm kiếm và nhảy giữa các tệp.

Thông thường, nó sẽ chọn các tệp tạm thời hoặc được lưu trong bộ nhớ cache như .scssc hoặc những thứ trong thư mục / tmp.

Có cách nào để tôi có thể giới hạn những gì được hiển thị trong kết quả tìm kiếm không?

Câu trả lời:


319

Thêm và chỉnh sửa này trong ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingstập tin của bạn .

// 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
Việc binary_file_patternsxóa các tệp khỏi Goto Bất cứ điều gì, nhưng không xóa khỏi Tìm trong tệp, vì nó nên dựa trên nhận xét. Bất cứ ai khác trải nghiệm điều này? Biết cách khắc phục? Tôi đang dùng Ubuntu, bản dựng 2221; điều tương tự cũng xảy ra trên máy Mac của tôi (không biết số bản dựng).
Tyler Collier

51
Cũng có "file_exclude_patterns": ["*.log"]nếu bạn muốn bỏ qua một số tập tin hơn là các thư mục.
Matt Zukowski

4
Cái này có hoạt động trong ST3 không? các nhận xét có vẻ khác nhau trong ST #, có vẻ như thư mục_exclude_potypes sẽ loại trừ khỏi thanh bên, nhưng tôi chỉ muốn loại trừ khỏi goto và tìm trong các tệp
Michael

20
@Michael nó giống nhau trong ST3. Mọi người khác: có cách nào để loại trừ thư mục mà không ẩn nó không? Tôi thường muốn xem nguồn của một số thư viện nhưng không có được nó trong kết quả tìm kiếm thông thường của tôi.
Parris

7
@Parris Mình cũng có vấn đề tương tự. Muốn loại trừ khỏi bot tìm kiếm từ thanh bên.
spieglio

148

Đối với Văn bản cao siêu 3: Để loại trừ khỏi kết quả tìm kiếm và GoTo, mà không xóa khỏi thanh bên, hãy thay đổi "binary_file_patterns"cài đặt. Khớp các tập tin VÀ thư mục.

Ví dụ: để loại trừ các tệp trong "dist" và "node_modules" khỏi chỉ mục GoTo, hãy thêm tệp này vào tệp Cài đặt người dùng của bạn:

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

Tôi không thể tìm ra cách thực hiện điều này trên cơ sở từng dự án :(. Hầu hết các cài đặt có thể được chuyển sang một project.sublime-projecttệp. "Project> Save Project As", lưu nó vào gốc của dự án của bạn và thêm "settings": {...}vào json trong tệp được tạo. (từ nguồn , hoạt động kể từ ST3 build 3095). Nhưng không hoạt động với "binary_file_potypes".


3
Điều này thực hiện chính xác những gì nó cần, nó hoạt động như một tập tin bỏ qua nếu bạn muốn nghĩ theo cách đó. Cảm ơn rất nhiều!
Peter_Fretter

6
Nhưng nó không thể thay đổi điều này cho mỗi dự án?
user2602152

Lưu ý: cũng hoạt động trong Sublime 2.0.2. +1 cho mô tả tốt của bạn và hiển thị rằng folder/**cũng hoạt động. :)
thử-bắt-cuối cùng

7
Điều này dường như không làm việc cho tôi. Tôi đang sử dụng ST3 build 3095. Tôi không thể chỉnh sửa Tùy chọn -> Cài đặt - Mặc định, vì vậy tôi đã thêm bộ lọc vào -> Cài đặt - Người dùng. Tôi đã cố gắng thêm "unused/"cũng như "*/unused/*"nhưng không làm việc cho tôi. Tuy nhiên, tôi đã có thể thêm một bộ lọc loại trừ như thế này: -*/unused/*,-*/_sgbak/*vào tìm kiếm của tôi, điều này gây khó chịu vì nó không nhớ, vì vậy bạn phải thêm nó mỗi lần.
Redtopia

@ user2602152 Tôi không thể làm cho nó hoạt động theo từng dự án, xem câu trả lời được cập nhật cho những gì tôi đã thử
Jay

98

Bạn có thể loại trừ các mẫu và thư mục tệp nhất định khỏi dự án của mình bằng cách sửa đổi cài đặt dự án của bạn như sau:

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

Điều này được mô tả trong tài liệu dự án .


7
Hoạt động cho văn bản tuyệt vời 3. Không xóa thư mục loại trừ khỏi thanh bên, nhưng đó không phải là vấn đề cho mục đích của tôi.
Webdevotion

Cách tốt nhất để ẩn khỏi tìm kiếm nhưng không phải từ thanh bên, cho mỗi dự án là gì?
Adriano Resende

@AdrianoResende Theo tôi biết, không có cách nào chính xác để làm điều này trên cơ sở từng dự án. Chỉ từ các thiết lập toàn cầu.
kleinfreund

85

Bạn cũng có thể loại trừ các thư mục trong ngăn Tìm tất cả bằng cách sử dụng -*/foldername/*cú pháp trong Wheretrường - ví dụ:

-*/node_modules/*

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


2
Đúng! Hoàn hảo. Tôi không muốn loại trừ node_modules khỏi dự án hoàn toàn, chỉ muốn lọc nó ra khỏi tìm kiếm. Rockin!
nhân

Tôi không nghĩ rằng điều này đi trong wherelĩnh vực này.

Đúng, nó đi đến đó.
Daniel Flippance

3
Lưu ý rằng trong Windows, bạn cũng sẽ phải sử dụng dấu gạch chéo (/) cho thư mục để loại trừ, ngay cả khi bạn sử dụng dấu gạch chéo ngược cho thư mục để tìm kiếm. Ví dụ trong trường Where:C:\Projects\SearchThis,-*/but/not/this/*
sp00n

Làm thế nào để loại trừ nhiều thư mục?
Anon30

21

Trong văn bản cao siêu 3 (BLD 3059 Windows) tôi cần hạn chế chức năng "tìm trong thư mục" đối với các tệp / thư mục nhất định và có thể là một tệp duy nhất,

Các công việc sau đây cho tôi Nội dung của nơi: hộp

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

Đưa nó đi xa hơn mà không có đường dẫn tuyệt đối, bạn có thể kết hợp ở trên với các vị trí tượng trưng sau đây

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

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

Đây phải là câu trả lời được chấp nhận, nó đáp ứng câu hỏi và không ẩn các thư mục khỏi UI mà bạn muốn xem.
JohnC

Đúng. Các đề xuất khác có folder_exclude_patternsfile_exclude_patternschỉ ẩn nó khỏi thanh bên, chứ không phải từ tìm kiếm hoặc GoTo. Đáng buồn thay, tôi không tìm thấy bất kỳ cài đặt cố định nào để loại trừ khỏi tìm kiếm và GoTo. Vì vậy, câu trả lời này hiện là cách giải quyết tốt nhất.
Magne

Trên thực tế chỉ cần xác minh rằng nó không ẩn nó khỏi Goto. Nhưng nó vẫn không che giấu nó trong tìm kiếm rộng của dự án.
Magne

2
Tôi chỉ phát hiện ra rằng nó loại trừ khỏi tìm trong tệp nếu bạn bao gồm các tùy chọn này trong tệp cài đặt toàn cầu của bạn ("Văn bản tuyệt vời -> Tùy chọn -> Cài đặt - Người dùng"). Nó không hoạt động với tệp cài đặt dự án, do đó người ta phải thực hiện với việc áp dụng các cài đặt này cho mọi dự án / ứng dụng.
Magne

16

Đối với SublimeText 2, điều này rất tốt cho tôi.

Khi bạn chọn Tìm trong tệp , chỉ định loại trừ các thư mục trong mục Nhập vào;

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

Vì vậy, một dấu gạch nối theo sau là loại trừ mẫu cho các thư mục bạn không muốn tìm kiếm.

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

Điều này sẽ giới hạn phạm vi tìm kiếm của bạn.

Xem cái này


12

Tôi nghĩ rằng nhiều câu trả lời trong số này bao gồm một vài phiên bản khác nhau của Sublime Text, đây là cách tôi thực hiện điều này với Sublime Text 3 trên máy Mac.

  1. Mở Văn bản cao siêu> Tùy chọn> Cài đặt - Menu người dùng
  2. Chỉnh sửa file_exclude_patternsfolder_exclude_patternscác giá trị để bỏ qua các tệp và / hoặc thư mục từ công cụ Tìm kiếm

Thí dụ

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

Ảnh chụp màn hình

nhập mô tả hình ảnh ở đây


Tôi đang tìm kiếm một giải pháp toàn cầu (không phải là một dự án) và cố gắng phân biệt tệp với các thư mục, tôi đã có mọi thứ ở đây! (Sử dụng ST3 trên Linux Mint)
gfd

Cảm ơn vì điều này - tôi đã làm cho nó hoạt động với ST2 trên Ubuntu. Sự khác biệt nhanh chóng: Tôi đã phải thêm * vào "file_exclude_potypes"; ví dụ: ".txt" -> "* .txt". Tôi đã làm theo điều này: lugolabs.com/articles/ đá
ximiki

Điều này hoạt động, nhưng cũng loại trừ bạn khỏi khả năng mở tệp / thư mục một cách tuyệt vời. Giả sử bạn muốn luôn loại trừ node_moduleskhi thực hiện tìm thư mục rộng. Tuy nhiên, nếu bạn đang gỡ lỗi một cái gì đó và có vấn đề với sự phụ thuộc, sẽ rất tốt nếu có tùy chọn để mở tệp trong node_modules
Jeremy

4

Bạn cũng có thể loại trừ các thư mục khỏi tìm kiếm của mình thông qua trường Where:

Ở đâu: <open folders>,-*/node_modules/*.*,-*/build/*.*

Vì vậy, trong ví dụ của tôi ở trên:

  1. Tôi đang tìm kiếm thông qua tất cả các thư mục mở.
  2. Tôi đang loại trừ thư mục có tên "node_modules" là thư mục cấp cao nhất ngay dưới thư mục gốc cho dự án của tôi.
  3. Tôi đang loại trừ thư mục có tên "build" là thư mục cấp cao nhất ngay dưới thư mục gốc cho dự án của tôi.

Điều này hoạt động với tôi trong Sublime Text 3 và các thư mục tiếp tục hiển thị trong SideBar. Đây là loại trừ chỉ tìm kiếm thông qua đầu vào (không ảnh hưởng đến bất kỳ chỉ mục phía sau hậu trường nào).



2

Trong vài lần bạn cần giới hạn chỉ tìm (và thay thế) trong thư mục hiện tại, hãy làm điều này:

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

Các bit quan trọng là /*/*trong mẫu loại trừ đường dẫn. Sử dụng Sublime Text 3 build 3083 trên Windows 7 64 bit.


Chìa khóa cho điều đó là gì? Bạn đặt nó ở đâu? (prefs siêu phàm)
Leon Gaban

@LeonGaban Mẹo này là mục nhập 'Trường hợp' cho bảng tương tác Tìm trong tệp. Liên kết phím mặc định là CTRL + SHIFT + F.
MEngelby777

2

Chỉ cần lưu ý rằng nếu bạn muốn thêm một thư mục con của thư mục dự án của bạn, bạn phải tham gia các thư mục với \/. Sử dụng cùng ví dụ về @ DavidPärsson:

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

0

Tôi nghĩ cách dễ nhất để đảm bảo các tệp và thư mục như vậy được loại trừ trên mỗi dự án là chỉ cần thêm mã sau vào Cài đặt người dùng tuyệt vời (Thêm và chỉnh sửa ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingstệp này trong tệp của bạn .)

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

Chuyên gia: https://gist.github.com/ahmadawais/690a816ca158067708ad4dbe17822841

HOẶC bạn có thể kiểm tra tệp tùy chọn của tôi tại đây https://github.com/ahmadawais/dotFiles/blob/master/SublimeText/User/Preferences.sublime-sinstall#L80-L81

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.