Was sind die Vorteile des Lernens von Vim? [geschlossen]


467

Als Programmierer verbringe ich viele Stunden am Keyboard und mache das seit ungefähr 12 Jahren mehr oder weniger. Wenn es etwas gibt, an das ich mich während dieser ganzen Zeit nie gewöhnt habe, dann sind es diese nervigen und fast unbewussten ständigen Mikrounterbrechungen, die ich beim Codieren aufgrund einiger der häufigsten Code-Bearbeitungsaufgaben erlebe. Dinge wie einfaches Kopieren und Einfügen aus einer anderen Zeile (oder sogar derselben Zeile) oder das Verschieben von 1 oder 2 Zeilen von der aktuellen Position nach oben oder unten erfordern zu viel Eingabe oder die Verwendung der Pfeiltasten ... und es wird Schlimmer, wenn ich mich weiter bewegen möchte - am Ende benutze ich die Maus. Stellen Sie sich nun dasselbe Szenario vor, jedoch auf einem Laptop.

Ich habe immer darüber nachgedacht, VIM zu lernen, aber die Zeit, die ich brauche, um es zu beherrschen, hat mich immer dazu gebracht, einen Schritt zurückzutreten.

Ich würde gerne von Leuten hören, die es gelernt haben und wenn es eines der Dinge ist, ohne die man nicht leben kann.

Bei der Arbeit verwende ich VS2008, C # und R #, die zusammen das Bearbeiten von Code viel schneller und einfacher machen als je zuvor, aber trotzdem denke ich, dass ich es genießen könnte, überhaupt nicht mit der Maus arbeiten zu müssen.

Und nicht einmal die Pfeiltasten.


7
Es ist auf jeden Fall schön, nicht zwischen Tastatur und Maus wechseln zu müssen. Auf dem Mac habe ich sogar in einem GUI-Editor wie BBEdit oder Xcode Emacs-Navigationstasten (z. B. Strg-A) verwendet, um zusätzliche Bewegungen mit der Maus zu vermeiden.
Craig S

236
Die Mühe lohnt sich auf jeden Fall. Learn vim;)
Kyle Walsh

20
Sie können in wenigen Minuten Basic Vim lernen (vi vergessen). Geben Sie einfach Vimtutor in das Terminal ein und Sie werden mit dem Basic vertraut sein - was Sie in den nächsten 20 Jahren lernen, liegt ganz bei Ihnen. Ich bin nur neugierig, wie Ihnen VS2008, C # & R # bei den Problemen helfen, die damit verbunden sind, dass Sie Ihr Leben damit verschwenden müssen, zwischen Tastatur und Pfeiltasten / Maus zu wechseln.
stefanB

43
Eine der besten Investitionen, die ich je getätigt habe.
Johnsyweb

10
Ich habe dieses Spiel entwickelt, um meinem siebenjährigen Neffen zu helfen, sich in Vim schnell zu bewegen: Mit der Beta-Version von kikuchiyo.org können Sie Feinde mit Lichtschwert angreifen, 'i' für Linksangriff und 'a' für Rechts: PI lernte Vim aus den gleichen Gründen, die Sie getan haben. Ich fand es am schwierigsten, mich daran zu gewöhnen. Hoffe, das Spiel hilft dir, dich zu beschleunigen, wenn du Hilfe brauchst :) Viel Glück! :)
Kikuchiyo

Antworten:


249

Ich benutze vi und vim auch seit ungefähr 20 Jahren und lerne immer noch neue Dinge.

Die Best of Vim Tips- Website von David Rayner ist eine ausgezeichnete Liste, obwohl sie wahrscheinlich nützlicher ist, wenn Sie mit Vim vertraut sind.

Ich möchte auch die ViEmu- Site erwähnen, die einige großartige Informationen zu vi / vim-Tipps und insbesondere den Artikel enthält. Warum, oh WARUM, verwenden diese Nutheads vi? ( archivierte Version )


8
Ja, ich lerne auch immer neue Dinge darin. Immer noch mein Lieblingseditor.
Craig S

20
Ich frage mich, ob das gut oder schlecht ist. Wenn Sie ständig neue Dinge lernen, ist die Lernkurve WIRKLICH steil, Funktionen sind WIRKLICH verborgen und es gibt kein Gefühl der Meisterschaft. Wie auch immer, wenn Sie RISC wollten, haben Sie sich für vi statt für vim entschieden, oder?
Bastibe

7
@Paperflyer: Ich hatte die gleichen Gedanken. Wenn Sie es nach 20 Jahren immer noch nicht gemeistert haben, sind das Kopfschmerzen, von denen ich nicht sicher bin, ob ich sie will
Dinah,

7
Wie das? Es bedeutet, dass Sie zwar so viele Funktionen haben, aber weiter lernen können, aber nicht alle lernen müssen, um produktiver zu sein.
Arda Xi

5
"Warum, oh WARUM, benutzen diese Nutheads vi?" - Guter Link, besonders für die Frage

