Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Entwicklung & Design

How to: Editor VIM als Entwicklungsumgebung nutzen

© kentoh - Fotolia.com

VIM gibt es mittlerweile seit 35 Jahren und ist sich seitdem stets treu geblieben als leichtfüßiges Entwicklungswerkzeug für den Terminal-Freund oder für die schnelle Fehleranalyse am Live-Server. Doch bietet VIM viel mehr Möglichkeiten als die meisten Entwickler denken. Ein Einblick in ein viel zu unterschätztes Entwicklungswerkzeug.

Der Begriff VIM steht für Vi IMproved und gilt als Erweiterung für den vi-Editor auf UNIX-Systemen. Auf modernen Systemen wie den Linux-Derivaten Ubuntu, Debian und Co. oder auch Mac OS X sind die beiden Editoren aber praktisch identisch. Das heißt beim Aufrufen des Befehls:

vi index.html | vim index.html

öffnet sich dasselbe Fenster. Das resultiert daher, weil der vi-Editor seine Einstellungen aus den VIM-Configs holt.

VIM: die Grundlagen

Doch genug von der Theorie. Zuerst möchte ich gerne den absolut unerfahrenen Nutzern die wichtigsten Befehle in VIM erklären. VIM hat verschiedene Modi wie den „Normalmodus“ oder „Einfügemodus“. Das bedeutet, wenn ihr das erste Mal eine Datei im Terminal mit dem Befehl:

vim dateiname.dateiendung

öffnet, wird diese Datei automatisch im Normalmodus geöffnet. Dort könnt ihr dann durch das Dokument navigieren und Befehle eingeben. Befehle werden meistens mit einen angeführten Doppelpunkt gestartet, wie das Wechseln in eine bestimmte Zeile, das ihr mit folgenden Befehl ausführt:

:6

Es gibt aber auch andere Standardbefehle, wie das Durchsuchen nach einem Begriff. Wenn ihr also zum Beispiel nach dem Begriff „SERVER“ suchen wollt, gebt ihr einfach Folgendes ohne den Doppelpunkt ein:

/SERVER

Hier müsst ihr aufpassen, denn das Durchsuchen ist case-sensitive, das heißt es wird zwischen Groß- und Kleinschreibung unterschieden. Nun zeigt euch VIM als Ergebnis den ersten Begriff mit dem Inhalt „SERVER“ an. Mit der Taste „n“ wird euch dann der nächste Begriff mit dem Inhalt „SERVER“ angezeigt.

Die beiden oberen Befehle sind besonders günstig, wenn man zum Beispiel schnelles Bugfixing am Live-Server betreiben möchte.

Der Einfügemodus von VIM

Das Bearbeiten von Dateien ist natürlich auch möglich. Dafür gibt es zwar mehrere Varianten, doch braucht ihr im Moment nur eine Variante zu kennen. Dafür drückt ihr einfach „i“ auf der Tastatur und wechselt damit automatisch in den Einfügemodus und könnt nun euer Dokument bearbeiten. Wenn ihr dann zurück in den Normalmodus wollt, solltet ihr die ESC-Taste auf eurer Tastatur drücken.

Wenn ihr das Dokument speichern wollt, könnt ihr das mit folgender Kombination im Normalmodus tun:

:w

Für das Schließen eines Dokuments ist folgender Code nötig:

:q

Manchmal gibt der VIM Fehler beim Speichern oder schließen aus. Wenn Euch bewusst ist, was für Fehler das sind und ihr diese ignorieren könnt, nutzt einfach ein „!“ vor „w“ oder „q“. Zum Beispiel:

:!w

Den Editor anpassen (für Linux- und Mac-OS-Nutzer)

