Wie schließe ich einen Ordner dauerhaft von der Suche in erhabenem Text 3 aus?

76

Gibt es eine Möglichkeit, einen Ordner in der Projektansicht immer zu ignorieren?

Ich habe mehrere Apps in einem Repo und habe 'node_modules' in jeder App

mainapp
├── microapp
│   └── node_modules
├── microapp2
│   └── node_modules
├── index
├── config
└── assets

Ich möchte den node_modulesOrdner von der Suche ausschließen, wenn ich innerhalb des Projekts in der obigen Struktur suche.

Nolawi
quelle
2
Haben Sie versucht, zu verwenden folder_exclude_patterns?
DaV
Nein, versuche es jetzt
Nolawi

Antworten:

90

Gehen Sie zum Menü Einstellungen und in die Preferences.sublime-settingsDatei für den Benutzer und fügen Sie dem benannten JSON einen neuen Knoten hinzu folder_exclude_patterns. Fügen Sie darin die Ordner hinzu, die nicht angezeigt werden sollen (im JSON-Array-Format).

Beispiel:

{
    // ... other settings
    "folder_exclude_patterns": ["node_modules", "another_folder"],
}

Wenn Sie ein bestimmtes Verzeichnis oder eine bestimmte Datei ausschließen möchten, ohne sie in der Seitenleiste auszublenden, können Sie die obige Lösung und Add Exclude Filterden WhereAbschnitt der Suchleiste ignorieren . Sie müssen es jedoch jedes Mal angeben, wenn Sie das Suchverzeichnis ändern.

Hinweis: Möglicherweise müssen Sie Sublime Text neu starten, um die von @Soferio erwähnten Änderungen zu sehen