184

Könnte ich ohne leben? Leicht.

Ist es nützlich? Ja.

Gründe zum Lernen

  • vi ist garantiert auf allen Unix-Systemen vorhanden und existiert auch auf den meisten Linux-Systemen. Diese Art der breiten Berichterstattung macht das Lernen lohnenswert.

  • Es ist viel schneller, vi für eine sudoBearbeitung zu verwenden:

    $ sudo vi

  • Außerdem verwendet GMail vi-ish-Befehle zum Auswählen und Verschieben von E-Mails!

Du musst kein Meister sein.

Einfach lernen

Die Grundlagen:

  • So wechseln Sie vom Befehlsmodus in den Einfügemodus i
  • So wechseln Sie vom Einfügemodus in den Befehlsmodus Esc
  • So navigieren Sie im Befehlsmodus eine Zeile nach oben k
  • So navigieren Sie im Befehlsmodus eine Zeile nach unten j
  • So navigieren Sie im Befehlsmodus nach links h
  • Wie man einen Charakter richtig navigiert l
  • So speichern Sie eine Datei :wEnter(schreiben)
  • Beenden ohne Speichern (im Befehlsmodus) :q!Enter
  • Rückgängig machen u
  • Wie man Ctrl+ wiederholtr
  • Sie können Schreiben und Beenden kombinieren (im Befehlsmodus): :wqEnter

Von dort aus macht dich der Rest nur schneller.


Ich habe immer "vi ist einfach; Sie verwenden die Ell-Taste, um den Cursor nach rechts zu bewegen" als humorvolle (ich hoffe) Möglichkeit verwendet, es einzuführen. Aber ich benutze es schon lange und wäre nicht ohne. Ich kann jedoch noch keine 25+ Jahre für ein anderes Paar beanspruchen, also keine neue Antwort von mir.
Jonathan Leffler

16
So habe ich es gelernt. Beginnen Sie mit dem Minimum und bauen Sie jeden Tag ein wenig darauf auf. Nehmen Sie sich Zeit, um einen etwas besseren Weg zu finden, um eine Aufgabe zu erfüllen. Inspiration finden Sie in den "7 Gewohnheiten der Textbearbeitung".
Ben

Google Mail, Google-Tastenkombinationen für die experimentelle Suche, Slashdot-Tastaturkürzel, man und weniger verwenden alle vim-ähnliche Bindungen. Es überraschte mich zu entdecken, dass ich diese versehentlich gelernt hatte, ohne vim zu kennen! Sogar Firefox verwendet / für die inkrementelle Suche (mit einer geringfügig anderen Semantik als Strg + F).
Adam Rosenfield

29
[:] [X] [Enter] ist dasselbe wie [:] [W] [Q] [Enter]
Vitalii Fedorenko

20
[Z] [Z] ist dasselbe wie [:] [X] [Enter]
Kos

138

Das Durchlaufen von vimtutor dauerte nur 30 Minuten, was ausreichte, um mich mit vim vertraut zu machen. Es war jede Sekunde wert.


Wenn Sie einen besseren erklärenden Link kennen, ändern Sie bitte meinen :)
Blorgbeard ist am

43
vimtutor ist genau das, ein Tutorial. Ich habe es jeden Tag für ungefähr 10 Tage gemacht. Das erste Mal dauerte es ungefähr 30 Minuten, am nächsten Tag 20, dann 15. Am Ende der Woche hatte ich den größten Teil seines Befehls im Kopf. Ich denke, anstatt zu versuchen, sich zu merken, ist Wiederholung der beste Weg, sich Vim zu nähern. 15 Minuten täglich für eine Woche scheinen ein wirklich kleiner Preis zu sein.
Michael Ekoka

28
Was ist, wenn wir mit VIMTUTOR fertig sind? Was ist der nächste Schritt, um mehr zu erfahren?
Privatehuff

3
@privatehuff: Lesen und Anwenden von sieben Gewohnheiten effektiver Textbearbeitung .
Frank Kusters

1
Beeindruckend! Dies war wie eines dieser versteckten Gegenstände in einem Spiel. Es war genau dort in meinem System und ich wusste nicht, dass es existiert. Eines der nützlichsten und schnellsten Tutorials von vim. Ich habe vim eine Weile benutzt und trotzdem ein paar grundlegende Tricks gelernt, von denen ich nichts wusste. jedem empfohlen. Auch ein kleiner Vorschlag: Wenn Sie vim auf einem Laptop verwenden, der über ein Touchpad verfügt und Gesten unterstützt, deaktivieren Sie es, bevor Sie vim verwenden, da es bei versehentlicher Berührung den Cursor an unerwartete Stellen bewegen kann, die manchmal eine ganze gute Bearbeitung verschwenden.
Barracuda

69

Wenn Sie ein Programmierer sind, der viel Text bearbeitet, ist es wichtig, einen A Serious Text Editor zu erlernen. Welcher Serious Text Editor Sie lernen, ist nicht besonders wichtig und hängt weitgehend von den Arten von Umgebungen ab, in denen Sie voraussichtlich bearbeiten werden.