Der Editor sieht im Moment natürlich nicht gerade einladend aus. In der Standardvariante gibt es keine Syntax-Hervorhebung, keine Zeilenanzeige, etc. Doch schon in der Auslieferungsvariante bietet der VIM all diese Möglichkeiten, ihr müsst diese nur aktivieren. Das ist auch relativ simpel. Es gibt auch in Windows Möglichkeiten den VIM zu nutzen und anzupassen, falls jemand dafür eine Anleitung haben möchte, liefere ich diese gerne nach.

Öffnet eure Terminal-Anwendung und gebt als Befehl Folgendes ein: vim ~/.vimrc

Mit dem oberen Befehl ruft ihr in eurem Homeverzeichnis(~) die Config-Datei(.vimrc) für VIM und damit auch für vi auf. Diese Datei sollte leer sein. Wechselt nun in den Einfügemodus mit „i“ und gebt Folgendes ein:

 syntax on
colorscheme desert
set number
set tabstop=3
set shiftwidth=3
set guifont:Courier:h15
set smartindent
set autoindent
set wildmode
set foldenable
filetype plugin on


Damit habt ihr aus eurem langweiligen VIM einen spannenden Editor gemacht. Mit „syntax on“ habt ihr die Syntaxhervorhebung aktiviert. Durch „colorscheme desert“ wurde ein augenfreundliches Farbschema gewählt. In den Links unten findet ihr eine Seite, die euch viele verschiedene Farbschemata zur Auswahl anbietet. Mit „set number“ wurden die Zeilennummern aktiviert. Durch die restlichen Anweisungen habt ihr zum Beispiel die Funktion der Tabulator-Taste eingestellt, eine Schriftart gewählt und das automatische Einrücken aktiviert, sowie die Möglichkeit eigene Plugins einzubinden.

Speichert diese Datei nun mit:

:wq

Und wenn ihr jetzt zum Beispiel wieder eine .html-Datei öffnet, sollte das Ganze wie auf dem Bild unten aussehen:

Screenshot VIM
Screenshot VIM

Das war die erste kleine Einführung in den VIM-Editor. Wenn ihr möchtet zeige Ich euch auch noch gerne die wichtigsten Plugins für Autocomplete, einen Dateibaum oder zen-coding.

Zum Abschluss eine Frage an euch: Nutzt ihr vi oder VIM bereits produktiv und würdet ihr ihn gerne öfter nutzen, wenn ihr erfahrt, wie die Befehle zur richtigen Nutzung sind?

Bildnachweis für die Newsübersicht: © kentoh - Fotolia.com

Finde einen Job, den du liebst

Bitte beachte unsere Community-Richtlinien

12 Reaktionen
Patches

Nur ein Beispiel für Erweiterungen, die in Sachen Webdesign die Arbeit erleichtern können:

http://net.tutsplus.com/tutorials/other/vim-essential-plugin-sparkup/

Ziemlich coole Sache, finde ich, auch wenn auch durch plugins aus vim kein Dreamweaver wird ;)

Antworten
Stephan

Super danke! So in kleinen häpchen serviert, würd ich mir den Editor vielleicht sogar antun. Nächste Woche wieder bitte!

Antworten
Patches

@Tim Kraut: Ja, es dauert zugegebenermaßen ein bischen, um so mehr, wenn man das Handling anderer Editoren gewöhnt ist. Ich bin selber noch nicht an dem Punkt, wo ich all die Dinge, die ich über Vim weiss (und das ist nur ein verschwindend kleiner Teil der Mächtigkeit des Tools) wirklich, vor allem intuitiv beherrsche. Ich habe damals auch einen "sanften" Übergang vollzogen, tagsüber in der Arbeit PHP und NetBeans, abends dann Python und vim (beides neu ;)).

Klar ist HTML keine Programmiersprache und sicherlich nicht mit C(++) zu vergleichen, was ich meinte war vielmehr, dass sehr viele der Features (Shortcuts und Makros, intelligentes Code-Folding, Syntax Highlighting, Bracket Matching, PCRE-Suchen-und Ersetzen, Textvervollständigung und, was ich besonders schätze, eine Vielzahl von buffern für Copy und Paste) in eigentlich jeder, auch einer Webentwicklungsumgebung sehr hilfreich sein können.

