Beschränken Sie den Umfang der Dateisuche in erhabenem Text 2

238

In Sublime Text verwende ich oft Cmd+ P/ Ctrl+ P, um Dateien zu suchen und zwischen ihnen zu springen.

Oft werden temporäre oder zwischengespeicherte Dateien wie .scssc oder andere Dinge im Ordner / tmp abgerufen.

Gibt es eine Möglichkeit, die Anzeige im Suchergebnis einzuschränken?

Rickypai
quelle

Antworten:

319

Fügen Sie dies in Ihrer ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsDatei hinzu und bearbeiten Sie es .

// 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
quelle
12
Das binary_file_patternsentfernt die Dateien von Goto Anything, aber nicht von Find in Files, wie es basierend auf dem Kommentar sein sollte. Hat das noch jemand erlebt? Wissen Sie, wie man es behebt? Ich bin auf Ubuntu, Build 2221; Das gleiche passiert auf meinem Mac (ich kenne die Build-Nummer nicht).
Tyler Collier
51
Es gibt auch, "file_exclude_patterns": ["*.log"]wenn Sie bestimmte Dateien anstelle von Ordnern ignorieren möchten.
Matt Zukowski
4
Funktioniert das in ST3? Die Kommentare in ST # scheinen anders zu sein. Es sieht so aus, als würde folder_exclude_patterns von der Seitenleiste ausgeschlossen, aber ich möchte nur, dass sie von goto ausgeschlossen und in Dateien gefunden werden
Michael
20
@ Michael es ist das gleiche in ST3. Alle anderen: Gibt es eine Möglichkeit, den Ordner auszuschließen, ohne ihn auszublenden? Ich möchte oft nach der Quelle einer Bibliothek suchen, sie aber nicht in meinen typischen Suchergebnissen finden.
Parris
7
@Parris Ich habe das gleiche Problem. Möchte Bot Nuss von der Suche aus der Seitenleiste ausschließen.
Spieglio
148

Für erhabenen Text 3: Um von Such- und GoTo-Ergebnissen auszuschließen, ohne sie aus der Seitenleiste zu entfernen, ändern Sie die "binary_file_patterns"Einstellung. Stimmt mit Dateien UND Ordnern überein.

Um beispielsweise Dateien in "dist" und "node_modules" von der GoTo-Indizierung auszuschließen, fügen Sie dies Ihrer Benutzereinstellungsdatei hinzu:

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

