Kategorien
linux software uup

Vim – Warum, Wieso und Weshalb

Nachdem ich vor scheinbar ewiger Zeit mal gefragt habe was ihr so an Editoren empfehlen könnt habe ich mich dieses Wochenende nochmal ein wenig näher mit dem Thema beschäftigt und beschlossen mir doch einen Mac zu kaufen um Textmate nutzen zu können. OK, kleiner Scherz am Rande…

Nachdem ich die letzten Monate hauptsächlich mit Kate gearbeitet habe, dem Editor aus der KDE-Suite, habe ich, nach Lektüre eines interessanten Artikels, beschlossen Vim auch abseits des Servers eine Chance zu geben.

Denn eigentlich kann Vim alles was man so braucht als Amateur-Programmierer 😉

Da wären:

  • code-completion
  • code-folding
  • syntax-highlighting
  • bracket-highlighting
  • mehrere Dateien in Tabs öffnen
  • Macros zur Erleichterung oft ausgeführter Befehle
  • Ausgereiftes Suchen/Ersetzen inkl. Regex-Support
  • Möglichkeit Sitzungen zu speichern

dazu kommen noch:

  • Konfiguration durch eine Datei im Home-Verzeichnis, dadurch auch portabel
  • cross-platform, UNIX, Mac, Win und einige mehr…
  • eigene Erweiterungen mit Perl, Tcl, Python und einer Vim-eigenen Skriptsprache
  • über 2000 bereits fertige Erweiterungen
  • für Menschen die unbedingt ein wenig GUI außenrum brauchen gibts gVim oder auch Cream

Allerdings gibt es natürlich auch einige Dinge die gegen Vim sprechen, wie zum Beispiel die für den Desktop-Normalo-Editor-Benutzer ungewöhnliche Bedienung und die dadurch doch einigermaßen steile Lernkurve. Man könnte dabei fast von einer Lern-„Eiger-Norwand“ sprechen.

Aber, wenn man diese Nordwand erst einmal bezwungen hat, sollte sich eine deutliche Steigerung in der Arbeitsgeschwindigkeit einstellen, da in Vim alle Funktionen direkt über Tasten-Combos aufgerufen werden und nicht wie bei den meisten Editoren größtenteils nur per Menü und Maus verfügbar sind. Das heißt, die Finger müssen die Tasten nicht verlassen.

Ok, soviel zur Theorie, kommen wir zur Praxis. Dazu hier ein paar Empfehlungen was Lesestoff (ja richtig, vor dem Schreiben sollte man immer zuerst das Lesen lernen) angeht:

Um zum Beispiel unter Ubuntu direkt zu starten empfiehlt es sich das Paket vim-full einzuspielen. Erstens ist hier der volle Funktionsumfang enthalten und Zweitens kann dann auf der Konsole ein Tutorial aufgerufen werden, dass die Grundfunktionen von Vim versucht zu vermitteln. Dieses kann durch Eingabe von
vimtutor
aufgerufen werden. Damit sollte die erste Hürde locker zu nehmen sein und nach ein paar Tagen will man wahrscheinlich gar nicht mehr ohne Vim schreiben (ich sag dann Bescheid wenns bei mir so weit ist).

Ich hoffe das ich demnächst die Zeit finde noch ein paar Tricks und vor allem sinnvolle Erweiterungen hier im Blog präsentieren zu können. Natürlich sind Tipps und Kniffe eurerseits auch herzlich willkommen, vielleicht möchte der ein oder andere auch seine .vimrc mal zur Schau stellen?

16 Antworten auf „Vim – Warum, Wieso und Weshalb“

@siy: dazu zitiere ich nur mal kurz die wikipedia: „Nano zählt nicht zu den leistungsfähigsten Texteditoren…“ weißte bescheid! 😉
Aber für Anfänger auf der Konsole ist nano wesentlich zugänglicher als Vi/Vim…ich weiß noch ungefähr wie lange ich gebraucht hab das erste mal aus vi wieder rauszukommen 😛

Scho recht, mit modularem Kate oder Cream biste definitiv am besten aufgehoben. Aber ich muss zugeben, das erste, was Yast stets zu tun hat, ist nano nachzuinstallieren, weils für 30-Sekunden-Aufgaben einfach unschlagbar handy ist 😉

Ist zwar banal, muss aber immer mal wieder gesagt werden: ‚Welcher Editor‘ hängt davon ab, was man machen will. Ich habe nano installiert, mache aber auch viel mit TEA und/oder kate. Eine zeitlang habe ich mal viel mit emacs und diversen Erweiterungen gearbeitet – für mich erste Wahl, wenn ich viel Aufgaben habe, die mit einem Editor zu erledigen sind/erledigt werden können.

Darum gehts mir eben, ich möchte einen Editor mit dem ich möglichst viele unterschiedliche Aufgaben erledigen kann. Sonst muss ich mich jedes Mal wieder an die Besonderheiten von $editor gewöhnen wenn ich mal wieder was anderes machen möchte.
Bei mir wären diese verschiedenen Aufgaben: PHP/xHTML, LaTeX, Konfigurationsdateien(apache, lighty, samba, uvm)
Bisher bin ich mit der Kombination Kate(PHP/xHtml)/Kile(LaTeX) gut gefahren weil Kile quasi Kate als Editor verwendet. Bei Konfigurationsdateien auf einem Server ist mit Kate aber schon wieder Schluss…
Ich teste mal weiter 🙂

Hi, zero, ich hoffe Du hast Dich inzwischen gut eingelebt in vim.

Wolltest doch gerne über sinnvolle Erweiterungen informiert weden. Vielleicht hab ich da was, das Dich interessiert und Du noch nicht kennst: ‚Project‘. Damit wird vim zu einer IDE. Find ich sehr nützlich. Weitere Infos hier: http://www.vim.org/scripts/script.php?script_id=69

Also ich kann mich auch nur zu gut erinnern wie lange ich das erste mal gebraucht hatte um aus vi rauszukommen^^ aber ich finde für nen root Zugriff auf nen Server ist es Quatsch, weil für config-files nano meiner Meinung nach doch besser ist und für PHP ist ne IDE eh unabdinglich wenn man vorhat ernsthaft zu Programmieren.
Übrigens kleiner Lacher wer es noch nicht kennt: http://xkcd.com/378/

Es gibt keinen „besseren“ Editor, es gibt Editoren mit denen man besser zurecht kommt. Du kommst mit nano besser zurecht, ich mit vim.

Und zu behaupten, das man um richtig zu Programmieren ne IDE braucht, halte ich mal (entschuldigung) für kompletten Schwachsinn! Es gibt nichts was ich mit einer IDE tun kann, was ich nicht mit nem vim-skript nachrüsten kann, wenn ich es wirklich brauchen sollte…

Naja wenn du der meinung bist, das man umfangreiche Umgebungen wie das Zend Studio mal eben durch ein paar Skripts ersetzen kann.. Bitteschön, sei der Meinung. Ich sage ja auch nicht das vim grundsätzlich schlecht ist oder besser als nano, aber eine visuelle Oberfläche(jaja Maus macht dich ja so viel langsamer) ist einfach entscheidend, weil du dort kleine Zusätzliche Fenster einrichten kannst, wie nen Code Explorer, dein Debugger output oder Projektansichten. Und ich möchte mal sehn wie du mit vim zwischen 10 Dateien oder mehr im Sekundentakt hin- und herswitcht um Kleinigkeiten zu verändern. Es geht einfach nicht.
Du kannst (so du eine grafische Oberfläche wie Gnome oder KDE hast) zwar zich vims aufmachen, aber das bringts am Ende auch nicht. Und ich möchte bezweifeln das man an einem größerem Projekt mit mehreren Leuten effektiv arbeiten, wenn man nur im vim hängt..

Man sollte nicht über Sachen diskutieren von denen man keine Ahnung hat.
Und die hast du von vim nicht.
Alles was du aufgezählt hast ist in vim möglich, teilweise von haus aus, oder mit den passenden Skripten. Und alles ohne das ich eine IDE brauche die tausend sachen kann, die ich nie benutze und die Anwendung dazu noch träge machen, sei es beim start oder bei der benutzung…

Also ich weiß ja nicht welche IDEs du schon durchprobiert hast, dass du sagen kannst, dass dort tausend Sachen sind die du nicht brauchst. Die Developer in meiner Firme(inkl. mir) reizen die IDEs, die wir haben eigentlich vollständig aus. Was mir vor allem an der Team-Integration am Vim nicht gefällt ist das Fehlen einer umfangreichen Projektverwaltung. Natürlich, es gibt da viele Skripts, aber z.B project und winmanager fehlen jeweils einfach essentielle sachen. So ist meiner Einschätzung nach eine Integration von Todos, (ungelösten) Abhängigkeiten, etc. in die Projektansicht unabdingbar um effizient im Team zu arbeiten. Natürlich ich kann mir 200 Skripts zu vim laden, aber warum, wenn ich es alles als ein Paket bekommen kann was noch dazu die Standards die PEAR und Zend setzen von Haus aus unterstützt?
Und btw, ich wüsste nicht, was die Anwendungen träge machen sollte..

Ich zitiere mich mal selbst: „Es gibt keinen “besseren” Editor, es gibt Editoren mit denen man besser zurecht kommt.“

Es gibt genug Menschen, die deinen Standpunkt verstehen werden, genauso wie es genug gibt die meinen verstehen. Mir reicht VIM, er kann alles was ich brauche, IDEs die ich getestet habe (darunter NetBeans und Eclipse) stehen mir einfach zu viel im Weg rum, als das sie _mir_ nützen. Das es bei dir anders ist, schön, da kann ich mit leben.

Damit ist diese „Diskussion“ beendet, bringt eh nichts…wie alle Diskussionen über religiöse Weltansichten 😉

Okay gut in Ordnung einverstanden. Und hast, ist tasächlich wie bei religiösen Diskussionen( wie war das doch gleich, Religion ist nur der Streit, wer den cooleren Freund( /die coolere IDE) hat 😉 )

Außerdem ist es ja wie in dem comic den ich im ersten Kommentar hinterlassen hab, „real programmers use butterflies“ 😛

P.S.: Wollts jetz nich iwo anders hinschreiben – interessanter jabber client den ich noch kenne: spark wirklich nettes Teil, kannste dir ja mal angucken 😉

Kommentare sind geschlossen.