Von Haus aus bringt vim zwar extrem viel schon mit, das meiste davon ist aber eher auf Effizienz ausgerichtet und nicht auf Convenience. So gibt es, auch wenn die manuelle Pfadangabe letztlich der schnellste Weg ist, eine Datei zu öffnen (der Autovervollständigung sei es gedankt ;)) "sogar" einen integrierten File-Browser. Dieser ist aber nicht wirklich komfortabel und wird von vielen Programmierern durch den "NERDtree" ersetzt.

Vielleicht sollte man einfach mal eine Linksammlung anfangen (wenn es sowas denn nicht schon gibt ;)) in Sachen "vim für Webdevelopment". Ich bin zwar froh, wenn ich kein HTML-Markup generieren muss, aber interessieren würde es mich schon ... und brauchen kann man sowas, wenn man Webanwendungen entwickelt (und vim zu seinen absoluten Softwarelieblingen zählt ;)) doch immer :)

Ich werde mal die Augen offen halten ...

Antworten
Sven Schannak

Hallo zusammen,
schön dass ihr so über das Thema VIM diskutiert. In meinem Kollegen-Kreis diskutieren wir auch öfter über Sinn und Unsinn. Es ist dabei für Mich relativ leicht zu unterscheiden. Arbeite ich ganz alleine als Freelancer, vor allem im Webdesign, ist VIM keine schlechte Alternative. Auch eben an Remote-Servern per ssh ist es oft die einzige Lösung, da einige Firmen es ja auch nicht wollen das die Serverdaten physisch auf den Arbeitsrechnern gemountet werden.

Schwierig wird es beim Thema Webentwicklung. Bis zu einem gewissen Grad ist das alles kein Problem und eines meiner nächsten Themen werden auch Plugins sein wie Autocomplete. Aber zum Beispiel die Integration von Klassen und Funktionen eines Frameworks wird da schon eher zum Problem. Und wenn man im Team arbeitet, sind große IDE's meistens eh die bessere Wahl.

Nichts desto trotz finde Ich es sehr gut, dass sich mehr Leute an VIM oder vi wagen. Und für diese Leute sollen dann die kommenden Artikel auch sein. Denn an vielen Universitäten werden auch Kenntnise in vi gefragt, da ist es ganz gut es zumindest schon ein Mal angefasst zu haben.

Danke für die zahlreichen Kommentare !

Antworten
J

Ich bitte euch. VIM vs eine vollständig sauberes konfiguriertes Eclipse IDE - nee echt nicht. Da akzeptiere ich doch lieber die Java Macken von Eclipse. Nur weil die Zuschauer von der Tastatur Hackerei begeistert sind, macht es das Programmieren nicht produktiver. Soll mir einer mal zeigen wie er ein Tomcat Projekt in VIM so gut integriert wie in Eclipse. Was für PHP Programmierung vielleicht noch funktioniert, bei Java hört dann der Spass doch recht schnell auf.

Antworten
Tim Kraut

@Patches:

Dieses Tutorial habe ich gemacht. Ich habe mir auch die Videos von Derek Wyatt angeguckt (wurden hier in den Kommentaren auch schon erwähnt). An die Produktivität wie mit anderen Editoren bin ich bisher noch nicht ran gekommen. Gut möglich, dass ich noch so darauf fixiert bin, ständig zu den Pfeiltasten bzw. der Maus zu greifen. An für sich arbeite ich viel mit Shortcuts. Es dürfte wirklich so sein, wie du sagst: Zähne zusammenbeißen und durch. Das ist aber erstmal sehr gewöhnungsbedürftig und war mir bisher zu mühsam.
Ich meinte mit speziellen Webtutorials so Sachen wie besonders geeignete Plugins oder speziell fürs Web häufig benötigte Shortcuts. Oder Fallbeispiele. Um einfach von anderen Entwicklern möglichst schnell zu lernen, wie sie Vim effizient einsetzen können.