Der Grund dafür ist, dass diese Editoren stark optimiert sind, um die Aufgaben auszuführen, die Sie häufig ausführen werden. Fügen Sie beispielsweise am Ende jeder Zeile dasselbe Textbit hinzu. Dies ist in A Serious Text Editor trivial, ansonsten aber lächerlich umständlich.

Normalerweise werden die Killer-Funktionen von vim berücksichtigt: A) dass es auf so ziemlich jedem Unix verfügbar ist, auf das Sie jemals stoßen werden, und B) dass Ihre Finger die Startzeile sehr selten verlassen müssen, was bedeutet, dass Sie Text sehr, sehr schnell bearbeiten können . Es ist normalerweise auch sehr schnell und leicht, selbst wenn große Dateien bearbeitet werden.

Es gibt jedoch viele Alternativen. Emacs ist natürlich das häufigste Beispiel, und es ist viel mehr als nur ein fortgeschrittener Texteditor, wenn Sie sich wirklich damit beschäftigen. Ich persönlich bin jetzt ein sehr glücklicher TextMate- Benutzer, nachdem ich jahrelang vim / gvim verwendet habe.

Der Trick, um zu einem dieser Geräte zu wechseln, besteht darin, sich zu zwingen, sie so zu verwenden, wie sie beabsichtigt waren. Wenn Sie beispielsweise in vim jeden Schritt in einem mehrstufigen Prozess manuell ausführen oder die Pfeiltasten oder die Maus verwenden, gibt es wahrscheinlich eine bessere Möglichkeit, dies zu tun. Hören Sie auf, was Sie tun, und schauen Sie nach.

Wenn Sie nichts anderes tun, lernen Sie die grundlegenden Navigationssteuerelemente für vim und Emacs kennen, da sie überall angezeigt werden. Beispielsweise können Sie Steuerelemente im Emacs-Stil in jedem Texteingabefeld unter Mac OS, in den meisten Unix-Shells, in Eclipse usw. verwenden. Sie können Steuerelemente im Vim-Stil im Befehl less (1), in Slashdot , in Google Mail , verwenden. usw.

Habe Spaß!


7
Dies hat einen Punkt, den viele Leute übersehen. Fast jede sich wiederholende Aufgabe hat eine Verknüpfung. Entwickler lieben Verknüpfungen. Wenn Sie feststellen, dass Sie wiederholt einen Schritt ausführen, halten Sie an und prüfen Sie, ob bereits jemand eine Verknüpfung dokumentiert hat.
AvatarKava

A) war einer der Hauptgründe für mich, VIM zu verwenden - ich war ursprünglich ein Emacs-Typ, aber nicht alle Systeme hatten es und es war manchmal langsam über das Netzwerk oder auf ausgelasteten Servern. VIM ist allgegenwärtig, klein und schnell.
Jpeacock

3
Mein Redakteur macht ständig schlechte Witze. Ich sollte wechseln.
Greg Graham

Sie hatten mich bei: "Wenn Sie ein Programmierer sind, der viel Text bearbeitet, ist es wichtig, einen A Serious Text Editor zu lernen." Das Schlimmste ist, dass es unmöglich erscheint, zwei (viel weniger mehr) von innen und außen zu lernen, fast per Definition. Sie studieren irgendwann Randfälle, und das Wissen darüber, wie Sie Aufgabe X in einem erledigen können, wird normalerweise nicht übersetzt. Und es gibt immer Dinge, die ich in "Rand" -Editoren mache - ich verwende immer noch JEdit für JTidy, Code2HTML, um mehrere Dateien zu durchsuchen, z. Ihre Hauptsache ist ein Würfelwurf, und es gibt keine Silberkugel, aber ja, lernen Sie unbedingt eine und spielen Sie mit vielen. ; ^)
Ruffin

