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?
ide
vim
comparison
Casebash
quelle
quelle
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.
quelle
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.
listet jede Zeile auf, die den Text "TODO:" enthält
Ändere 'Mickey' in 'Minnie' in jeder Zeile, die auch das Wort 'Mouse' enthält
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:
quelle
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.quelle
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.
quelle
^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.quelle
=
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
quelle
Der
c
Befehl. Zum Beispiel,ci"
um Anführungszeichen zu ändern.cw
um das Wort zu ändern. Viele praktische Tricks dabei.quelle
Der
.
Befehl. Es wiederholt den letzten Befehl.quelle
Esc ! }
verschiebt den aktuellen Absatz in einen Befehlszeilenfilter wiefmt
oderwc
oderwhich
und gibt die Ergebnisse an den Editor zurück.quelle
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.
quelle
:!/bin/bash
. Ich benutze:!
ziemlich häufig.:sh
Damit kann ich
hjkl
den Cursor bewegen, ohne die Startzeile der Tastatur verlassen zu müssen. Ich habe die meisten Programme (wie z. B. PDF-Reader), mit denen Sie die Tastenkombinationen ändern und Vim-Bewegungstasten zum Scrollen usw. verwenden können.quelle
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).
quelle
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.
quelle
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
quelle
Tabellenspaltenauswahl
Dies scheint nicht in den populären IDEs zu sein, und wenn es so ist, halten sie es gut versteckt. Dies ist sehr praktisch, um reguläre Ausdrücke anhand einer Spalte in einer CSV-Datendatei zu testen.
quelle
Bei den meisten IDEs können Sie den Bildschirm nicht teilen. Ich liebe diese Funktion in VIM.
quelle
<C-w>