Mit den Gemeinsamkeiten von C und HTML habe ich mich ehrlich gesagt noch nie auseinander gesetzt :-D Auf den ersten Blick haben die beiden Sprachen ja eine völlig andere Intention. HTML ist nicht mal eine Programmiersprache. Das werde ich mir aber auf jeden Fall mal genauer angucken, das könnte interessant werden. Eine Funktion oder eine Methode hat ja z.B. auch so eine Art "Endtag" :-D

Antworten
Patches

@Tim Kraut: Vim wird mit einem eigentlich recht netten "Tutorial" ausgeliefert: vimtutor. Das ist eigentlich "nur" eine Textdatei, die aber eine gründliche Einführung in vim liefert - indem man angehalten wird, direkt in dieser Datei zu editieren. Die Datei selber heisst nur "tutor.txt", aber afaik wird auch auf Windows-Systemen eine Batch-Datei angelegt namens "vimtutor". Einfach mal ausprobieren.

Ich selber habe die Erfahrung gemacht, zumindest war es bei mir so, dass die anfängliche Hürde relativ gross ist, aber bereits nach 2 Abenden konnte ich mit kaum Verlusten hinsichtlich der Produktivität mit Vim arbeiten. Ich denke als, dass es, wenn man sich gerne mit vim beschäftigen würde, am Anfang einfach "Zähne zusammenbeissen" heisst, es wird IMO ziemlich schnell deutlich besser und dann recht bald sogar sehr gut.

vim versteht übrigens von Haus aus alle webrelevanten Sprachen, von HTML über Javascript bis hin zu PHP, Perl und Python - spezielle "Web-Tutorials", denke ich, ergeben da eigentlich keinen Sinn (naja, sind dann halt Beispiele in einer dieser Sprachen); Das Gros der entscheidenden Features, die vim zu dem letztlich fast jedem anderen Editor haushoch überlegenen Werkzeug machen sind für C und HTML unterm Strich gleich :) Wie sagt der oben schon verlinkte Derek Wyatt so nett: "We're programmers. Not code typists." Wie recht er doch hat ... ;)

Antworten
Tim Kraut

Ich habe bisher mal damit geliebäugelt (es ist einfach beeindruckend, wenn man Entwicklern zusieht, die das Programm beherrschen), aber das wars dann auch schon. Einsteigerfreundlich ist das Programm sicherlich nicht. Mit einem anderen Texteditor arbeite ich nach wie vor sehr viel schneller.

Leider scheint es auch nicht so viele Tutorials zu geben, die auf den Webbereich eingehen (C++ ist da schon eher vertreten). Daher würde ich auch gerne mehr über Vim erfahren. Und bitte auch für Windows (die Einstellungen lassen sich mit ein wenig Suchen auch ohne extra Erklärung unter Windows übernehmen, aber wenn es die Möglichkeit gibt, direkt eine Erklärung für Windows zu bekommen, wäre mir das natürlich lieber).

Antworten
Matthias B

Ja ich würde gerne noch mehr über vim erfahren. Ich nutze es regelmäßig, aber bin mir sicher das ich nur einen Bruchteil der Funktionen nutze.

Antworten
Marek

vim ist unübertroffen, wenn man Tastaturnutzer statt Mausschubser ist und eher Programme schreibt als Oberflächen zusammenklickt. Insofern: bitte mehr zu vim und seinen Möglichkeiten.

Antworten
Erich

Eigentlich nur vi, vim eher selten. Aber ich möchte hier mehr darüber lesen!
Vielleicht kenne ich doch noch nicht alles. ;)

Freue mich somit über weitere Artikel zu vi / vim!
Unix rulez!

Antworten
CArsten

vi(m) - nur wenn es absolut nicht anders geht.

emacs-nox viel lieber :)

aber das führt nur wieder zu den üblichen Flamewars...

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.