1
@ruffin Es ist wahr, Sie können nicht wirklich zwei verschiedene Editoren gleichzeitig beherrschen: Wenn Sie einen Editor beherrschen, werden Sie viele seiner Befehle unbewusst verwenden , und das bedeutet, dass Sie sehr wahrscheinlich versuchen werden, den zu verwenden Gleicher Befehl, wenn Sie den anderen Editor verwenden. Wie oft habe ich meinen Browser verflucht, weil ich Einrückungen nicht mit einem einfachen <esc> >i{... Es ist wirklich dasselbe wie beim Tippen mit der Berührung: Sie lernen ein Tastaturlayout und bleiben dabei, weil Sie nie aufhören können Ihre Finger davon abhalten, die falschen Tasten in einem anderen Layout einzugeben.
cmaster

36

Die Mühe lohnt sich auf jeden Fall .

Es gibt einen offensichtlichen Grund, den jeder, der ihn benutzt, Vi(m)Ihnen sagen wird, und zwei andere, die die Leute scheinbar nie erwähnen.

Hier ist das Offensichtliche:

  1. vi ist gleichzeitig allgegenwärtig und unglaublich leistungsfähig. Wenn Sie es einmal lernen, können Sie diese Leistung auf so ziemlich jedem Computer mit Tastatur ausüben.

Und dies sind die weniger bekannten Gründe zu lernen Vim:

  1. Es ist nicht halb so viel Aufwand, wie Sie denken. Führen Sie den Vim-Tutor einmal durch ( vimtutorin einer Shell oder unter Windows im Vim-Ordner im Startmenü), und Sie sind bereits auf dem besten Weg zur Kompetenz, und von dort geht es bergab. Ich war auf dem Niveau, auf dem ich Vimbei der Arbeit arbeiten konnte, ohne innerhalb von weniger als einer Woche Mittagspause einen spürbaren Produktivitätsverlust zu erleiden.

  2. Es macht Spaß ! Das Bearbeiten von Text ist für mich jetzt wie ein Spiel . Ich genieße es aktiv - was ziemlich lächerlich ist, wenn man darüber nachdenkt.

Es gibt auch zwei gute Gründe, nicht zu lernen Vim:

  1. Es macht süchtig und Sie werden sich wünschen, Sie könnten VimBefehle in all Ihren Computern verwenden und fluchen, wann immer Sie nicht können. Glücklicherweise zumindest für einige Situationen, gibt es Möglichkeiten zu bekommen um diese .

  2. Auch hier macht es süchtig, und obwohl Sie durch die tatsächliche Verwendung keine Produktivität verlieren Vim, werden Sie Stunden damit verschwenden, nach guten Tipps zu suchen, um Ihre VimErfahrung noch besser zu machen , und das Vim-Tag auf Stack Overflow zu lesen .


12
Haha Nummer 2 aus Gründen "nicht" VIM zu lernen ist so richtig. Während ich die Textbearbeitung speichere, lese ich über die Textbearbeitung. Lächerlich.
Karl Floersch

Ja, ich wünschte, ich könnte Stardew Valley mit hjkl spielen ...
xis

32

Es lohnt sich auf jeden Fall, entweder Vim oder Emacs zu lernen. Es lohnt sich auch, das Tippen zu lernen. In beiden Fällen sind die Gründe dieselben: Ihr Denken wird nicht länger durch den mechanischen Prozess unterbrochen, Ihren Code auf den Bildschirm zu bringen .

Tauchen Sie einfach ein und verwenden Sie vim für alles.

PS Die Emacs-vs-Vi-Debatte ist endlos. Ich benutze Emacs seit 26 Jahren. Wenn ich heute noch einmal anfangen würde, würde ich vim lernen, weil (a) es besser geworden ist und (b) es viel weniger Modifizierertasten gibt (Ctl-Alt-V, irgendjemand) und vim-Benutzer viel weniger Tippverletzungen zu bekommen scheinen.


RSI ist die einzige berufliche Gefahr für Entwickler. Ich habe es nie so gesehen, aber ich wette, das ist ein wirklich guter Punkt. Es ist viel schwieriger, Akkorde vom Standpunkt der Muskeln aus zu tippen. Ich wusste, dass es einen Killergrund gab, vi zu benutzen!
DigitalRoss

1
Ich habe beide benutzt, ich wurde mit vim "getauft" und habe vor ein paar Monaten Emacs gelernt. Ich bevorzuge vim, weil die Aufgaben aufgeteilt sind - Sie bearbeiten oder fügen ein, nicht beides. Diese Unterscheidung hilft mir beim Überlegen, was ich tue, und führt die "normalen" Befehle zu 1-2 Tastenanschlägen anstelle von 2-4. Ich wünschte nur, vim wäre Lisp-basiert (und nein, der Viper-Modus unterstützt nicht alle meine vim-Standardfunktionen. Ja, ich könnte meine eigenen rollen, aber dann würde ich sie jedes Mal vermissen, wenn ich einen neuen Computer / ein neues System berührte)
Wayne Werner

1
@WayneWerner Ich bin wirklich veraltet, aber Sie können alle Ihre Elisp-Versionen versionieren, um sie über Computer zu synchronisieren.
YuriAlbuquerque

@YuriAlbuquerque, ich habe tatsächlich sehr ernsthaft darüber nachgedacht, ein Setup-Skript für die automatische Umgebung zu erstellen, bei dem alle meine Punktedateien auf Github oder so bleiben.
Wayne Werner

17

Sie können eine gute Funktionalität aus vim herausholen, indem Sie die Bedeutung von nur 16 Tasten lernen : ijkdbw9:q!%s/nNEsc. Sie können die nackten Knochen mit nur tun i:wqEsc.

Die ersten beiden Tasten, die Sie kennen müssen, sind: EscSie gelangen in den Befehlsmodus (den Modus, in dem Sie starten) und iin den Einfügemodus (normale Eingabe).


Um zu sparen, müssen Sie

  1. Verlasse den Tippmodus ( Esc)
  2. Geben Sie einen Doppelpunkt ein :
  3. Geben Sie wdann Kleinbuchstaben einEnter

Zum Speichern und Beenden müssen Sie

  1. Verlasse den Tippmodus ( Esc)
  2. Geben Sie einen Doppelpunkt ein :
  3. Geben Sie wqdann Kleinbuchstaben einEnter

Um nicht zu speichern und zu beenden, müssen Sie

  1. Verlasse den Tippmodus ( Esc)
  2. Geben Sie einen Doppelpunkt ein :
  3. Geben Sie q!dann Kleinbuchstaben einEnter

Um mehr zu erfahren, können Sie über vimtutordie Befehlszeile ausführen . Es ist eine mittellange, gut strukturierte Lektion.

Über iund hinaus Esc: Sie können einige MS Word-Funktionen nur mit replizieren oder übertreffen jkwbd3:%s/nN.

  1. bbringt dich ein Wort zurück ( Ctrl+ )
  2. wbringt dich ein Wort vorwärts ( Ctrl+ )
  3. 9w bringt Sie neun Wörter vorwärts
  4. dblöscht das vorhergehende Wort ( Ctrl+ Backspace)
  5. d3b löscht drei vorhergehende Wörter
  6. 9j bewegt sich 9 Zeilen nach unten
  7. / ornithopter Entergelangen Sie auf die nächste Instanz des Wortes „Ornithopter“, dann nund Nzum nächsten und vorherigen Auftreten von „Ornithopter“ bezeichnet.
  8. :%s/confounded/dangfangled/ Enterersetzt jedes "verwechselt" durch "baumeln" (wie find and replace allin MS Word)

Alle diese sollten im "Befehls" -Modus ( Esc) und nicht im Einfügemodus ( i) ausgeführt werden.


16

Ich bin kürzlich zu VIM gewechselt und denke, es lohnt sich. Wenn Sie "nur etwas erledigen" müssen, können Sie immer im Einfügemodus bleiben, in dem vim (meistens) wie ein normaler Texteditor ist.

Mir ist aufgefallen, dass Dinge, die mich früher nicht gestört haben, wie das Greifen nach den Pfeiltasten, sich jetzt falsch anfühlen und zu viel Mühe geben. Es hat definitiv meine Handbewegung und den Gebrauch der Maus verringert, was sowohl für die Ergonomie als auch für die Produktivität gut ist


12

Es hängt davon ab, was Sie mit VIM machen möchten. Es macht keinen Sinn, es nur zu lernen, weil viele Menschen ohne es nicht leben können.

Wenn ich viel in UNIX-Umgebungen gearbeitet habe, konnte ich ohne sie nicht leben. Selbst wenn VIM nicht auf einem UNIX-Computer installiert war, konnte ich zumindest vi verwenden. Sie können sich immer darauf verlassen - auch wenn die Maschine nicht Ihnen gehört (die des Kunden).

Jetzt programmiere ich in C # und arbeite hauptsächlich in Windows-Umgebungen. Ich habe VIM auf meinem PC installiert ... und brauche es nicht.

Bewerten Sie, ob Sie VIM wirklich benötigen und ob es Sie in Ihrem "Arbeitsfluss" unterstützt. Versuch es. Spiel damit. Wenn Sie denken, dass Sie es brauchen, bleiben Sie dabei ... die Lernkurve ist sehr steil.


Es gibt eine Visual Studio-Erweiterung für VIM-Benutzer, siehe visualstudiogallery.msdn.microsoft.com/…
yoel halb

10

Ich habe vi gelernt, weil ich musste.

Mein verrückter Lehrer zwang uns zu lernen, in C mit einem Terminal auf ein AIX-System zu programmieren.

Es war ein echter Schmerz, aber es hat sich gelohnt.

Heute verwende ich vi nur für schnelle Bearbeitungen oder kleine Programme.

Wenn ich mich für ein Projekt entscheiden muss, benutze ich lieber und IDE. In meinem Fall ist die IntelliJ-Idee sehr gut bei der Aufgabe, da ich stundenlang codieren kann, ohne die Maus zu greifen.

Ich weiß nicht, wie viele Verknüpfungen VS2008 hat, aber wenn sie so auffindbar sind wie Eclipse, sind Sie wahrscheinlich in Schwierigkeiten.

Wenn Sie keinen Code außerhalb der IDE bearbeiten und Ihre IDE über gute Verknüpfungen verfügt, sollten Sie diese besser lernen und dann trotzdem vi lernen.

:) :)


