2012-11-10 8 views

Antwort

27

Sie können /foo wie in jedem anderen normalen Vim-Fenster tun, aber Sie sind auf den Text beschränkt, der gerade in NERDTree angezeigt wird: Sie können nicht erweiterte Unterverzeichnisse oder nicht aufgelistete Dateien nicht durchsuchen.

Angenommen, Sie an der Wurzel des Projekts sind, können Sie folgendes tun das Wort foo in JavaScript-Dateien in Ihrem Projekt zu suchen:

:vim foo **/*.js | copen 

Oder die folgende, wenn der „Arbeitsverzeichnis“ (:pwd) nicht die Wurzel des Projekts ist:

:vim foo /path/to/project/**/* | copen 

Notiere die ** (:help starstar), die die Suche rekursiv macht.

Wenn Sie öffnen app/views/foobar.php zum Bearbeiten möchten, können Sie tun:

:e **/foo<tab> 

Nun, gibt es viele Möglichkeiten ...

Zugriff auf Dateien/Puffer oder über ein Projekt der Suche relativ einfach sind mit nativer Befehle aber es gibt eine Menge Plugins von Drittanbietern, um es noch schneller und einfacher zu machen. CtrlP ist mein Lieblings-Datei/Puffer-Finder-Plugin, aber Sie sollten sich mit den Grundlagen vertraut machen, bevor Sie sich Plugins zuwenden.

+0

+1 für CtrlP. Eines meiner Lieblings-Plugins. – snowbound

1

Command-t in einer meiner Lieblings Vim-Plugins, dann ist es Rubin basierte Plugin über die Integration mit FZF.

Durch die Verwendung von Comamnd-T und FZF Sie mit einem extrem schnellen "fuzzy" Mechanismus, um die Suche tun für:

  • Öffnen von Dateien und Puffer
  • tags Springen und
  • Ausführen von Befehlen oder vorherige Suchen helfen und Befehle
  • mit einer minimalen Anzahl von Tastenanschlägen.

Wie Sie

enter image description here

Ich suche immer das Kommando Geschichte durch einen neuen Terminal zu öffnen und treffen sehen:

CTRL+R 

Neben der Suche in allen rekursiv Ordner durch Schreiben in einer beliebigen Registerkarte:

fzf 

Sie können aber auch innerhalb vim

:CommandT 

schreiben, aber immer noch, ich bin für eine leistungsfähige vim Plugin Suche innerhalb von Dateien Inhalt zu suchen. besonders in großen Ordnern. Wenn ich einen gefunden habe, werde ich diese Antwort aktualisieren.