Ограничить область поиска файлов в 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Удаляет файлы из Гото Что - нибудь, но не из Найти в файлах, как это должно на основе комментария. Кто-нибудь еще испытывает это? Знаете, как это исправить? Я на Ubuntu, сборка 2221; То же самое происходит на моем Mac (не знаю номер сборки).
— Тайлер Кольер

51
Там также, "file_exclude_patterns": ["*.log"]если вы хотите игнорировать определенные файлы, а не папки.
— Мэтт Жуковски

4
Это работает в ST3? комментарии выглядят по-разному в ST #, похоже, что folder_exclude_patterns исключит из боковой панели, но я только хочу, чтобы это исключалось из goto и находилось в файлах
— Майкл

20
@ Майкл, то же самое в ST3. Все остальные: есть ли способ исключить папку, не скрывая ее? Я часто хочу посмотреть на источник какой-то библиотеки, но не могу получить его в моих типичных результатах поиска.
— Пэррис

7
@Parris У меня такая же проблема. Хотел бы исключить из поиска бот-гайку с боковой панели.
— Spieglio

148

Для возвышенного текста 3: чтобы исключить результаты поиска и перехода, не удаляя их с боковой панели, измените "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
Работает для возвышенного текста 3. Удаляет ли исключенную папку из боковой панели, но это не проблема для моих целей.
— Webdevotion

Какой лучший способ скрыть от поиска, но не от боковой панели, для проекта?
— Адриано Резенди

@AdrianoResende Насколько я знаю, нет правильного способа сделать это для каждого проекта. Только из глобальных настроек.
— kleinfreund

85

Вы также можете исключить папки на панели «Найти все», используя -*/foldername/*синтаксис в Whereполе, например:

-*/node_modules/*

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


2
Да! Отлично. Я не хочу исключать node_modules из проекта, просто хотел отфильтровать его из поиска. Rockin!
— Капер

Я не думаю, что это идет в 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. Таким образом, этот ответ в настоящее время лучший обходной путь.
— Магн

На самом деле только что проверил, что он скрывает это от Goto. Но это все еще не скрывает это в широком поиске проекта.
— Магне

2
Я только что обнаружил, что он исключает из поиска в файлах, если вы включите эти параметры в свой файл глобальных настроек («Sublime Text -> Preferences -> Setting - User»). Он не работает с файлом настроек проекта, поэтому необходимо использовать эти настройки для каждого проекта / приложения.
— Магн

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значение игнорировать файлы и / или папки из Find инструмента

пример

"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 build 3083 на 64-битной Windows 7.


Какой ключ для этого? Где вы это разместите? (возвышенные префы)
— Леон Габан

@LeonGaban Этот совет является записью «Где» для интерактивной панели Find-in-Files. Связывание клавиш по умолчанию - CTRL + SHIFT + F.
— MEngelby777

2

Просто отметьте, что если вы хотите добавить подпапку папки вашего проекта, вы должны присоединиться к папкам \/. Используя тот же пример @ DavidPärsson:

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

0

Я думаю, что самый простой способ убедиться, что такие файлы и папки исключены в каждом проекте, это просто добавить следующий код в Sublime User Settings (добавьте и отредактируйте его в своем ~/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.