Ich überlege, ob ich VIM anstelle einer IDE wieder verwenden soll. Was sind die nützlichsten Funktionen von VIM, die in einer IDE nicht Standard sind?
emacs
stattdessen anfangen zu verwenden . ;-)
Ich überlege, ob ich VIM anstelle einer IDE wieder verwenden soll. Was sind die nützlichsten Funktionen von VIM, die in einer IDE nicht Standard sind?
emacs
stattdessen anfangen zu verwenden . ;-)
Antworten:
Ich denke nicht, dass es unbedingt die erweiterten Funktionen von VIM sind, die es so leistungsfähig machen. Es ist die Tatsache, dass Sie nie die Hände von der Tastatur nehmen müssen, um etwas zu tun. Das Auffinden eines Objekts in einer riesigen Datei ist so einfach wie ein paar Tastatureingaben. Das Öffnen und Schließen mehrerer Dateien im selben Fenster ist ebenfalls unglaublich schnell.
Obwohl es auf den ersten Blick nicht intuitiv zu sein scheint, ist es Ihre Zeit wert. Auch wenn Sie es nicht als Standard-IDE verwenden (ich verwende im Allgemeinen beispielsweise Visual Studio oder Eclipse), können Sie VIM zum schnellen Öffnen und Bearbeiten von Dateien verwenden, da es viel schneller ist als das Warten auf die IDE Belastung.
Investieren Sie die Zeit, um zu lernen, wie man VIM richtig einsetzt und Sie werden es nie bereuen. Ich würde sagen, es ist vergleichbar mit dem Erlernen des Berührens.
Für mich ist das :global
Kommando eine Killer-App. Es führt beliebige vim-Befehle in jeder Zeile aus, die mit einem regulären Ausdruck übereinstimmt (oder nicht übereinstimmt).
Hier sind einige Beispiele:
Das Standardverhalten besteht darin, jede übereinstimmende Zeile aufzulisten.
:g/TODO:/
listet jede Zeile auf, die den Text "TODO:" enthält
Ändere 'Mickey' in 'Minnie' in jeder Zeile, die auch das Wort 'Mouse' enthält
:g/Mouse/ s/Mickey/Minnie/
Die Befehle können einen eigenen Bereich haben, daher wird dieser von jeder Zeile mit "TODO:" zur nächsten leeren Zeile gelöscht:
: g / TODO: /., / ^ $ / d
Verwenden Sie: g! in jeder Zeile ausführen, die NICHT mit dem regulären Ausdruck übereinstimmt, z. B. "emacs" durch "vim" ersetzen, außer in Zeilen, die das Wort "sucks" enthalten:
:g!/sucks/ s/emacs/vim/
Ich finde die Möglichkeit, alles zwischen einer Reihe gepaarter Symbole zu löschen, unglaublich nützlich. Zum Beispiel werde ich ziemlich oft feststellen, dass ich eine Zeichenfolge im Code ersetzen möchte. Wenn sich di"
der Cursor im Block befindet, wird die Zeichenfolge gelöscht, wobei ""
der Cursor zwischen die beiden Anführungszeichen gesetzt wird. da"
tut dasselbe, löscht aber auch die Anführungszeichen.
ci"
löscht und versetzt den Cursor in den Einfügemodus, sodass Sie sofort mit dem Schreiben beginnen können.
'Keyword-Vervollständigung im Einfügemodus'. Strg-P und Strg-N im Einfügemodus, um den Text zu durchsuchen und den eingegebenen Variablennamen zu vervollständigen. Ich habe das noch nie in einer anderen IDE gesehen und ich vermisse es wirklich. Die Code-Vervollständigung in IDEs ist einfach nicht dasselbe.
^X^O
omni-completes im Einfügemodus, wenn Sie es aktiviert haben. Aber Sie haben Recht, ich verwende die Keyword-Vervollständigung weit mehr als nur omni-complete.
Ein weiteres Feature, das ich unglaublich nützlich finde, ist die Möglichkeit, den Einzug zu ändern. :15,30>>
rückt alle Zeilen von 15-30 (einschließlich) zweimal ein, während :15,30<<
dieselben Zeilen zweimal rückt.
=
es genauso, wenn nicht sogar nützlicher als <<
und >>
.
den Befehl dd (aktuelle Zeile löschen). Ich benutze diesen so oft.
Es ist auch wunderbar, etwas wie 3dd eingeben und die nächsten 3 Zeilen löschen zu können. Ich habe das noch nie in einem anderen Editor gesehen = D
Der .
Befehl. Es wiederholt den letzten Befehl.
Schneller Zugriff auf die Befehlszeile. Mit STRG + Z oder: wqa erhalte ich in weniger als 1 Sekunde eine Befehlszeile, ohne dass meine Hand die Tastatur verlässt.
:!/bin/bash
. Ich benutze :!
ziemlich häufig.
:sh
Dies ist ziemlich schwer zu beantworten, etwas aufgrund der Unbestimmtheit der Frage und der Tatsache, dass sich IDEs unterscheiden und viele Funktionen bieten, die andere nicht bieten (und die Tatsache, dass ich nur einige von ihnen habe).
Was Vim jedoch meiner Meinung nach von anderen Editoren unterscheidet (ja sogar von Emacs in diesem), ist, dass es wirklich ein großartiger Editor ist . Ich habe im Laufe der Zeit viele Editoren verwendet und kann ehrlich sagen, dass nur sehr wenige so umfassende Funktionen für die Textbearbeitung bieten wie Vim.
Meine Art, Text zu manipulieren, besteht zum Beispiel darin, sehr oft (Zeile / Auswahl mehrerer Zeilen) zu duplizieren und (Zeile / Auswahl mehrerer Zeilen) nach oben und unten zu verschieben, wofür ich vor langer Zeit Schnellzugriffe definiert habe. Ich vermisse diese Funktionen in den meisten IDEs (obwohl ich gehört habe, dass ReSharper für VS etwas Ähnliches hat).
Wussten Sie, dass es ein vi-Plugin für Eclipse gibt ? Es kostet 15 Euro, aber es ist es wert. Nicht mehr dd
mitten in einem Dokument und es fehlen all die kleinen nützlichen Dinge.
Vielleicht ein bisschen abseits des Themas, aber ich dachte, es lohnt sich darauf hinzuweisen.
Abhängig davon, welche Sprache Sie programmieren, bleiben Sie bei der Idee oder holen Sie sich die Idee, die die meisten Refactorings bietet, die Sie finden können. Maximieren Sie die Refactorings in Eclipse oder Netbeans.
Wir sollten von der Manipulation von Text zur Manipulation von Code übergehen. Mit Refactoring-Tools haben Sie diese Möglichkeit. Wenn vim Ihnen alle Funktionen bietet, möchte ich mich nicht mehr wirklich mit einem Texteditor befassen
Bei den meisten IDEs können Sie den Bildschirm nicht teilen. Ich liebe diese Funktion in VIM.
<C-w>