Er bat um die Vorteile von VIM, keine Meinung.
Blaze349

@ Blaze349 nein, er fragte nach Leuten, wie sie es gelernt haben (siehe Originalbeitrag hier) , genau das habe ich beantwortet. Diese Frage ist fast 8 Jahre alt und hat im Laufe der Jahre mehrere Überprüfungen durchlaufen. Meine Antwort stimmte mit der ursprünglichen überein. Berücksichtigen Sie dies beim Kommentieren.
OscarRyz

9

Ich benutze vi / vim seit mehr als 25 Jahren. Wenn Sie bereits einen Befehlszeileneditor kennen, müssen Sie möglicherweise nicht vi / vim lernen. Wenn Sie jedoch keine anderen Befehlszeileneditoren sehr gut kennen, lohnt es sich, sie zu lernen. Es ist ziemlich einfach, mit wenig Aufwand in vi / vim produktiv zu sein.


6

Ich benutze VIM jetzt so ziemlich ausschließlich.

Ich habe Vim zum Bearbeiten und VS Editor zum Debuggen verwendet. Dies scheint wahrscheinlich ein bisschen verrückt zu sein, aber ich fand das Vi-Paradigma (Makros, Bearbeitung auf Basis von Home-Schlüsseln usw.) so produktiv für meine Produktivität, dass die Bearbeitung in VS sehr aufwendig war.

