Ограничить область поиска файлов в 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.