SUB0DH
quelle
28
Das Problem bei diesem Ansatz ist, dass diese Ordner nicht nur von der Suche ausgeschlossen werden, sondern auch von der Seitenleiste, was nicht immer wünschenswert ist. Ich bin immer noch auf der Suche nach einer zuverlässigen Lösung, die die Seitenleiste nicht beeinträchtigt.
Illya Moskvin
1
@IllyaMoskvin Ich habe die Antwort aktualisiert, um einige Ihrer gewünschten Lösungen hinzuzufügen, aber es wird keine dauerhafte sein. Möglicherweise ist dies über einige Plugins von Drittanbietern möglich.
SUB0DH
6
-*/node_modules/*früher hat es nicht funktioniert, aber heute Abend hat es magisch funktioniert. "folder_exclude_patterns"versteckt den Ordner vor der Seitenleiste, aber nicht vor der Suche: /
Jacob
@IllyaMoskvin - Informationen zum Unterdrücken von "Alle suchen" finden Sie unter stackoverflow.com/a/55748485/4454732, während die Ordner in der Seitenleiste bleiben .
David Hempy
2
Schließlich funktionierte das Einfügen, -*/node_modules/*was von @jacob vorgeschlagen wurde, wirklich und schloss ein großes unerwünschtes Suchergebnis aus . Meine vorherige Suche umfasste ungefähr 20.000 Dateien und ging auf ungefähr 80 davon zurück.
Luis Febro
49

Wenn Sie zum Menü "Einstellungen" gehen und dann "Einstellungen" auswählen, wird eine JSON-Datei mit allen Einstellungen und ihren Standardwerten geöffnet. Diese Datei dient auch als Dokumentation für die Bedeutung der Einstellungen. Zwei davon sind hier relevant. Hier ist das Snippet aus der JSON-Datei.

// folder_exclude_patterns and file_exclude_patterns control which files
// are listed in folders on the side bar. These can also be set on a per-
// project basis.
"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS"],
"file_exclude_patterns": ["*.pyc", "*.pyo", "*.exe", "*.dll", "*.obj","*.o", "*.a", "*.lib", "*.so", "*.dylib", "*.ncb", "*.sdf", "*.suo", "*.pdb", "*.idb", ".DS_Store", "*.class", "*.psd", "*.db", "*.sublime-workspace"],
// 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"],

Hier steht, dass folder_exclude_patternses vor der Seitenleiste verborgen ist, während binary_file_patternses vor der Suche verborgen ist. Wenn Sie es also von beiden ausschließen möchten, können Sie die Datei Benutzereinstellungen (die die Standardeinstellungen überschreibt) öffnen und hinzufügen.

{
    "folder_exclude_patterns": ["node_modules"],
    "binary_file_patterns": ["*/node_modules/*"]
}

Beachten Sie, dass die beiden unterschiedlich sind, da das erstere ein Ordnermuster ist, während das letztere ein Dateimuster ist.

Alex Altair
quelle
2
Dies scheint die richtige Antwort zu sein, aber für mich sucht es immer noch nach node_modules / und vendor /. Es scheint, dass die Anzahl der durchsuchten Dateien gleich ist. Irgendwelche Ideen?
Trainoasis
Das hat bei mir funktioniert, aber NUR nach dem Neustart von sublime3, also gib nicht auf ....!
Soferio
11

Ich "node_modules/", "coverage/", "tmp/cache/"habe binary_file_patternsfür mein mittelgroßes Ruby on Rails-Projekt hinzugefügt , um meine schmerzhaft langsamen Suchvorgänge zu beschleunigen:

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

Zuvor dauerte das Suchen aller Dateien etwa 7 Sekunden:

Searching 28526 files for "as records_with_errors"

Danach dauert das Suchen aller Dateien weniger als 1 Sekunde:

Searching 1658 files for "as records_with_errors" 

Ich habe coveragenicht aus Gründen der Leistung hinzugefügt , sondern um redundante, nutzlose Suchergebnisse zu vermeiden.


Übrigens, die meisten Lösungen, die ich für dieses Problem gefunden habe, konzentrieren sich auf folder_exclude_patternsund übersehen, dass binary_file_patternsOrdnermuster angegeben werden können, wahrscheinlich aufgrund des Namens und der Standardeinstellungen von Sublime.

Die Verwendung folder_exclude_patternsist KEINE saubere Lösung, nach der das OP sucht. Die Tatsache, dass Ordner in der Seitenleiste ausgeblendet werden, wird Sie sicherlich dazu bringen, Ihre Vernunft in Frage zu stellen, wenn Sie eines Tages nach diesen Dateien suchen und sie einfach nicht existieren.

Diese Sorge gilt natürlich auch für die Unterdrückung von Suchergebnissen, die sorgfältig abgewogen werden sollten, bevor zu viele Ordner blockiert werden. Schließen Sie nur Ordner / Muster ein, die Sie aktiv unterdrücken möchten. Schließen Sie keine Dinge ein, von denen Sie einfach glauben, dass Sie nicht suchen müssen, wenn sie Ihnen keine Probleme bereiten.

David Hempy
quelle
Für mich sucht dies immer noch nach node_modules. Irgendwelche Ideen?
Trainoasis
Können Sie diese Zeile von Ihrer Konfiguration aus bezahlen?
David Hempy
1
Sicher, es ist "binary_file_patterns": [" .jpg", " .jpeg", " .png", " .gif", " .ttf", " .tga", " .dds", " .ico", " . eot "," .pdf "," .swf "," .jar "," .zip "," node_modules / "," vendor / * "," .cache_loader / * "],
trainoasis
Hmm ... das scheint genau zu dem zu passen, was ich vor Ort habe. Können Sie bestätigen, dass die Ergebnisse einiger Ihrer anderen Ausschlüsse wie "vendor / *" oder ".pdf" unterdrückt werden?
David Hempy
1
Diese Methode funktioniert nur, wenn das Feld "Wo" im Bereich "In Dateien suchen" keinen Ordner enthält. Wenn dieses Feld ein Verzeichnis enthält (z. B. wenn Sie mit der rechten Maustaste in die Seitenleiste klicken und "In Ordner suchen" wählen), binary_file_patternsfunktioniert dies nicht. Hier ist das Problem: github.com/sublimehq/sublime_text/issues/959
Illya Moskvin
2

Dies sind korrekte Lösungen, aber Sie müssen Sublime3 neu starten, damit die geänderte Konfiguration wirksam wird. Schließen Sie nicht nur Fenster, sondern beenden Sie die gesamte Anwendung.

Soferio
quelle