Обмежити область пошуку файлів у піднесеному тексті 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Видаляє файли з Гото Що - небудь, але не з Знайти в файлах, як це повинно на основі коментаря. Хтось ще відчував це? Знаєте, як це виправити? Я на Ubuntu, build 2221; те ж саме відбувається і на моєму Mac (не знаю номер збірки).
Тайлер Коллер

51
Є також, "file_exclude_patterns": ["*.log"]якщо ви хочете ігнорувати певні файли, а не папки.
Метт Зуковський

4
Чи працює це в ST3? коментарі здаються різними в ST #, схоже, папка_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файл. "Project> Save Project As", збережіть його в корені свого проекту та додайте "settings": {...}до json у згенерований файл (з джерела , працює з ST3 build 3095), але не працює з "binary_file_patterns".


3
Це робить саме те, що слід, він поводиться як файл ігнорування, якщо ви хочете думати таким чином. Дуже дякую!
Peter_Fretter

6
Але це неможливо змінити для кожного проекту?
user2602152

Примітка: також працює в Sublime 2.0.2. +1 за ваш хороший опис та показ того, що folder/**теж працює. :)
пробуй-нарешті

7
Це, здається, не працює для мене. Я використовую ST3 build 3095. Я не можу редагувати налаштування -> Settings - Default, тому я додав фільтр до -> Settings - User. Я намагався додавати "unused/", а також, "*/unused/*"але ні для мене це не працює. Однак мені вдалося додати фільтр виключення на зразок цього: -*/unused/*,-*/_sgbak/*до мого пошуку, який дратує, оскільки він не пам'ятає, тому доводиться додавати його щоразу.
Редтопія

@ user2602152 Я не міг змусити його працювати за проектом, дивіться оновлену відповідь на те, що я спробував
Jay

98

Ви можете виключити певні шаблони файлів і папок зі свого проекту, змінивши налаштування свого проекту так:

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

Це описано в проектній документації .


7
Працює для Sublime Text 3. Видаляє виключену папку з бічної панелі, але це не є проблемою для моїх цілей.
Webdevotion

Який найкращий спосіб сховатися від пошуку, але не від бічної панелі, за проектом?
Адріано Ресенде

@AdrianoResende Наскільки я знаю, немає правильного способу зробити це на основі кожного проекту. Тільки з глобальних налаштувань.
kleinfreund

85

Ви також можете виключити папки на панелі «Знайти все», використовуючи -*/foldername/*синтаксис у Whereполі - наприклад:

-*/node_modules/*

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


2
Так! Ідеально. Я не хочу взагалі виключати модулі node_module з проекту, просто хотів відфільтрувати його з пошуку. Рокіне!
Приватник

Я не думаю, що це іде на whereмісцях.
Ной

Так, це дійсно туди.
Даніель Фліппанс

3
Зверніть увагу, що в Windows вам також доведеться використовувати косою косою рисою (/) для каталогу, щоб виключити, навіть якщо ви використовуєте зворотні косої риски для каталогу для пошуку. Приклад у полі Де:C:\Projects\SearchThis,-*/but/not/this/*
sp00n

як виключити кілька папок?
Anon30

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>

Це має бути прийнята відповідь, вона відповідає на запитання і не приховує папки з інтерфейсу користувача, який ви хочете переглянути.
JohnC

Так. Інші пропозиції з folder_exclude_patternsта file_exclude_patternsприховують його лише від бічної панелі, а не від пошуку чи GoTo. На жаль, я не знайшов жодного постійного налаштування для виключення з пошуку та GoTo. Тож ця відповідь наразі є найкращим вирішенням.
Магне

Насправді просто перевірено, що це приховує від Гото. Але це все ще не приховує цього в проекті широкого пошуку.
Магне

2
Щойно я з'ясував, що це виключає з пошуку у файлах, якщо ви включите ці параметри у файл глобальних налаштувань ("Текст піднесеного -> Налаштування -> Налаштування - Користувач"). Він не працює з файлом налаштувань проекту, тому потрібно встановити те, що ці налаштування застосовуються для кожного проекту / програми.
Магне

16

Для SublimeText 2 це для мене чудово працює.

Коли ви вибираєте Знайти у файлах , укажіть виключення папок у вкладці Де ;

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

Отже, дефіс, за яким слід виключити шаблон для папок, у яких ви не хочете шукати.

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

Це обмежить область пошуку.

Дивіться це


12

Я думаю, що багато з цих відповідей охоплюють кілька різних версій Sublime Text, ось як це зробити з Sublime Text 3 на Mac.

  1. Відкрийте піднесений текст> Налаштування> Установки - Користувач меню
  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
Джеремі

4

Ви також можете виключити папки зі свого пошуку через поле Де:

Де: <open folders>,-*/node_modules/*.*,-*/build/*.*

Отже, у моєму прикладі вище:

  1. Я шукаю всі відкриті папки.
  2. Я виключаю папку під назвою "node_modules", яка є папкою верхнього рівня прямо під кореневою каталогом для мого проекту.
  3. Я виключаю папку під назвою "build", яка є папкою верхнього рівня прямо під кореневою каталогом для мого проекту.

Це працює для мене в Sublime Text 3, і папки продовжують відображатися в SideBar. Це виключення лише для пошуку за допомогою введення (не впливає на індексацію поза кадром).



2

За ці кілька разів вам потрібно обмежити знаходження (та заміну) лише поточним каталогом, зробіть це:

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

Важливий біт полягає /*/*в шаблоні виключення шляху. Використання Sublime Text 3 build 3083 на Windows 7 64-біт.


Що є ключовим для цього? Де його розмістити? (sublime prefs)
Леон Габан

@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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.