Suchen und finden mit Vim
Posted on June 29th, 2009 in Programme, Programmierung, Ubuntu | von Bernhard Essl | 1 Comment »
In einer Datei suchen
Eine Datei wird mit dem Schrägstrich / im Kommandomodus ESC durchsucht. Natürlich kann hier auch regular expression angewendet werden:
/^require
Mit n gelangt man zum nächsten Treffer. Um auf den Treffer davor zu kommen drückt man N.
Auf einer Zeile suchen
Beim Navigieren in einer langen Zeile ist f sehr hilfreich. So springt der Cursor bei f > auf die erste Übereinstimmung, mit dem Zeichen >. Ein F > sucht von der aktuellen Cursor Position von rechts nach links weiter. Um zum nächsten Treffer zu gelangen reicht ein ;.
In mehreren Dateien suchen
Dateien können mit grep durchsucht werden:
:grep require *.rb
gefunden werden alle Dateien die das Wort “require” beinhalten und die Dateiendung rb haben. Ein Ergebnis könnte in etwa so aussehen:
Press ENTER or type command to continue
start.rb:4:require 'open-uri'
model.rb:1:require 'active_record'
youtube.rb:1:require 'nokogiri'
youtube.rb:2:require 'open-uri'
Drückt man nun ENTER wird sofort der erste Treffer start.rb mit Cursor auf Zeile 4 in Vim geöffnet.
Um eine Liste der gefunden Ergebnisse zu erhalten, wird ein :cl im Kommandomodus ESC gemacht:
:cl
1 start.rb:4:require 'open-uri'
2 model.rb:1:require 'active_record'
3 youtube.rb:1:require 'nokogiri'
4 youtube.rb:2:require 'open-uri'
Um z. B. auf den letzten Treffer zu gelangen, wird die erste Zahl (4) bei den Treffer angegeben.
:cc 4
Es ist natürlich auch möglich bekannte grep Funktionen wie -r für rekursive Suche oder -P für Perl regular expression, zu verwenden.
Einstellungen für die .vimrc
Die erste Einstellung soll schon bei der Eingabe, die ersten Ergebnisse anzeigen und nicht erst beim Absenden des ganzen Suchbegriffes:
set incsearch
Eine weitere Einstellung ist hlsearch. Sie zeigt alle Treffer an und nicht nur den ersten Treffer in der Datei.
set hlsearch
Das Suchtreffer in Vim dauerhaft markiert bleiben, finde ich eher störend, darum habe ich mir in meiner vimrc die ENTER Taste so belegt das sie die Markierung aufhebt.
nnoremap :nohlsearch/
Damit kann ich nach der Suche, wenn ich die Markierungen nicht mehr benötige einfach ein ENTER drücken und sie verschwinden.
One Response
[...] http://www.ubuntuverse.at/2009/06/29/suchen-und-finden-mit-vim/ [...]