Limiter la portée de la recherche de fichiers dans Sublime Text 2

238

Dans Sublime Text, j'utilise souvent Cmd+ P/ Ctrl+ Ppour rechercher et passer d'un fichier à l'autre.

Souvent, il récupérait des fichiers temporaires ou mis en cache comme .scssc ou des choses dans le dossier / tmp.

Existe-t-il un moyen de limiter ce qui est affiché dans le résultat de la recherche?

rickypai
la source

Réponses:

319

Ajoutez et modifiez ceci dans votre ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsfichier.

// 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"],
AGS
la source
12
Le binary_file_patternssupprime les fichiers de Goto Anything, mais pas de Find in Files, comme il se doit en fonction du commentaire. Quelqu'un d'autre vit ça? Vous savez comment le réparer? Je suis sur Ubuntu, build 2221; la même chose se produit sur mon Mac (je ne sais pas le numéro de build).
Tyler Collier
51
Il y a aussi "file_exclude_patterns": ["*.log"]si vous voulez ignorer certains fichiers plutôt que des dossiers.
Matt Zukowski
4
Est-ce que cela fonctionne dans ST3? les commentaires semblent différents dans ST #, il semble que folder_exclude_patterns sera exclu de la barre latérale, mais je veux seulement qu'il soit exclu de goto et trouve dans les fichiers
Michael
20
@Michael c'est la même chose dans ST3. Tout le monde: existe-t-il un moyen d'exclure le dossier sans le cacher? Je veux souvent regarder la source d'une bibliothèque mais ne pas l'obtenir dans mes résultats de recherche typiques.
Parris
7
@Parris J'ai le même problème. Je voudrais exclure de la recherche l'écrou de bot de la barre latérale.
spieglio
148

Pour Sublime Text 3: pour exclure de la recherche et des résultats GoTo, sans supprimer de la barre latérale, modifiez le "binary_file_patterns"paramètre. Correspond aux fichiers ET aux dossiers.

Par exemple, pour exclure des fichiers dans "dist" et "node_modules" de l'indexation GoTo, ajoutez ceci à votre fichier de paramètres utilisateur:

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