Dank Viemu muss ich nicht einmal mehr wechseln. Es ist noch nicht die perfekte Lösung (die Code-Vervollständigung ist manchmal nicht so elegant wie in nativem vim und die Makroaufzeichnung ist nicht perfekt), aber es ist viel besser, als ständig hin und her zu wechseln.

Die Lernkurve für Vim ist wahrscheinlich übertrieben. Ich denke, wenn Sie erst einmal damit anfangen, ist es ziemlich intuitiv.


5

Mein Job hat mich gezwungen, Vim zu lernen, und es ist schnell zur zweiten Natur geworden. Jetzt beschwere ich mich über IDEs, die keine Vim-Emulation oder Plugins haben. Ich bemerke, dass der Esc-Schlüssel außerhalb von Vim zu meinem Feind geworden ist.

Ich habe in Visual Studio mehrere Emulatoren für vi gefunden:

http://code.google.com/p/vim-visual-studio/


4

Erstens ersparen Ihnen gute vi (m) Kenntnisse die Zeit, die Sie für die Notfallbearbeitung von Konfigurationsdateien auf einem Server unter seige benötigen. Es kann eine verzögerte SSH-Verbindung aushalten.

Abgesehen von der Eingabemethode von vim ist die Eingabemethode von vim Ihre beste Verteidigung gegen Karpaltunnel, wenn Sie sie effektiv mit einer ergonomischen Tastatur verwenden.

Der beste Weg, um den Sinn von vim zu erkennen, besteht darin, zu Hause ein Gelegenheitsprojekt zu starten, die Maus abzuziehen und die Pfeiltasten abzukleben.

Und lies die Hilfe


4
Ich finde auch das Vi-Eingabemodell großartig, um sich gegen das Karpaltunnelsyndrom zu verteidigen ...
CMS

Pfeiltasten? Versuchen Sie es in Ihrer .vimrc: map <up> <nop> map <down> <nop> map <left> <nop> map <right> <nop> imap <up> <nop> imap <down> <nop> imap < left> <nop> imap <right> <nop>
sjas

1
Ich möchte nur darauf hinweisen, dass es nanosolche gibt, die so viel einfacher zu bedienen sind als vim und fast gleichermaßen verbreitet sind.
MightyPork


4

Ich pflege ein sehr großes Linux-Projekt auf dem Remote-Computer. Es gibt keine Möglichkeit, Eclipse oder eine ähnliche GTK-basierte IDE zu verwenden. Ich arbeite dort seit 3 ​​Jahren. Und ich habe mein Ziel nur für dieses Projekt festgelegt. Und immer noch optimieren.

Jetzt kann ich mit Vim alles machen: Quellcodeverwaltung, SQL, Debuggen, Kompilieren, Browsen - wirklich schnelles Surfen über 1 GB Quellcode.

Visual Studio oder Eclipse konnten das alles nicht bewältigen. Und wenn ich die Wahl hätte, würde ich Vim nicht in einen anderen Editor oder eine andere IDE ändern.


4

Ich habe Vim gelernt. Es war nicht zu viel Mühe. Jetzt liebe ich ci "ci (cw V: s / von / bis / g


3

Ich würde sagen, vim ist es definitiv wert, gelernt zu werden. Ich habe es letzten Sommer aufgegriffen und es ist jetzt mein bevorzugter Editor für fast alles (Java ist eine Strecke, aber machbar, wenn ich keine umfassende Analyseunterstützung benötige). Wie jeder bereits bestätigt hat, ist es ein wunderbar effizientes Werkzeug.

Für das, was es wert ist, habe ich nur eine relativ kleine Teilmenge der Funktionen von vim (die ein oder zwei Tage gedauert haben) aus einem grafischen Tutorial und ein paar Kleinigkeiten von hier (lange gelesen) sowie die Such- und Ersetzungsfunktionen und ich gelernt war süchtig. Ich habe seitdem Dinge gelernt, aber in meiner Freizeit. Ich würde sagen, dass sich die Lernkurve an diesem Punkt abflacht, aber dann habe ich sie ziemlich stark genutzt und war von anderen umgeben, die es auch waren.


3

Ich bin in der gleichen Situation wie Sie und als Anfänger von Vim fand ich es ursprünglich ein wenig entmutigend - die Lernkurve scheint steil. Nach dem, was ich in nur wenigen Stunden gelernt habe, habe ich bereits das Gefühl, dass ich ohne es nicht leben kann.

Hier sind ein paar Links , dass ich gefunden habe , für nützlich Vim Screencasts , Ihnen zu zeigen , was es fähig ist.

Ein guter Ratschlag, den Bram Moolenaar (wohlwollender Diktator von Vim) in diesem letzten Link gegeben hat, ist, dass es ineffizient wäre, zu versuchen, jeden einzelnen Befehl und jede einzelne Funktion zu lernen. Finden Sie einfach heraus, was Sie tun, was nicht Arbeiten Sie sehr gut, suchen Sie nach einer Möglichkeit, es effizienter zu machen, und machen Sie es sich dann zur Gewohnheit.


3

Ja, nehmen Sie sich auf jeden Fall die Zeit, um zumindest ein bisschen 'vi' und 'vim' zu lernen. Es reist sehr gut.

Sie werden nie stecken bleiben, wenn Sie mit einem Kunden-Unix / Linux / Mac-System konfrontiert sind, für das Sie keine Installationsfunktionen haben. Selbst unter Windows (wenn Sie über Installationsfunktionen verfügen) ist 'Vim' kostenlos und einfach zu installieren. (Im Gegensatz dazu, dass Sie Ihre Lernkurve nur in etwas wie UltraEdit investieren, das Ihnen möglicherweise nicht immer als hervorragender Editor zur Verfügung steht ...).

Durch das Erlernen von vi können Sie andere Tools wie "sed" und "Regex" im Allgemeinen erlernen: Dinge, die im Allgemeinen übertragbar sind.

Und wenn du ein richtiger Geek sein willst, musst du nur 'vi / m' kennen oder du siehst aus wie ein Fälscher ;-)


2

Ich denke, es ist definitiv die Zeit und Mühe wert, vim zu lernen. Für mich ist das Schreiben und Navigieren in Text so effizient, dass ich mir kaum vorstellen kann, zu Emacs oder Strg / Umschalt / Alt / Meta-Tastenkombinationen zurückzukehren.

Lassen Sie sich nicht von all den ausgefallenen Funktionen von vim einschüchtern. Sobald Sie es genug benutzt haben, werden Sie herausfinden, welche Befehle Sie am häufigsten verwenden, und Sie werden herausfinden, welche Dinge Sie vergessen können.


2

Die erstaunliche Allgegenwart von Vim und die noch erstaunlichere Allgegenwart von Vi-Klonen im Allgemeinen auf Unix-Systemen allein reicht aus, um das Lernen wert zu machen.

Abgesehen davon ist das ganze Denken im Vi-Stil etwas, von dem ich wirklich denke, dass es mich ein bisschen produktiver gemacht hat. Für eine Person, die nicht an Modi wie den Befehlsmodus und den Einfügemodus gewöhnt ist, scheint es etwas übertrieben, einen Modus aufrufen zu müssen, um nur Text einzufügen. Aber wenn man Vim seit einigen Monaten verwendet und einige Tipps und Tricks gelernt hat, scheint Vim ein Vorteil zu sein, der sich zu lohnen scheint.

Natürlich sagt die Emacs-Menge dasselbe über das Denken im Emacs-Stil, aber ich habe das Erlernen von Emacs aufgegeben, weil Vim einfacher war und die Arbeit für mich erledigt hat.


2

Ich habe gelernt, vi zu mögen, nachdem ich jemanden beobachtet habe, der sehr gut damit umgehen konnte, um in einem wahnsinnig schnellen Clip Änderungen vorzunehmen. Sie können wirklich schnell damit codieren. Ein weiterer Grund, warum ich es mag, ist, dass ich manchmal finde, dass das Herumfahren in einer IDE nach einer Weile meine Hände wirklich verletzt und vi eine schöne Abwechslung bietet. Wie andere bereits erwähnt haben, ist es auch fast immer auf Unix-Systemen verfügbar und funktioniert auch bei miesen Verbindungen gut.

Eine Sache, die ich nicht erwähnt habe, ist, dass das Wissen um vi in ​​einigen Kreisen den zusätzlichen Vorteil von "Geek Cred" hat. Ich kann mir zumindest ein paar Leute vorstellen, die kichern, wenn sie sehen, dass ein neuer Programmierer nedit startet, um einige Änderungen an einer Datei vorzunehmen.


2

Lassen Sie sich von der Anzahl der Befehle nicht abschrecken, ich habe niemanden getroffen, der höchstens ein paar Dutzend verwendet hat. Ich finde es unverzichtbar, denn wenn ich an Code denke, denke ich an Text. Wenn ich an Mäuse denke, bringt mich das nur durcheinander. Ich denke, die großen Tricks sind, es ein wenig nach dem anderen zu lernen und nicht zu zögern, herumzuspielen - die Rückgängig-Funktionen sind großartig, um sein Verhalten zu erkunden.

