Ingo Reschke » Posts for tag '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

Posted in Vim
Tags:

VIM Uppercase, Lowercase

gu – konvertiert das Wort unter dem Cursor zu kleingeschrieben
gU – konvertiert das Wort unter dem Cursor zu großgeschrieben
gUw – konvertiert vom Cursor aus bis zum Ende des Wortes zu großgeschrieben
.
.
.

Posted in Vim
Tags: , ,

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

Posted in Vim
Tags:

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”
Posted in Vim
Tags: , ,

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

Posted in Vim
Tags:

VIM lösche alle Leerzeilen

Um alle Leerzeilen im Quellcode oder einer belieben Textdatei zu entfernen benutze ich folgenden Befehl:

:g/^$/d
Posted in Vim
Tags:

^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:

Posted in MacOSX, Vim
Tags: , ,

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.

Posted in Vim
Tags: