Выберите папки, которые будут игнорироваться при поиске в VS Code

364

Прямо сейчас, когда я использую + Oдля поиска файлов, нечеткое сопоставление, по-видимому, работает со всеми файлами в текущем проекте. К сожалению, сюда входит ряд файлов из каталогов build и vendor. Так, например, если я хочу найти все файлы JavaScript и сделать + Oи ввести .js, результаты файла и символа включают в себя около 1500 совпадений, и все они, кроме двух, являются полным шумом.

Есть ли способ указать определенные каталоги, которые будут игнорироваться для целей поиска?

Дж. Абрахамсон
источник
1
Хм, подождите минуту, в 2019 году ⌘O означает «Открыть файл ...», и я сомневаюсь, что VS Code имеет большой контроль над любыми (ОС-ориентированными) средствами поиска, которые вы можете там увидеть. Это может быть в состоянии фильтровать файлы только определенные расширения?
SamB

Ответы:

689

Эти предпочтения, похоже, изменились с момента ответа @ alex-dima.

Изменение настроек

В меню выберите: Файл -> Настройки -> Настройки -> Настройки пользователя / рабочего пространства. Фильтровать настройки по умолчанию для search.

Вы можете изменить search.excludeнастройку (скопировать из настроек по умолчанию в настройки пользователя или рабочего пространства). Это будет применяться только к поискам. Обратите внимание, что настройки из files.excludeбудут применены автоматически.

Если настройки не работают :

  1. Убедитесь, что вы не отключили исключение из поиска. В области поиска разверните поле ввода «файлы для исключения» и убедитесь, что выбран значок шестеренки.

  2. Вам также может потребоваться очистить историю редактора (см. Https://github.com/Microsoft/vscode/issues/6502 ).

Пример настроек

Например, я разрабатываю приложение EmberJS, которое сохраняет тысячи файлов в каталоге tmp .

Если вы выберете WORKSPACE SETTINGSсправа от поля поиска, исключение поиска будет применяться только к этому конкретному проекту. И соответствующая .vscodeпапка будет добавлена ​​в корневую папку, содержащую settings.json.

Это мой пример настроек:

{
    // ...
    "search.exclude": {
        "**/.git": true,
        "**/node_modules": true,
        "**/bower_components": true,
        "**/tmp": true
    },
    // ...
}

Примечание . Включите ** в начале любого исключения из поиска, чтобы охватить критерий поиска для любых папок и подпапок.

Изображение поиска до обновления настроек :

Перед обновлением настроек результаты поиска беспорядок.

Изображение поиска до обновления настроек

Изображение поиска после обновления настроек:

После обновления настроек результаты поиска именно то, что я хочу.

Изображение поиска после обновления настроек.

Дыродел
источник
16
это перестало работать для меня в последней версии ... есть идеи, почему?
NSjonas
3
Есть ли способ применить это к функции «Быстрое открытие»? Ctrl + P на ПК и Cmd + P на Mac. Когда я ищу файлы с помощью этой функции, они все равно появляются.
glandrum101
7
Обязательно очистите историю вашего редактора, чтобы это работало. github.com/Microsoft/vscode/issues/6502
Джейди Соланки,
5
Мне пришлось запустить команду «очистить историю редактора» (см. Здесь: github.com/Microsoft/vscode/issues/6502#issuecomment-273697138 ) и перезапустить VS Code, чтобы это работало на меня.
Исаак Грегсон
19
Обратите внимание, что при поиске файлов можно отключить исключение из поиска. В области поиска разверните поле ввода «файлы для исключения» и убедитесь, что выбран значок шестеренки. Это обеспечит соблюдение настроек исключения из поиска.
Роберт Уодделл
167

Убедитесь, что установлен флажок «Использовать параметры исключения и игнорировать файлы» введите описание изображения здесь

atreeon
источник
5
Как исключить несколько папок?
Wouter Vanherck
23
@WouterVanherck вы просто добавили бы запятую для разделения каждого файла или папки, которую вы хотите исключить. Пример:./src/public/,src/components/
Sgnl
44

Обновление апреля 2018

Вы можете сделать это в разделе поиска vscode, предварительно зафиксировав восклицательный знак в каждой папке или файле, который вы хотите исключить.

введите описание изображения здесь

Кристофер Григг
источник
Точно! идеально
Taffarel Xavier
25

Этот ответ устарел

Если это папки, которые вы хотите игнорировать в определенной рабочей области, вы можете перейти к:

AppMenu > Preferences > Workspace Settings

В противном случае, если вы хотите, чтобы эти папки игнорировались во всех ваших рабочих пространствах, перейдите по адресу:

AppMenu > Preferences > User Settings

и добавьте следующее в вашу конфигурацию:

//-------- Search configuration --------

// The folders to exclude when doing a full text search in the workspace.
"search.excludeFolders": [
    ".git",
    "node_modules",
    "bower_components",
    "path/to/other/folder/to/exclude"
],

Разница между рабочим пространством и пользовательскими настройками объясняется в документации по настройке

Алекс Дима
источник
9
Если он устарел, пожалуйста, либо обновите его, либо удалите, чтобы избежать путаницы и возможных отрицательных голосов!
user3413723
1
seroiusly, внесите изменения. Приведенный выше ответ работает в последней версии VS Code на macOS. так что отказывайтесь от вашего BS для голосов и внесите полезный вклад в фактический ответ.
Heisian
18

Если я правильно понимаю, вы хотите исключить файлы из нечеткого поиска vscode. Если это так, то я предполагаю, что приведенные выше ответы относятся к более старым версиям vscode. Что сработало для меня, это добавить:

"files.exclude": {
    "**/directory-you-want-to-exclude": true,
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true
}

к моему settings.json. Этот файл можно открыть с помощью File> Preferences>Settings

Нахуш Фарканде
источник
15

Я идиот, поэтому мне потребовалось некоторое время, чтобы понять это, но убедитесь, что на значке Gear в глобальном поиске нажимают, чтобы можно было применить ваши настройки.

Visual Studio Code Gear значок при поиске нажал

Штаны
источник
1
Вы не идиот, потому что это ответ, который исправил это для меня, я, должно быть, случайно нажал на этот значок в прошлом, поэтому не очевидно, что этот маленький значок управляет этим, и он едва заметен, когда он включен или отключен
vesperknight
Вы, конечно, не идиот за то, что упустили этот замечательный кусок UX, но можете ли вы сказать мне, как ваш отличается от этого более раннего ответа , если он - ну, кроме этого ответа в темном режиме? ; ^ D
Ерфин
3

Я хотел полностью исключить одну из папок рабочего пространства, но обнаружил, что это сложно, поскольку независимо от шаблонов исключения всегда выполняется поиск в каждой из папок рабочего пространства.

В конце концов, решением было добавить **в настройки папок шаблоны исключений из поиска.

введите описание изображения здесь

LStarky
источник
2

После настройки параметров search.exclude и file.exclude, упомянутых в предыдущих ответах, выполните команду «Очистить историю редактора» (для этого используйте палитру команд - CTRL + SHIFT + P).

Только после этого исключенные файлы не будут отображаться в вашем меню быстрого открытия.

Обновление: Вы также можете запустить команду «Очистить историю команд». Я забыл об этом.

Бруно Гименес
источник
1

Забудьте выше для vscode, исключите шаблон поиска, попробуйте ниже шаблон, который работает для любой папки в vscode последней версии!

! ../../../ локали / *

например, я искал, как показано ниже vscode пример clude settings

файлы для включения: * .js

исключаемые файлы: ** / node_modules,! ../../../ locales / ,! ../../../ theme / ,! ../../ admin / client / *

Хамит ЙИЛДИРИМ
источник
1

Если у вас есть несколько папок в вашей рабочей области, настройте search.excludeна каждой папке. Рядом с раскрывающимся списком WORKSPACE SETTINGS.

Вкладка «Настройки папки»

Майкл Дэвид Гизон
источник
0

Краткий ответ - разделить запятыми папки, которые вы хотите игнорировать в «исключаемых файлах».

  1. Начать поиск в рабочей области: CTRL + SHIFT + f
  2. Расширьте глобальный поиск с помощью трехточечной кнопки
  3. Введите поисковый запрос
  4. Как пример, в файлах для исключения в поле -input пишут babel,concatдля исключения папки «babel» и папки «concat» при поиске (убедитесь, что кнопка исключения включена).
  5. Нажмите ввод, чтобы получить результаты.
domih
источник
0

Исключить все из подпапок работает следующим образом (версия 2019)

включают

./db

исключать

./db/*
Вальтер А. Яблоновский
источник
-1

Создайте файл с .gitignore и укажите имя папки или файла, которое вы хотите игнорировать.

игнорировать все, что находится в папке node_modules

echo node_modules/ > .gitignore 
reza.cse08
источник
3
вопрос не о
мерзавце
-1

Я хотел найти термин «Stripe» во всех файлах, кроме тех, которые находятся внутри плагина (папка «plugin») или в файлах, оканчивающихся на «.bak», «.bak2» или «.log» (это внутри wp - структура папки содержимого установки WordPress).

Я просто хотел сделать этот поиск один раз и очень быстро, поэтому я не хотел изменять настройки поиска в моей среде. Вот как я это сделал (обратите внимание на двойные звездочки для папки):

  • Термин поиска: полоса
  • Включить файлы: {пусто}
  • Исключить файлы: * .bak *, * .log, ** / plugins / **

Вот как это выглядело

Адам
источник