Ich kann nicht herausfinden, wie dies pro Projekt implementiert werden soll :(. Die meisten Einstellungen können in eine project.sublime-projectDatei verschoben werden. "Projekt> Projekt speichern unter", speichern Sie es im Stammverzeichnis Ihres Projekts und fügen Sie "settings": {...}es dem json in hinzu Die generierte Datei (aus dem Quellcode , funktioniert ab ST3 Build 3095). Funktioniert jedoch nicht mit "binary_file_patterns".

Jay
quelle
3
Dies macht genau das, was es sollte, es verhält sich wie eine Ignorierdatei, wenn Sie so denken möchten. Vielen Dank!
Peter_Fretter
6
Aber ist es nicht möglich, dies pro Projekt zu ändern?
user2602152
Hinweis: Funktioniert auch in Sublime 2.0.2. +1 für Ihre gute Beschreibung und zeigt, dass das auch folder/**funktioniert. :)
versuchen-fangen-endlich
7
Das scheint bei mir nicht zu funktionieren. Ich verwende ST3 Build 3095. Ich kann die Einstellungen -> Einstellungen - Standard nicht bearbeiten, daher habe ich den Filter zu -> Einstellungen - Benutzer hinzugefügt. Ich habe versucht, "unused/"so gut wie, "*/unused/*"aber keine Arbeit für mich. Ich konnte jedoch einen Ausschlussfilter wie den folgenden hinzufügen: -*/unused/*,-*/_sgbak/*zu meiner Suche, was ärgerlich ist, weil er sich nicht erinnert, sodass Sie ihn jedes Mal hinzufügen müssen.
Redtopia
@ user2602152 Ich konnte es nicht pro Projekt zum Laufen bringen, siehe aktualisierte Antwort für das, was ich versucht habe
Jay
98

Sie können bestimmte Dateimuster und Ordner aus Ihrem Projekt ausschließen, indem Sie Ihre Projekteinstellungen wie folgt ändern :

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

Dies ist in der Projektdokumentation beschrieben .

David Pärsson
quelle
7
Funktioniert für erhabenen Text 3. Entfernt den ausgeschlossenen Ordner aus der Seitenleiste, aber das ist für meine Zwecke kein Problem.
Webdevotion
Was ist der beste Weg, um sich pro Projekt vor der Suche, aber nicht vor der Seitenleiste zu verstecken?
Adriano Resende
@AdrianoResende Soweit ich weiß, gibt es keinen richtigen Weg, dies pro Projekt zu tun. Nur aus den globalen Einstellungen.
Kleinfreund
85

Sie können Ordner im Bereich Alle suchen auch ausschließen, indem Sie die -*/foldername/*Syntax im WhereFeld verwenden - z.

-*/node_modules/*

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

Daniel Flippance
quelle
2
Ja! Perfekt. Ich möchte node_modules nicht vollständig aus dem Projekt ausschließen, sondern nur aus der Suche herausfiltern. Rockin!
Privateer
Ich glaube nicht, dass das auf dem whereFeld geht.
Noah
Ja, es geht dorthin.
Daniel Flippance
3
Beachten Sie, dass Sie in Windows auch die Schrägstriche (/) verwenden müssen, damit das Verzeichnis ausgeschlossen wird, selbst wenn Sie Schrägstriche für das Verzeichnis verwenden, in dem gesucht werden soll. Beispiel im Feld Wo:C:\Projects\SearchThis,-*/but/not/this/*
sp00n
Wie schließe ich mehrere Ordner aus?
Anon30
21

In erhabenem Text 3 (BLD 3059 Windows) musste ich die Funktion "In Ordner suchen" auf bestimmte Dateien / Ordner und möglicherweise eine einzelne Datei beschränken.

Folgendes funktioniert für mich Inhalt des where: box

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

Wenn Sie ohne absolute Pfade weiter gehen, können Sie das Obige mit den folgenden symbolischen Positionen kombinieren

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

<open folders>,*.c,*.h,-*/never_this_in_folder/*,<open files>
Eephillip
quelle
Dies sollte die akzeptierte Antwort sein, sie erfüllt die Frage und verbirgt keine Ordner vor der Benutzeroberfläche, die Sie anzeigen möchten.
JohnC
Ja. Die anderen Vorschläge mit folder_exclude_patternsund file_exclude_patternsverbergen es nur vor der Seitenleiste und nicht vor der Suche oder GoTo. Leider habe ich keine dauerhafte Einstellung zum Ausschließen von der Suche und von GoTo gefunden. Diese Antwort ist derzeit die beste Problemumgehung.
Magne
Eigentlich nur überprüft, dass es es vor dem Springen verbirgt. Aber es versteckt es immer noch nicht in der projektweiten Suche.
Magne
2
Ich habe gerade herausgefunden, dass es von der Suche in Dateien ausgeschlossen ist, wenn Sie diese Optionen in Ihre globale Einstellungsdatei aufnehmen ("Erhabener Text -> Einstellungen -> Einstellung - Benutzer"). Es funktioniert nicht mit der Projekteinstellungsdatei, daher muss man dafür sorgen, dass diese Einstellungen für jedes Projekt / jede App angewendet werden.
Magne
16

Für SublimeText 2 funktioniert dies hervorragend für mich.

Wenn Sie In Dateien suchen auswählen , geben Sie unter Wo Eingabe die Option Ausschlussordner an .

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

Ein Bindestrich gefolgt von einem Ausschlussmuster für Ordner, in denen Sie nicht suchen möchten.

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

Dies schränkt Ihren Suchbereich ein.

Sieh dir das an

Harte Vakharia
quelle
12

Ich denke, viele dieser Antworten umfassen einige verschiedene Versionen von Sublime Text. So mache ich das mit Sublime Text 3 auf einem Mac.

  1. Öffnen Sie das Menü Sublime Text> Einstellungen> Einstellungen - Benutzer
  2. Bearbeiten Sie die file_exclude_patternsund folder_exclude_patternsWerte zu ignorieren , Dateien und / oder Ordner aus dem Suche Werkzeug

Beispiel

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

Bildschirmfoto

Geben Sie hier die Bildbeschreibung ein

Kevin Leary
quelle
Ich war auf der Suche nach einer globalen Lösung (keine pro Projekt) und habe versucht, Dateien von Ordnern zu unterscheiden. Hier habe ich alles! (Verwenden von ST3 unter Linux Mint)
gfd
Danke dafür - ich habe es mit ST2 unter Ubuntu zum Laufen gebracht. Schnelle Diskrepanz: Ich musste * zu den "file_exclude_patterns" hinzufügen; zB ".txt" -> "* .txt". Ich folgte diesem: lugolabs.com/articles/…
ximiki
Dies funktioniert, schließt jedoch auch aus, dass Sie die Datei / den Ordner auch in sublime öffnen können. Angenommen, Sie möchten immer ausschließen, node_moduleswenn Sie eine ordnerweite Suche durchführen. Wenn Sie jedoch etwas debuggen und ein Problem mit einer Abhängigkeit vorliegt, wäre es schön, die Option zu haben, eine Datei in node_modules zu öffnen
Jeremy
4

Sie können Ordner auch über das Feld Wo von Ihrer Suche ausschließen:

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

Also in meinem obigen Beispiel:

  1. Ich durchsuche alle geöffneten Ordner.
  2. Ich schließe den Ordner "node_modules" aus, der ein Ordner der obersten Ebene direkt unter dem Stammverzeichnis für mein Projekt ist.
  3. Ich schließe den Ordner "build" aus, der ein Ordner der obersten Ebene direkt unter dem Stammverzeichnis für mein Projekt ist.

Dies funktioniert für mich in Sublime Text 3 und die Ordner werden weiterhin in der SideBar angezeigt. Dies ist ein Suchausschluss nur über die Eingabe (wirkt sich nicht auf die Indizierung hinter den Kulissen aus).

afsheenirani
quelle
3

Diese Lösung funktioniert perfekt für mich: https://superuser.com/a/601270

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

In den wenigen Fällen, in denen Sie das Suchen (und Ersetzen) nur auf das aktuelle Verzeichnis beschränken müssen, gehen Sie wie folgt vor:

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

Das wichtige Bit befindet sich /*/*im Pfadausschlussmuster. Verwenden von Sublime Text 3 Build 3083 unter Windows 7 64-Bit.

MEngelby777
quelle
Was ist der Schlüssel dafür? Wo platzierst du es? (erhabene Vorlieben)
Leon Gaban
@LeonGaban Dieser Tipp ist der Eintrag "Wo" für das interaktive Panel "In Dateien suchen". Die Standardtastenbindung ist STRG + UMSCHALT + F.
MEngelby777
2

Beachten Sie nur, dass Sie die Ordner mit verknüpfen müssen, wenn Sie einen Unterordner Ihres Projektordners hinzufügen möchten \/. Verwenden Sie das gleiche Beispiel von @ DavidPärsson:

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

Ich denke, der einfachste Weg, um sicherzustellen, dass solche Dateien und Ordner in jedem Projekt ausgeschlossen sind, besteht darin, einfach den folgenden Code in den Sublime User Settings hinzuzufügen (Fügen Sie diesen in Ihrer ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsDatei hinzu und bearbeiten Sie ihn .)

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

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

ODER Sie können meine Voreinstellungsdatei hier https://github.com/ahmadawais/dotFiles/blob/master/SublimeText/User/Preferences.sublime-settings#L80-L81 überprüfen

Ahmad Awais
quelle