Schlagwort-Archive: Vim

grep, vimgrep

Um in Dateien nach Text zu suchen eignet sich grep oder vimgrep.
vimgrep hat den Vorteil das es auch auf Windowsbüchsen funktioniert.

grep ist ein shell-kommando

grep muster datei  => sucht in datei nach muster
grep muster *.htm  => sucht in allen Dateien des aktuellen Verzeichnisses, die mit .htm enden
grep -r muster ordner  => sucht rekursiv in ordner und allen Unterverzeichnissen
grep -i muster datei => kümmert sich nicht um Groß- und Kleinschreibung
grep -A n => gibt n Folgezeilen nach der gefundenen Stelle aus

http://www.easylinux.de/2003/10/074-grep/

vimgrep ist ein vim-kommando

wird aus vim herraus gestartet.

:vimgrep /FIXME/ d:/projects/*.* => sucht alle Dateien die den Text "FIXME" enthalten
vimgrep /FIXME/ d:/projects/**/*.* => sucht in allen Unterordner in Dateien die den Text "FIXME" enthalten

http://vim.wikia.com/wiki/Find_in_files_within_Vim

VIM nützliche Funktionen

Befehle die man im Befehlsmodus eingibt werden von VIM gespeichert.
mit der folgenden Eingabe kann man sich die Liste der Befehle anzeigen lassen.

q:

mit den Navigationstasten (j,k oder pfeiltasten) wird durch die Liste gescrollt. Mit Enter wird der Befehl unter dem cursor erneut ausgeführt und die Liste geschlossen. Mit :q wird die List ohne Aktion geschlossen.

Hier eine sehr gute Anleitung um mit Split zu arbeiten.

Vim viewport keybinding quick reference

  • :sp will split the Vim window horizontally. Can be written out entirely as :split .
  • :vsp will split the Vim window vertically. Can be written out as :vsplit .
  • Ctrl-w Ctrl-w moves between Vim viewports.
  • Ctrl-w j moves one viewport down.
  • Ctrl-w k moves one viewport up.
  • Ctrl-w h moves one viewport to the left.
  • Ctrl-w l moves one viewport to the right.
  • Ctrl-w = tells Vim to resize viewports to be of equal size.
  • Ctrl-w – reduce active viewport by one line.
  • Ctrl-w + increase active viewport by one line.
  • Ctrl-w q will close the active window.
  • Ctrl-w r will rotate windows to the right.
  • Ctrl-w R will rotate windows to the left.

http://www.linux.com/learn/tutorials/442415-vim-tips-using-viewports

VIM suchen ersetzen

Suchen:

/phrase geh zum nächsten Vorkommen von phrase
n nächstes
N vorheriges

Ersetzen:

:s/alt/neu/ ersetzt erstes Vorkommen von “alt” gegen “neu” in der aktuellen Zeile
:s/alt/neu/g g steht für ganze Zeile. Also alle Vorkommen in der gesammten Zeile ersetzen
:%s/alt/neu/g um alle Vorkommen in der gesammten Datei zu ersetzen
:%s/alt/neu/gc alle Vorkommen in gesammter Datei mit Fragedialog pro Fund
:#,#s/alt/neu/g wobei #,# die Zeilennummern des Zielbereichs sind

Mit den 2 Tastenkombinationen (Crtl + r) und (Crtl +w) wird das Wort unter dem Cursor in die Kommandozeile gepastet.

/(Crtl+r)(Crtl+w) suche das nächste Vorkommen des Wortes unter dem Cursor
:%s/(Crtl+r)(Crtl+w)/neu/g ersetze in der gesammten Datei das Wort unter dem Cursor mit “neu”

VIM Optionen

Setzen einer Option

:set ru

Rücksetzen einer Option

:set noru

Präfix no schaltet eine Option ab
Optionsabfrage

:set ru?

Suffix ? kann entfallen, wenn es sich um eine binäre Option handelt, die nur ein- oder ausgeschaltet sein kann

ru (ruler) Anzeige Zeile, Spalte und relative Anzeigeposition (in %) bei Tabs in Zeile: getrennte Anzeige der logischen und physischen Position
smd (showmode) aktuellen Vim-Modus anzeigen (EINFÜGEN, ERSETZEN, …), sofern er vom Kommando-Modus abweicht
wrap lange Zeilen immer komplett anzeigen (also ggf. über mehrere Bildschirm-Zeilen)
number(nu) Voranstellen der Zeilennummer vor jede Textzeile
autoindent (ai) automatisches Einrücken in neu erzeugten Zeilen im Einfüge-Modus
guioptions+=b nur unter GVIM fügt dem Editor eine horizontale Scrollbar hinzu

Quellen :

http://www-user.tu-chemnitz.de/~hot/VIM/Tips_und_Tricks.html

http://www-user.tu-chemnitz.de/~hot/VIM/vikurz.html#optionen

http://heykevinle.blogspot.com/2007/09/gvim-enable-horizontal-scroll-bar.html

^M in VIM entfernen

Wenn man Textdateien die unter Windows erstellt wurden mit dem VIM bearbeitet dann befindet sich häufig am Ende einer Zeile ein ^M. Windows benutzt für einen Zeilenumbruch die Steuerzeichen CR LF (carriage return followed by linefeed)
Vim geht davon aus das eine Datei im Unixformat codiert ist. Jedses CR wird deshalb als ^M (CR = Ctrl-M) angezeigt.
Mit folgendem Befehl läßt sich das CR entfernen:

:%s/^M/\r/g

Man erzeugt ein ^M in der Komandozeile mit <ctrl>+ V und <ctrl>+M

Quellen:

Navigation in einer Datei mit VIM

In VIM kann man sich auf vielen Arten bewegen. Bewegt wird sich immer im Kommand- modus. Das ist der Standardmodus (wenn man nicht im Komannd-modus ist gelangt man durch drücken der ESC-Taste dort hin).  Man kann sich bspw. einfach mit den Pfeiltasten bewegen, so wie man das aus anderen Editoren gewohnt ist. Oder aber mit den Buchstaben hjkl.
h – nach links
l – nach rechts
j – nach unten
k – nach oben

Aber warum sollte man sich mit diesen auf den ersten Blick wenig intuitiven Tasten bewegen?
Unter VIM können alle Befehle kombiniert werden.

Hier ein Beispiel:
d steht für löschen.
d10l - lösche die nächsten 10 Zeichen.
d2j – lösche die nächsten 2 Zeilen

Die Groß,- und Kleinschriebung bei den VIM-Befehlen ist von Bedeutung.

G – geh zum Ende der Datei
gg – geh zum Anfang der Seite
150G – geh zu Zeile 150
H – setze den Cursor an die höchste Stelle im aktuell sichbaren Bereich.
M – setze den Cursor auf die Mitte im aktuell sichbaren Bereich.
L – setze den Cursor an die niedrigste Stelle im aktuell sichbaren Bereich.