Wenn Sie sich eingehend damit befassen, ist vim skriptfähig. Die Möglichkeiten sind buchstäblich endlos.

(Ja, all dies gilt auch für Emacs ...)


2

Ich war glücklich über meine Textpad- und Ecplise-Welt, bis ich anfangen musste, mit Servern zu arbeiten, die unter Linux laufen. Remote-Scripting und das Einrichten von Konfigurationsdateien waren erforderlich!

Am Anfang war es schwierig, aber jetzt kann ich meine Server einfach einrichten und optimieren.


2

Vielleicht möchten Sie vim lernen, weil Sie mit den bereits verwendeten Editoren möglicherweise nicht zufrieden sind.

Vielleicht möchten Sie vim lernen, weil viele Leute sagen, es sei cool. Schauen Sie sich nur an, wie viele Antworten Sie auf diese Frage haben.

Ich werde einen zusätzlichen Grund für das Lernen von vim angeben. Es ist bekannt für die Qualität und Vollständigkeit seiner Dokumente. So finden Sie die meisten Antworten auf Ihre Fragen im Hilfesystem, sobald Sie die richtigen Schlüsselwörter in Ihre Hilfeanfragen einfügen können.


2

Um vi (m) schnell zu lernen, muss man zuerst das gesamte Design verstehen. Vim hat eine große Auswahl an Cursorbewegungsbefehlen. Überprüfen Sie einige (X ist ein Zeichen, # eine Ziffer):

jk Pfeile eingeben 0 $ w W b B ctrolD crtolU ctrolE ctrolY HML fX FX tX TX ,; % gg G n N mX 'X' '

und viele mehr wäre es langweilig aufzuzählen. Viele von diesen unterstützen eine Zählung vor dem Befehl, wie 4j, um 4 Zeilen nach oben zu verschieben.

Zurück zum Entwurf geben Sie einen Befehl wie d zum Löschen gefolgt von einer Cursorbewegung ein. Der Befehl gilt für das Textstück von der Cursorposition bis zum Ende der Bewegung. Zum Beispiel bewegt sich H zum oberen Bildschirmrand, dH wird zum oberen Bildschirmrand gelöscht und cH wechselt (ersetzt) ​​zum oberen Bildschirmrand.

Dieses Design ist sehr leistungsfähig. Es reduziert oder organisiert auch, was Sie lernen müssen. Der erste Schritt besteht definitiv darin, einige Cursorbewegungsbefehle zu lernen. Sagen wir zuerst 8 oder 10. Dann sind Sie fast fertig.


2

Etwas Neues zu lernen ist immer die Mühe wert, IMHO. Ich schlage vor, Sie drucken einen Spickzettel aus und zwingen sich, ihn Tag für Tag zu verwenden.


Es gibt eine Geschichte auf Chinesisch, die besagt, dass jemand von einem Lehrer lernt, wie man Drachen schlachtet. Sobald er sein Studium abgeschlossen hat, kann er keine echten Drachen zum Schlachten finden. Ich sage nicht vi, aber es ist die Moral dieser Geschichte, dass manchmal etwas zu lernen nur Zeitverschwendung ist.
Earth Engine

2

Es lohnt sich auf jeden Fall, Vim zu lernen, um teilweise zusammenzufassen, was hier zuvor gesagt wurde. Dies sind die Hauptgründe:

  • Vi / Vim ist auf den meisten Unix-Systemen verfügbar.
  • Mit Vim können Sie einfach codieren, ohne die Hände von der Tastatur zu nehmen.
  • Wenn Sie planen, etwas in einem Unix-basierten System zu konfigurieren, werden Sie wahrscheinlich einige Konfigurationsdateien bearbeiten. Daher sollten Sie einen terminalbasierten Editor kennenlernen, von dem vim einer der besten ist (sorry emacs).
  • Vim kompiliert / hat Binärdateien für fast jedes Betriebssystem vorkompiliert. Sie müssen nicht "Ich brauche eine Textmate-Alternative für [OS einfügen]" posten, sondern haben stattdessen Vim!
  • Es gibt viele gute Plugins, um eine Menge Funktionen hinzuzufügen, wie z. B. CVS-Unterschiede im Editor, obwohl einige davon einiges an Basteln erfordern.

Nebenbei bemerkt, wenn Sie feststellen, dass Ihnen die Vim-Tastenkombinationen gefallen, gibt es auch IDEs, die VIM-Bindungen in ihren Editoren für einfache Befehle enthalten, z. B. Komodo Edit .

Wenn Sie Hilfe beim Erlernen von Vim benötigen, geben Sie "vimtutor" in Ihr Terminal ein und befolgen Sie die Anweisungen. Es gibt auch ein Buch, das besonders gut Hacking Vim ist


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.