Je ne peux pas comprendre comment implémenter cela sur une base par projet :(. La plupart des paramètres peuvent être déplacés vers un project.sublime-projectfichier. "Projet> Enregistrer le projet sous", enregistrez-le à la racine de votre projet et ajoutez-le "settings": {...}au json dans le fichier généré (à partir de la source , fonctionne à partir de la version ST3 3095) mais ne fonctionne pas avec "binary_file_patterns".

Geai
la source
3
Cela fait exactement ce qu'il devrait, il se comporte comme un fichier ignoré si vous voulez penser de cette façon. Merci beaucoup!
Peter_Fretter
6
Mais il n'est pas possible de changer cela par projet?
user2602152
Remarque: fonctionne également dans Sublime 2.0.2. +1 pour votre bonne description et pour montrer que cela folder/**fonctionne aussi. :)
try-catch-finally
7
Cela ne semble pas fonctionner pour moi. J'utilise ST3 build 3095. Je ne peux pas modifier les Préférences -> Paramètres - Par défaut, j'ai donc ajouté le filtre à -> Paramètres - Utilisateur. J'ai essayé d'ajouter "unused/"aussi bien "*/unused/*"mais aucun des deux ne fonctionne pour moi. Cependant, j'ai pu ajouter un filtre d'exclusion comme celui-ci: -*/unused/*,-*/_sgbak/*à ma recherche, ce qui est ennuyeux car il ne se souvient pas, vous devez donc l'ajouter à chaque fois.
Redtopia
@ user2602152 Je n'ai pas pu le faire fonctionner par projet, voir la réponse mise à jour pour ce que j'ai essayé
Jay
98

Vous pouvez exclure certains modèles de fichiers et dossiers de votre projet en modifiant les paramètres de votre projet comme suit:

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

Ceci est décrit dans la documentation des projets .

David Pärsson
la source
7
Fonctionne pour Sublime Text 3. Supprime le dossier exclu de la barre latérale, mais ce n'est pas un problème pour moi.
Webdevotion du
Quelle est la meilleure façon de se cacher de la recherche, mais pas de la barre latérale, par projet?
Adriano Resende
@AdrianoResende Pour autant que je sache, il n'y a pas de manière correcte de procéder par projet. Uniquement à partir des paramètres globaux.
kleinfreund
85

Vous pouvez également exclure des dossiers dans le volet Rechercher tout en utilisant la -*/foldername/*syntaxe dans le Wherechamp - par exemple:

-*/node_modules/*

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

Daniel Flippance
la source
2
Oui! Parfait. Je ne veux pas exclure complètement node_modules du projet, je voulais juste le filtrer de la recherche. Rockin!
Privateer
Je ne pense pas que cela va sur le whereterrain.
Noah
Oui, ça y va.
Daniel Flippance
3
Notez que dans Windows, vous devrez également utiliser les barres obliques (/) pour que le répertoire soit exclu, même si vous utilisez des barres obliques inverses pour le répertoire dans C:\Projects\SearchThis,-*/but/not/this/*
lequel
comment exclure plusieurs dossiers?
Anon30
21

Dans le texte sublime 3 (BLD 3059 Windows), je devais restreindre la fonction "rechercher dans le dossier" à certains fichiers / dossiers et peut-être à un seul fichier,

Le suivant fonctionne pour moi Contenu de la boîte où:

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

En allant plus loin sans chemins absolus, vous pouvez combiner ce qui précède avec les emplacements symboliques suivants

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

<open folders>,*.c,*.h,-*/never_this_in_folder/*,<open files>
eephillip
la source
Cela devrait être la réponse acceptée, elle répond à la question et ne masque pas les dossiers de l'interface utilisateur que vous souhaitez consulter.
JohnC
Oui. Les autres suggestions avec folder_exclude_patternset file_exclude_patternsne le cachent que dans la barre latérale, et non dans la recherche ou GoTo. Malheureusement, je n'ai trouvé aucun paramètre permanent pour exclure de la recherche et de GoTo. Cette réponse est donc actuellement la meilleure solution de contournement.
Magne
En fait, je viens de vérifier qu'il le cache au Goto. Mais il ne le cache toujours pas dans la recherche à l'échelle du projet.
Magne
2
Je viens de découvrir qu'il exclut de la recherche dans les fichiers si vous incluez ces options dans votre fichier de paramètres globaux ("Texte sublime -> Préférences -> Paramètres - Utilisateur"). Il ne fonctionne pas avec le fichier de paramètres du projet, il faut donc faire en sorte que ces paramètres soient appliqués pour chaque projet / application.
Magne
16

Pour SublimeText 2, cela fonctionne très bien pour moi.

Lorsque vous choisissez Rechercher dans les fichiers , spécifiez exclure les dossiers dans l’ entrée ;

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

Ainsi, un trait d'union suivi d'un motif d'exclusion pour les dossiers dans lesquels vous ne souhaitez pas rechercher.

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

Cela limitera votre champ de recherche.

Regarde ça

Harsh Vakharia
la source
12

Je pense que beaucoup de ces réponses couvrent plusieurs versions différentes de Sublime Text, voici comment je fais cela avec Sublime Text 3 sur un Mac.

  1. Ouvrez le menu Sublime Text> Préférences> Paramètres - Utilisateur
  2. Modifiez les valeurs file_exclude_patternset folder_exclude_patternspour ignorer les fichiers et / ou dossiers de l' outil Rechercher

Exemple

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

Capture d'écran

entrez la description de l'image ici

Kevin Leary
la source
Je cherchais une solution globale (pas une solution par projet) et essayant de différencier le fichier des dossiers, j'ai tout ici! (Utilisation de ST3 sur Linux Mint)
gfd
Merci pour cela - je l'ai fait fonctionner avec ST2 sur Ubuntu. Anomalie rapide: j'ai dû ajouter * au "file_exclude_patterns"; par exemple, ".txt" -> "* .txt". J'ai suivi ceci: lugolabs.com/articles/…
ximiki
Cela fonctionne, mais vous empêche également de pouvoir également ouvrir le fichier / dossier en sublime. Supposons que vous souhaitez toujours exclure node_moduleslorsque vous effectuez une recherche dans tout le dossier. Cependant, si vous déboguez quelque chose et qu'il y a un problème avec une dépendance, ce serait bien d'avoir la possibilité d'ouvrir un fichier dans node_modules
Jeremy
4

Vous pouvez également exclure des dossiers de votre recherche via le champ Où:

Où: <open folders>,-*/node_modules/*.*,-*/build/*.*

Donc, dans mon exemple ci-dessus:

  1. Je recherche dans tous les dossiers ouverts.
  2. J'exclus le dossier appelé "node_modules" qui est un dossier de niveau supérieur juste sous le répertoire racine de mon projet.
  3. J'exclus le dossier appelé "build" qui est un dossier de niveau supérieur juste sous le répertoire racine de mon projet.

Cela fonctionne pour moi dans Sublime Text 3 et les dossiers continuent de s'afficher dans la barre latérale. Il s'agit d'une exclusion de recherche uniquement via l'entrée (n'affecte pas l'indexation en arrière-plan).

afsheenirani
la source
3

Cette solution fonctionne parfaitement pour moi: https://superuser.com/a/601270

Find: "something" Where: "<open folders>" // <open folders>" not include hidden folder in sidebar
Laurent Perroteau
la source
2

Pour ces quelques fois où vous devez limiter la recherche (et le remplacement) au répertoire actuel uniquement, procédez comme suit:

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

Le bit important est /*/*dans le motif d'exclusion de chemin. Utilisation de Sublime Text 3 build 3083 sur Windows 7 64 bits.

MEngelby777
la source
Quelle est la clé pour ça? Où le placez-vous? (prefs sublimes)
Leon Gaban
@LeonGaban Cette astuce est l'entrée «Où» pour le panneau interactif Find-in-Files. La liaison de touches par défaut est CTRL + MAJ + F.
MEngelby777
2

Notez simplement que si vous souhaitez ajouter un sous-dossier de votre dossier de projet, vous devez joindre les dossiers avec \/. En utilisant le même exemple de @ DavidPärsson:

    {
        "folders":
        [
            {
                "path": "src",
                "folder_exclude_patterns": ["backup\/src\/log"]
            }
        ]
    }
Alter Lagos
la source
0

Je pense que le moyen le plus simple de s'assurer que de tels fichiers et dossiers sont exclus de chaque projet consiste à simplement ajouter le code suivant dans les paramètres utilisateur sublimes (ajoutez et modifiez cela dans votre ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsfichier.)

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

Gist: https://gist.github.com/ahmadawais/690a816ca158067708ad4dbe17822841

OU vous pouvez consulter mon fichier de préférences ici https://github.com/ahmadawais/dotFiles/blob/master/SublimeText/User/Preferences.sublime-settings#L80-L81

Ahmad Awais
la source