Archiv der Kategorie: Vim

vi Improved ein mächtiger Editor, wenn man ihn erstmal beherscht macht er Spass.

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 Datei einlesen

Mit dem Befehl r ließt man etwas ein.

r foo.txt – ließt die Datei foo.txt ein und schreibt sie an der Stelle wo sich der Cursor befindet. Die einzulesende Datei muß mit Pfad ausgehend vom aktuellen Verzeichnis angegeben werden.

r! – ließt von der console
Bsp. mac:

r!date 
r!pwd
r!ls-F

Bsp.win:

r!date/t
r!cd
r!dir

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: