Autor des ursprünglichen Beitrags in russischer Sprache: varanioMöglicherweise haben Sie kürzlich einen
Artikel gelesen, in
dem darauf hingewiesen wird, dass vim im Gegensatz zu IDEs aufgrund ihrer angeblich geringen Schreibgeschwindigkeit
großartig ist .
Erinnern wir uns, dass die Hauptbotschaft dieses Artikels war, dass die Killer-Funktion von vim in seinen Modi besteht, die alles andere in den Schatten stellen. Der Autor räumte jedoch ein, dass IntelliJ IDEA und andere IDEs Hotkeys und andere Benutzererfahrungen bieten, die einfach verwendet werden können. Da ihnen jedoch die Modi fehlen, sollte vim die erste Wahl für alle sein.
Der Autor schlägt dann vor, dass es einfacher ist, Esc, e zu drücken und dann zum
i
Bearbeitungsmodus zurückzukehren, anstatt
ctrl+arrows
zu
ctrl+arrows
, um zwischen Wörtern zu wechseln. Verständlicherweise all diese Probleme, weil der Autor es
unpraktisch findet, die ctrl
zu halten .
Ich weiß, dass Artikel, die vim kritisieren, viele negative Stimmen bekommen, aber ich muss mich nur aussprechen.
Sind Ihre Codezeilen so lang, dass Ihr Finger müde wird, wenn Sie den Schlüssel so weit halten, dass Sie wirklich Modi benötigen? Ich kann es bekommen, wenn Sie eine lange Konstante eingeben - in diesem Fall können Sie die Feststelltaste drücken und den Namen eingeben. Selbst dann drücke ich diese Taste kaum öfter als einmal im Jahr. Aber den Modus hin und her zu wechseln, um ein paar Wörter vorwärts zu kommen, geschweige denn die Killer-Funktion dieses Vims zu nennen, klingt ein bisschen langwierig.
Übrigens können Sie in IntelliJ IDEA die Groß- und Kleinschreibung eines Wortes (oder des ausgewählten Textes) mit einer Taste ändern, sodass auch die Feststelltaste nicht unbedingt erforderlich ist.
Ich gebe zu, dass vim gut zum Bearbeiten von Konfigurationsdateien auf einem Remote-Server geeignet ist. Vim eignet sich auch hervorragend für neue Sprachen, mit denen JetBrains noch nicht herumgespielt hat. Das Schreiben von benutzerdefinierten Plugins ist für vim einfacher (in 99% der Fälle benötigen Sie diese jedoch nicht mit einer geeigneten IDE). Vielleicht ist es bequemer, lange Texte zu bearbeiten. Das ist aber für die industrielle Standardcodierung irrelevant!
Ich sollte hier sofort einige Punkte erwähnen.
Vim kann in eine Art IDE verwandelt werden, indem Plugins installiert und Hotkeys zum Bedienen dieser Plugins erlernt werden
Es kann zwar, aber warum sollte sich jemand die Mühe machen?
Es scheint eine seltsame Herausforderung zu sein, wenn man bedenkt, dass IDEs alles haben und eine viel benutzerfreundlichere Erfahrung bieten. Sie müssen keine Maus benutzen, das verspreche ich!
Lassen Sie mich die Sache mit der Bearbeitung ohne Maus anhand eines Beispiels erklären. Ich öffne zuerst IntelliJ IDEA und erstelle eine neue Datei.
Ich drücke p und die IDE fordert mich sofort mit einem Vorschlag für das Wortpaket auf. Ich muss nur die Eingabetaste drücken, um das Wortpaket in den Text im Editor einzufügen.
Dann drücke ich
c
und die IDE schlägt sofort Unterricht vor.
Ich gebe den Namen der Klasse ein (z. B.
Habr
), tippe die geschweifte Klammer
{
und die IDE vervollständigt automatisch die schließende Klammer direkt hinter dem Cursor.
Dann tippe ich pu und die IDE versteht, dass es wahrscheinlich öffentlich ist. Ich tippe
H
und drücke die
Enter
, um Habr zu erhalten, da die IDE bereits weiß, dass ich einen Konstruktor erstellen möchte.
Ich schreibe den Body des Konstruktors, z. B. rufe ich die Methode init () auf, die noch nicht vorhanden ist. Meine IDE hebt es mit roter Farbe hervor, was darauf hinweist, dass diese Methode nicht existiert. Sobald ich
alt-ENTER
drücke, fügt die IDE das Code-Snippet an der richtigen Stelle ein:
private void init() { }
Wenn ich zufällig
new Habr(5)
in diese Methode eingebe (das Wort Habr wurde natürlich auch dazu aufgefordert), d. H. Wenn ich versuche, einen nicht vorhandenen Konstruktor aufzurufen, wird IntelliJ IDEA dieses Bit sofort unterstreichen, also drücke ich einfach
<alt-ENTER>
und wählen Sie aus, was genau ich tun möchte: ob dem Konstruktor ein int-Argument hinzugefügt oder ein neuer Konstruktor mit einem int-Parameter hinzugefügt werden soll. Ich wähle die letztere Option und die IDE fügt sofort nach der ersten einen neuen Konstruktor hinzu:
public Habr(int i) { }
Ich werde die automatische Einrückung und andere Funktionen, die Ihnen beim Bearbeiten des Codes helfen, nicht erwähnen, da sie natürlich vorhanden sind.
Folgendes habe ich am Ende bekommen:
package x; class Habr { public Habr() { init(); } public Habr(int i) { } private void init() { new Habr(5); } }
Ich habe nur ein paar Tasten und den Hotkey
<alt-ENTER>
gedrückt.
Ich habe keine Plugins installiert.
Ich musste einen Monat lang nicht trainieren, um dies tun zu können.
Ich habe die Maus nie berührt (ich habe hier die Feststelltaste verwendet, nicht weil ich wie ein Trottel schreien wollte, sondern weil es Spaß gemacht hat, die Funktion auszuprobieren).
Ich habe nicht in einen Modus gewechselt und musste keine Tasten- oder Knopfkombinationen abrufen. Das einzige, das ich verwendet habe, war
<alt-ENTER>
(aber das war eine kontextabhängige Sache, eine Art Hotkey zum Lösen von Problemen).
Wenn Sie es hassen, die Maus zu benutzen, können Sie mit speziellen Hotkeys durch den Code navigieren, z. B. um zur richtigen Klasse, Datei, Methode, Zeilennummer usw. zu springen.
Sie können Text auswählen, indem Sie wiederholt
<ctrl-W>
, um das aktuelle Wort, den aktuellen Text zwischen den geschweiften Klammern usw. auszuwählen.
Mit Vim können Sie zu einem bestimmten Charakter springen. Sie können beispielsweise zu einem Buchstaben x in der Textzeile gelangen, ohne die Maus zu berühren. Eine IDE bietet Ihnen diese Möglichkeit jedoch auch, indem Sie
<ctrl-f>
und den erforderlichen
<ctrl-f>
eingeben. Dies ist übrigens auch eine Art Modus. Es heißt Suchmodus, duh!
Ich brauche auch nicht die Maus, um zum richtigen Funktionsaufruf zu springen, und dann wieder ohne die Maus (drücken Sie
ctrl-b
), um zur Beschreibung dieser Funktion zu springen.
Vim verfügt über mehrere einzigartige sofort einsatzbereite Bearbeitungsfunktionen, die in IDEs fehlen
- Fahren Sie mit dem nächsten / vorherigen Absatz fort.
Ja, es klingt nach einer nützlichen Funktion für eine IDE. Aber eher zum Bearbeiten von Artikeln für Habr als zum eigentlichen Codieren. - Gehen Sie zum nächsten Leerzeichen.
Nun, Sie können es eine nützliche Funktion nennen, aber nicht zu cool. Das wiederholte Drücken von ctrl+arrows
erzeugt den gleichen Effekt. - Springe eine halbe Seite nach oben / unten.
Ich habe noch nicht entschieden, ob ich diesen für irgendetwas brauche. - Springe zur ersten / letzten / mittleren Zeile auf dem Bildschirm.
Ich verstehe nicht wirklich, wofür das ist. Das heißt, es mag einige Zeit nützlich sein, aber es ist keineswegs eine Killer-Funktion. - Es ist möglich, genau N Codezeilen zu löschen.
Ja, richtig, ich mache das jeden Tag. Jeder muss von Zeit zu Zeit genau 19 Codezeilen löschen, oder?
Ich bin in keiner Weise ein Vim-Guru, daher habe ich möglicherweise einige wichtige Aspekte übersehen. Bitte teilen Sie Ihre Gedanken im Kommentarbereich. Ja, natürlich gibt es noch zig Millionen Plugins. IDEs haben sie aber auch und in vergleichbaren Mengen.
Zusammenfassung
Hier ist mein eigenes Mitnehmen davon. Ich werde mich bei der Code-Bearbeitung von vim fernhalten, egal was Sie sagen. Ich war nicht sehr beeindruckt von der Verwendung von Modi anstelle von Strg oder sogar
ctrl-alt-shift
. IDEs bieten Ihnen mehr sofort einsatzbereite Funktionen, ohne dass Sie eine Weile mit dem Erlernen und Zuweisen von
Hotkeys verbringen müssen. Die meisten alltäglichen Aufgaben können mit einer IDE erledigt werden, indem nur ein paar Hotkeys gelernt werden. Sie können sie sogar ganz überspringen, wenn Sie mit der Maus zufrieden sind.
Es ist seit langem bekannt, dass ein Programmierer mehr Zeit benötigt, um Code zu lernen, als ihn tatsächlich zu schreiben. Ob Sie also Ihre Maus verwenden oder nicht, macht keinen großen Unterschied. Lassen Sie mich jedoch wiederholen, dass Sie mit IDEs fast alles (wenn nicht alles) ohne Maus ausführen können.
Vim funktioniert besser als Nano für die Remote-Bearbeitung von Konfigurationsdateien auf einem Server, sofern die folgenden Bedingungen erfüllt sind:
- Sie müssen einen guten Griff haben.
- Sie müssen industrielle Mengen von Konfigurationsdateien bearbeiten, um den Vorteil zu spüren. Wenn Sie nur ein- oder zweimal im Monat Änderungen an einer Konfigurationsdatei vornehmen müssen, funktioniert nano oder irgendetwas anderes gut.
Sie können anfangen, mich abzustimmen oder, noch besser, Ihre Gegenargumente vorzubringen :).