Warum Pfeiltasten in Vim nicht empfohlen werden

125

"Benutze niemals Pfeiltasten in Vim!"

Ich hörte das von einem zufälligen Sprecher, hatte aber keine Gelegenheit, ihn zu fragen, warum. Wie können Sie den Cursor im Einfügemodus bewegen, wenn Sie die Pfeiltasten nicht verwenden ?

Yoland Yan
quelle
6
Die historischen Antworten auf diese Frage sind interessant. Die religiösen diatribes weniger.
Isaac Rabinovitch
5
Gute Frage. Das nervt mich immer über vi [m], als Dvorak-Tastaturbenutzer ist das wirklich beschissen!
Mittwoch,
32
Ich erinnere mich, als ich vi vor vielen Jahren zum ersten Mal verwendete, riet mir ein älterer Kollege: "Stellen Sie sicher, dass Sie lernen, die Tasten h, j, k und l zu verwenden, da Sie eines Tages auf einem Computer an einem Client-Standort landen, an dem der Pfeil steht Schlüssel funktionieren nicht und du siehst aus wie ein kompletter Kopf, wenn du nicht mal vi arbeiten kannst. "
Ergwun
1
Im Einfügemodus können Sie den Cursor weiterhin mit Strg-O und einem normalen Modusbefehl bewegen, und er kehrt in den Einfügemodus zurück. Überprüfen Sie auch STRG-G STRG-J und STRG-G STRG-K, wodurch der Cursor in der Spalte, in der Sie mit dem Einfügen begonnen haben, in die nächste und vorherige Zeile verschoben wird.
Benoit
1
Ich habe im Laufe der Jahre eine Menge schlechter Lebensgewohnheiten entwickelt. Ich denke, ich muss es über eine sehr langsame Verbindung verwenden, um mich zu zwingen, bessere Gewohnheiten zu verwenden.
Aidan

Antworten:

172

Das Verwenden der Pfeiltasten wird als schlechte Angewohnheit angesehen, da Sie bei Verwendung der Pfeiltasten wahrscheinlich viele der schönen Funktionen von vim verpassen.

Wenn Benutzer vim zum ersten Mal verwenden, bleiben sie in der Regel im Einfügemodus, da dies eher der herkömmlichen Textbearbeitung ähnelt. Um in vim effektiv zu sein, sollten Sie sich jedoch nur dann im Einfügemodus befinden, wenn Sie tatsächlich Text eingeben. Wenn Sie den Cursor bewegen möchten, sollten Sie sich im normalen Modus befinden. Sie sollten sich standardmäßig so ziemlich im normalen Modus befinden.

Im normalen Modus gibt es eine Million Shortcuts zum Bewegen. Mit können Sie hjklsich jeweils um eine Stelle bewegen, oder Sie können sich nach Wörtern, Absätzen usw. bewegen. Wenn Sie sich im normalen Modus befinden, ist es sinnlos, die Pfeiltasten zu verwenden, anstatt dass hjklsie weiter entfernt sind.

Es gibt die Einstellung, dass, wenn Sie die Pfeiltasten verwenden, Sie vim "falsch" verwenden. Die Wahrheit ist, dass vim eine wirklich sehr steile Lernkurve hat, also tue, während du lernst, was auch immer dich gesund hält. Als ich anfing, vim zu benutzen, habe ich alles "falsch" gemacht und ich hatte keine Probleme damit, die Gewohnheiten zu brechen, als ich mehr von vims Befehlen gelernt hatte.

Als Beispiel, als ich anfing, sagte ich, ich wollte den Text in Anführungszeichen ändern:

String mystring = "I want to change this";

Ich würde in den Einfügemodus wechseln, mit den Pfeiltasten ans Ende der Zeichenfolge gehen, die Rücktaste drücken, bis die Zeichenfolge verschwunden ist, und den neuen Text eingeben.

Ein viel besserer Weg ist, den Cursor irgendwo in die Zeichenkette zu setzen (normaler Modus) und dann zu drücken ci". Das wird change in ". Es löscht alles zwischen den Anführungszeichen und versetzt Sie in den Einfügemodus, damit ich den neuen Text eingeben kann.

Dean
quelle
4
@ott-- ci<und ci)arbeiten auch, und Sie müssen Ihre Hand nicht von der Tastatur zur Maus bewegen. Wenn Sie zum Anfang der Klammern navigieren und dann den Inhalt ändern möchten, f(ci(funktioniert das.
Matthew Finlay
6
"Setzen Sie Ihren Cursor irgendwo in die Zeichenfolge" - und wieder, während Sie im Einfügemodus die Pfeile verwenden würden, um dorthin zu gelangen, könnten Sie im normalen Modus die /wantEingabetaste drücken, um auf dem Wort "wollen" zu landen, und dann tun ci".
Nathan Long
8
Hey das ist ordentlich! Was für eine schnelle und leistungsstarke Möglichkeit, den Cursor zu bewegen. Die einzige Möglichkeit, dies zu verbessern, besteht darin, auf magische Weise darauf hinzuweisen, wo Sie den Cursor haben wollten, und ihn einfach dorthin zu springen. Vielleicht können wir etwas erfinden. Ich denke, wir sollten es eine "Maus" nennen.
Matthew Scouten
18
@MatthewScouten Niemand behauptet, dass vim einfacher ist als eine Maus. Mit ein bisschen Übung ist es jedoch viel, viel schneller. Das Verwenden einer Maus ist wie Zeigen und Grunzen, um Ihren Standpunkt zu verdeutlichen. Vim lässt dich in ganzen Sätzen sprechen.
Dean
4
Gewohnheiten zu brechen ist eine gute Antwort - aber jemanden gewaltsam von einer normalen Aktivität abzuhalten, ist faschistisch. Schlimmer noch, die Verwendbarkeit von ( hjkl): Mapping upund down2 Tasten, die vertikal nicht voneinander zu unterscheiden sind, geschweige denn von den linken und rechten Tasten ..... es ist eine tragische Demonstration der ideologisch verblendeten Arroganz.
New Alexandria
93

Schlüsselplatzierung

Kurz gesagt, Vimverwendet die hjklTasten als Navigationsoberfläche, da es ein Überbleibsel des alten "ADM-3A" -Terminals ist, das diese Tasten mit Pfeilen markiert hatte.

Tastatur

Da vimes von abgeleitet ist vi, werden die gleichen hjkl-Schlüssel verwendet.

Neue Gewohnheiten

Der buchstabenbasierte Ersatz für die Pfeiltasten ermöglicht es Ihnen, durch den Text zu navigieren, ohne die Standard-Schreibkonfiguration zu verlassen . Dies ist wahrscheinlich effizienter und schneller als das Drücken der Pfeiltasten mit der Hand. Wie in Referenz 2 (siehe Ressourcen) dargelegt, ist dies nicht das Ende der Vorteile: VIM verfügt über viele andere Verknüpfungen, auf die Sie zugreifen können, ohne die Hände zu bewegen.

Ressourcen und Einfügemodus

Es gibt ein paar sehr detaillierte und genaue Antworten auf die beiden Teile Ihrer Frage: In Bezug auf den Austausch von Pfeiltasten habe ich schnell und zusammenfassend geantwortet. Für Ihre Einfügefrage lesen Sie bitte die unten aufgeführten Ressourcen.

Christian Stewart
quelle
2
Ganz zu schweigen davon, dass die Tasten hjkl viel effizienter sind, als die Hände auf die Pfeiltasten zu bewegen.
Sixtyfootersdude
2
Dies beantwortet nicht die Frage, erklärt nur, warum hjkl gewählt wird.
Matsemann
3
Dies ist eine wahre und interessante Geschichte, aber das OP fragt, wie Sie den Cursor im Einfügemodus bewegen . hjklFunktioniert nicht im Einfügemodus. Wie ist die Antwort auf die Frage?
LarsH
3
@Kruug, der erste Teil der Frage ist, warum jemand gesagt hat, niemals Pfeiltasten in vim zu benutzen. Die Tatsache, dass Sie hjklin vim verwenden können, sagt nicht aus, warum jemand niemals Pfeiltasten verwenden sollte, ebenso wie die Tatsache, dass ich mit dem Fahrrad zur Arbeit fahren kann, nicht erklärt, warum jemand mir sagen würde, niemals zu joggen.
LarsH
1
Jetzt verstehe ich, warum Vim den Einfügemodus mit Escape beendet ^^ Cooles Bild!
Étienne
56

Dieses blöde Mantra wird oft von Berührungsschreibern wiederholt, für die die Ausgangsreihe wie eine zweite Wirbelsäule ist, oder von Nichtberührungsschreibern, die cool aussehen möchten. Für Nichtberührungsschreiber ist die Startreihe einfach nicht so besonders und ein leichtes Bewegen der rechten Hand zum Erreichen der Pfeile ist überhaupt kein Problem.

Was zu berücksichtigen ist, ist, was die Leute, die dieses Mantra wiederholen, vorschlagen, stattdessen zu verwenden.

Die meiste Zeit bestehen sie auf die Verwendung hjkl.

Wenn wir die Tatsache auslassen, dass diese Tasten nur verwendet werden, weil die vom Autor von vi verwendete Tastatur keine physischen Pfeiltasten hatte und daher jedes Argument gegen die Pfeiltasten nur eine Rationalisierung ist, hjklsind sie ohnehin nur unwesentlich besser als die Pfeile. Ja, der einzige Vorteil der Verwendung hjklüber den Pfeilen besteht darin, dass Sie diese kleine Bewegung der rechten Hand von und zu den Pfeilen überspringen. Ob dieser Vorteil die Mühe wert ist, ist Ihr Anruf.

Diese Bewegung der rechten Hand ist jedoch nicht der Grund, warum es ineffizient ist, nur die Pfeile zu verwenden. Dies ist ineffizient, da Sie sich nicht zeichenweise und zeilenweise bewegen können, während die meisten Bewegungen, die zum Bearbeiten von Text erforderlich sind, einen viel größeren Bereich haben.

Dreizehnmaliges Hämmern des rechten Pfeils ist ineffizient und langweilig. Ist es so besser, den lSchlüssel 13 Mal zu hämmern ? Nein, es ist genauso dumm.

Halten Sie den rechten Pfeil gedrückt, bis Sie Ihr Ziel erreichen. Dies ist weniger langweilig, aber fehleranfällig und fast so ineffizient wie 13 Treffer, da am Ende eine notwendige und nicht deterministische Verlangsamung eintritt. Ist es , dass besser zu halten lTaste gedrückt? Nein natürlich nicht.

Zum Glück bieten die meisten GUI-Toolkits Kombinationen wie diese Ctrl+Right, mit denen wir Wort für Wort wechseln oder zu EOL, zum nächsten Absatz oder was auch immer springen können. Mithilfe dieser Verknüpfungen können wir viel schneller und intelligenter navigieren als mit einzelnen Pfeilen. Haben wir das gleiche mit hjkl? Nein, das machen wir nicht. Wir können eine Zählung verwenden, wenn wir wollen, aber wer möchte die Zeichen für jede Bewegung zählen? 14kMit Hilfe von zu tun relativenumberist toll, aber was ist mit horizontalen Bewegungen? Bei großen Bewegungen hjklsind sie eigentlich schlechter als Modifikatoren + Pfeile. Und rate was? Große Bewegungen sind das, was wir am meisten brauchen.

Aber wir Glück Bastarde sind, hat unsere bevorzugten Editor Dutzende von Bewegungen , die Kreise um sowohl die Pfeile laufen und hjkl : bBeEwW/?*#{}()und so weiter. Diese Befehle sind unermesslich mächtiger als hjklund zum größten Teil viel logischer und intuitiver, wenn Sie es gewohnt sind Ctrl+Rightund Freunde sind.

Das Umschalten von <Right><Right><Right><Right><Right><Right><Right><Right><Right>auf llllllllloder sogar 9list lächerlich sinnlos.

Das Umschalten von <Right><Right><Right><Right><Right><Right><Right><Right><Right>auf <C-Right>ist um ein Vielfaches besser. Von dort aus ist der Wechsel zu weinfach und schnell. Keine Notwendigkeit für <nop>Ihre Pfeile!

Wenn diese Befehle nützlicher, leistungsfähiger und intuitiver sind als hjkl, warum bestehen dann so viele Blogger und Kommentatoren darauf, die Pfeile durch zu ersetzen hjkl?

Ich habe. Keine Ahnung.

Fazit: hjklPlatzieren Sie sich in unserem Werkzeuggürtel, denn wir müssen uns immer um 2 Zeichen oder Zeilen bewegen, aber es handelt sich meistens um den Baum, der den Wald verbirgt. Seien Sie vorsichtig mit Menschen, die gegen die Pfeile predigen: Was sie für Sie auf Lager haben, ist vielleicht überhaupt nicht besser.

romainl
quelle
Zuerst dachte ich, du würdest sagen, dass 'hjkl' nutzlos ist, aber gute Wort- / Absatz- / Satzbewegungen sind viel nützlicher als das Mantra in Bezug auf die Bewegung einzelner Zeichen.
Xavier T.
1
Vielen Dank. Ich hatte neulich eine ähnliche Diskussion über HN, die wegen der schlechten Formulierung entgleist. Sich auf etwas zu konzentrieren hjkl ist nutzlos, aber hjklnützlich.
Romainl
5
Gleiches gilt hier: Am Ende hat mir Ihre Antwort gefallen, aber ich denke, der Tonfall hat sich als unnötig lautstark / trollend / flammend erwiesen.
UncleZeiv
Nennen Sie sie nicht nutzlos, das Argument der Geschwindigkeit ist gut, und die Art und Weise, wie HJKL mit anderen VIM-Befehlen zusammenarbeitet, wie es die Pfeiltasten nicht tun, ist ebenfalls wichtig.
Aviator45003
@TC Irgendwelche Beispiele, um die ganze Debatte interessanter zu machen?
Romainl
18

Andere haben beschrieben, warum andere Wege zum Bewegen des Cursors bevorzugt werden, aber es wurde wenig gesagt, um die Frage zu beantworten, warum es als eine schlechte Idee angesehen wird, Pfeiltasten zu verwenden.

Ich denke, der Hauptgrund (und @Squeezy spielt etwas darauf an) ist, dass in den Tagen von Terminals wie dem VT100 Pfeiltasten eine Escape-Sequenz erzeugt haben , die vom laufenden Programm interpretiert wurde. (Da die Pfeiltasten in ASCII nicht dargestellt werden, muss die Eingabe der Pfeiltasten auf eine "spezielle" Art und Weise erfolgen.) Die Escape-Sequenz war in der Regel so ähnlich

ESC [ A

Dies hängt von den Eigenschaften Ihres Terminals, Ihrer Verbindung und Ihrem Cursormodus ab . Wenn Ihre Shell oder Ihr Programm nicht richtig für das Terminal konfiguriert wurden, würden sie die Escape-Sequenz nicht als Pfeiltaste verstehen.

Wenn ich mich an einem College über VT100-Terminals bei Ultrix anmeldete und im Einfügemodus einen Pfeil drückte, wurde ESCdies als "Verlassen des Einfügemodus" [ Ainterpretiert , und die folgenden Befehle wurden als Normalmodus-Befehle interpretiert . Offensichtlich nicht das, was der Benutzer will oder erwartet!

Heutzutage scheint die Handhabung von Terminals und Pfeiltasten robuster zu sein, insbesondere in GUI-Umgebungen. Bei der Verwendung von vim über SSH oder Telnet treten jedoch dieselben Probleme auf.

LarsH
quelle
14

Das Verwenden der Pfeiltasten ist verpönt, da Sie bei Verwendung des QWERTZ-Layouts Ihre Finger aus der Startzeile und bei Verwendung von Dvorak oder einem anderen Layout aus dem Zeichenblock (?) Bewegen müssen.

pdoherty926
quelle
4
Beeindruckend. Ernsthaft? Ich möchte das nicht glauben, da dies bedeuten würde, dass die Leute, die Vim entwickelt haben, glauben, dass ihre Benutzer mehr Zeit mit dem Tippen verbringen als mit dem Nachdenken.
Renan
13
Warum muss man denken, wenn man seine Hand bewegt?
EBGreen
8
Nun, als ich es in der Schule machen musste, musste man esc drücken, bevor man die hjkl-Navigation benutzen konnte, also hatte man bereits die linke Hand aus der Startreihe genommen, um den kleinen Finger auf Esc zu bringen. Ich erinnere mich, dass Sie, um ein Leerzeichen zurück zu gehen und ein Zeichen einzufügen, 'Esc: hi' eingeben und dann das Zeichen eingeben mussten, das Sie einfügen wollten. das ist nicht so hilfreich.
Frank Thomas
1
@Renan - Sie gehen davon aus, dass "Tippen" "Einfügen von Text" bedeutet. Ich habe meine Finger in der Startzeile, wenn ich lese und nachdenke, denn auf der Tastatur navigiere ich in Vim: suche nach Bewegungen, öffne andere Dateien, um Code zu vergleichen, hüpfe herum, um Rechtschreibfehler zu korrigieren usw.
Nathan Long
2
@Renan - 1) Sie unterschätzen die Einsparungen und 2) kleine Dinge summieren sich. Ich habe gesehen, wie Vim-Power-User mit der 10-fachen Geschwindigkeit anderer Entwickler tippten. Bei ausreichender Geschwindigkeit wird die Bearbeitung automatisch und unterbricht weder die Gedanken noch den Fluss. Es ist ein Vergnügen, auf diese Weise zu arbeiten, so dass mein Boot schwimmt, aber ich wette, es ist ein größerer Produktivitätsschub als Sie denken. Schauen Sie sich beispielsweise Programmierer wie Gary Bernhardt an.
Nathan Long
10

Die Pfeiltasten weisen ein Problem auf - es war bereits bei langsamen Verbindungen bekannt, wie bei einem 1200-Baud-Modem. Der Pfeil entspricht einer ESC-Sequenz ESC a. Wenn die Zeit zwischen ESC und a zu lang wird, hören Sie am Ende ein BEL (oder einen Blitz), gefolgt vom Anfügemodus. Dies wird bei den hjklTasten nicht angezeigt.

ott--
quelle
Ich denke, ESC [ Aworauf beziehen Sie sich?
LarsH
2
ESC [ Aist ein DEC VT-100-Anschluss (der ANSI-Anschluss war stark vom DEC VT-100 abgeleitet). IIRC ESC Awar der ADM-3A-Pfeil oder möglicherweise der DEC VT-52-Pfeil. Der Punkt bleibt derselbe, jedoch wurde das ESCals Teil der Pfeiltaste gesendete Zeichen leicht mit dem ESCmanuell eingegebenen verwechselt .
RBerteig
@ RBerteig: Gut zu wissen.
LarsH
5

Zur zweiten Frage:

[I] Wenn Sie die Pfeiltasten nicht verwenden, wie können Sie den Cursor im Einfügemodus bewegen?

Für jemanden, der Meister ist und deshalb die Pfeiltasten verachtet, gibt es den Begriff "Modus" ebenfalls nicht.

Der Master ergänzt den Text nicht mit einem Insert - Modus, sondern vollständige Insert oder Ersatz Befehle , die mit einem Opcode beginnen wie i, ooder cwdass durch Nutzlast Text gefolgt, und beendet durch ESC. Befehle haben eine Syntax, so dass die Maschine durchläuft durch die Zustände in die Syntax von Befehlen zu akzeptieren, aber in dem Modell der Master des Editors, diese nicht auf einen Modus verursachen. Was die Auszubildenden naiv nennen „Modus“, ist mit dem Master ein unfertiges Befehlszustand, eine höchst abscheulich Situation , die der Meister vermeidet.

Immer wenn der Master feststellt, dass während eines Einfüge- oder Ersetzungsbefehls dieser Text eingefügt oder gelöscht werden muss, abgesehen von der nächsten vom Cursor angegebenen Zeichenposition, bricht der Master den Einfügebefehl ab und setzt eines der Dutzenden von effizienten Zeichen frei Bewegungsbefehle (auf das Niedrigste zurückgreifen, hjklwenn ein leistungsfähigerer Weg offensichtlich nicht anwendbar ist).

Da der Master selten so abgelenkt wird, dass ein Befehl nicht ausgeführt wird, gibt der Master selten, wenn überhaupt, einen Signalton aus, wenn ein überflüssiger ESC"Nur für den Fall" eingegeben wird.

(Wenn jedoch das Netz zurückgeblieben ist oder die Maschine verzetteln, die Master - Pfund auf die ESCTaste wütend und immer wieder, wie jeder andere auch.)

Kaz
quelle
2
Denken Sie daran, wenn vider Befehlseingang zum Einfügen ein Modus ist, müssen wir, um fair zu sein, alle derartigen Modi in anderen Editoren identifizieren und sie als modal bezeichnen. Wenn wir zum Beispiel in Emacs Strg-X drücken, befinden wir uns in einem "Modus", in dem es zum Beispiel möglich ist, Strg-S zu drücken, um das Dokument zu speichern, was außerhalb dieses "Modus" nicht funktioniert.
Kaz
5
  • In bestimmten Umgebungen funktionieren die Pfeiltasten möglicherweise nicht richtig. hjkl sind normale Zeichen und werden von allen Terminals gut verstanden.
  • Sie bewegen den Cursor im Einfügemodus nicht (mit Ausnahme der Rücktaste und der Korrektur eines kurzen Tippfehlers). Die Idee von vi ist, den Einfügemodus nur zu aktivieren , um etwas einzugeben. Die Bewegung erfolgt im Normalmodus
  • Wenn Sie können, sollten Sie vermeiden , mit hjkl wo auch immer anwendbar zu bewegen, und statt sie nur für Richtungen verwenden. Es gibt zahlreiche Möglichkeiten, sich in vi zu bewegen : http://vim.wikia.com/wiki/Moving_around
Quetschen
quelle
Tatsächlich können Sie den Cursor im Einfügemodus mit der Rücktaste mindestens nach links bewegen. Aber ich bin damit einverstanden, dass Sie es nicht frei bewegen können.
LarsH
Ich habe versucht auszudrücken, dass Sie den Cursor im Einfügemodus überhaupt nicht bewegen wollen .
Squeezy
Entschuldigung, ich habe falsch verstanden, dass Sie den Cursor im Einfügemodus nicht bewegen können. Eigentlich möchte ich den Cursor im Einfügemodus bewegen: Wenn ich neuen Text eingebe und die falsche Taste drücke, möchte ich die Rücktaste verwenden, um ihn zu korrigieren. Aber über diese begrenzte Verwendung hinaus stimme ich zu.
LarsH
3

Ja, aus vielen der oben genannten Gründe viwurde ursprünglich geschrieben, um zu verwenden hjkl, aber " nie " ist eine ziemlich große Aussage.

Ich neige dazu, Änderungen vim(und andere von mir verwendete Tools) vorzunehmen, um mich wie gewünscht zu verhalten. Das funktioniert auf meinem Computer sehr gut, aber als Embedded-Entwickler kann ich nicht immer herausfinden, was sich auf den von mir unterstützten Computern befindet. Ich stoße auf ältere Maschinen, auf denen nur gelegentlich hjklnavigiert wird vi. Am Ende werden die Kontrollcodes für ein oder zwei Sekunden in meine Datei eingefügt, bis ich meine Gewohnheit wieder aufgreife und zu wechsle hjkl.

Der einzig gültige Grund, warum ich sagen kann: "Benutze niemals Pfeiltasten in Vim!" Auf diese Weise können Sie Maschinen verwenden, die die Pfeiltasten nicht bedienen können. Das fühlt sich wie ein ziemlich dünner Grund an, " nie " zu sagen .

kmort
quelle
3

Wie können Sie den Cursor im Einfügemodus bewegen, wenn Sie die Pfeiltasten nicht verwenden?

Der Hauptgrund , warum ich die Menschen von der Nutzung der Pfeiltasten zu entmutigen ist ausdrücklich , weil es Ihnen , während im Einfügemodus bewegen kann.

Eines der seltsamsten Probleme beim Erlernen von vim für Neueinsteiger besteht darin, dass der Befehl zum Rückgängigmachen von vim durch Rückgängigmachen der letzten Aktion und nicht des letzten Tastenanschlags ausgeführt wird . Viele meiner Freunde bleiben die ganze Zeit im Einfügemodus, weil es keinen Grund gibt, ihn zu verlassen. Wenn sie mich fragen "Wie mache ich das rückgängig?" Ich antworte mit "Drücke den Buchstaben u aus dem Befehlsmodus", sie werden frustriert, wenn vim die gesamte Datei löscht.

"Vim ist ein ziemlich wertloser Texteditor, wenn er Dinge nicht richtig rückgängig machen kann."

Es ist schwierig, ein Tool zu verwenden, bevor Sie gelernt haben, wie.

Vim wird erst dann nützlich, wenn Sie den Umgang damit gelernt haben. Die Stärke von vim liegt darin, wie man sagen kann, "mach das Ding noch einmal" oder "mach das Ding rückgängig" oder "mach das Ding nur, wenn ich diesen Makro-Hotkey drücke" durch unbewusstes Muskelgedächtnis. Wenn "das Ding" "die gesamte Datei von Anfang bis Ende eintippen" wird, bin ich einverstanden, dass vim überhaupt nicht so nützlich ist.

Aus diesem Grund sollten Sie nur Text eingeben, wenn Sie sich in befinden insert mode. Das Vermeiden von Pfeiltasten ist nur eine Möglichkeit, wie wir Ihnen helfen können, schneller ein besserer VIM-Benutzer zu werden.

Conrad.Dean
quelle
0

Das Ausführen von vim auf meinem Android-Gerät, auf dem ein ssh-Daemon in kbox ausgeführt wird, führte dazu, dass ich aus meiner Komfortzone ausbrach. Da der Anroid Terminal Emulator auf dem Gerät Lautstärketasten verwendet, um die speziellen Tastenkombinationen (Strg + was auch immer) zu ersetzen, funktionieren einige Tasten, die ich normalerweise auf der Tastatur verwenden würde, in dieser Situation nicht.

Beispielsweise funktioniert die Einfügetaste in dieser Umgebung nicht, sodass ich Izum Umschalten in den Einfügemodus verwende. Die Esc-Taste, die ich normalerweise verwende, um den Einfügemodus zu verlassen, funktioniert auch nicht. Deshalb verwende ich ctrl + [stattdessen die Esc-Taste, um den Einfügemodus zu verlassen. Die Home- und End-Tasten funktionieren nicht so, wie ich es gewohnt bin. Stattdessen verlasse ich mich auf die 0und $Verknüpfungen, mit denen ich mich noch nie beschäftigt habe, um den Anfang oder das Ende einer Zeile zu erreichen.

Wie auch immer, die Pfeiltasten funktionieren in meiner Situation immer noch wie gewohnt, aber es ist schön zu wissen, dass die minimalistischen Tastaturkürzel vorhanden sind.

Iyrin
quelle
0

Schreiben Sie einfach den folgenden Befehl, bevor Sie in vim schreiben: -

  1. Esc
  2. : set nocp

Ein Problem dabei ist, dass Sie es möglicherweise jedes Mal schreiben müssen.

0decimal0
quelle
Nun,
0

Hier ist meine 2 ¢.

Tun Sie, womit Sie sich wohl fühlen. Wenn Sie verschiedene Editoren verwenden, ist es möglicherweise aus Gründen der Konsistenz einfacher, die Pfeiltasten zu verwenden.

Auf der anderen Seite ist es absolut genial, dass vi (und vim) keine speziellen Schlüssel benötigen, außer vielleicht. Sie könnten wahrscheinlich einen alten IBM-Selectric hacken, um als Terminal zu fungieren.

Die andere Sache, auf die Sie achten müssen, ist, dass die Pfeiltasten möglicherweise nicht wie erwartet funktionieren. Ich habe Terminals benutzt, an denen sie nicht funktionierten. Ich weiß nicht genau, wie sie in Vim implementiert sind, aber ich bin mir ziemlich sicher, dass sie nicht einheitlich sind. Mein fleckiger Speicher scheint sich sogar an eine Implementierung zu erinnern, bei der sie als vim-Makros implementiert wurden.

David E.
quelle
0

Der Name des Spiels mit verbesserten Texteditoren scheint, sich "in Eile zu bewegen" und unnötige / sich wiederholende Bewegungen zu reduzieren. Es geht etwas Zeit verloren, wenn Sie von den Buchstabentasten zu den Pfeiltasten (abhängig von den Tastaturabmessungen) und dann zurück zur Startzeile wechseln . Wenn Sie jedoch mit der linken Hand zur ESC-Taste gelangen, wird das Wechseln der Modi mit dem kleinen Finger oder dem Ringfinger zu einer fließenden Bewegung, und im Verlauf einer Editiersitzung wird die Geschwindigkeit erhöht.

Und dies ist der Schlüssel zum zweiten Teil Ihrer Frage. Verlassen Sie den Einfügemodus, indem Sie mit der linken Maustaste auf ESC drücken und mit der rechten Maustaste auf hjkl klicken. Schließlich können Sie dies tun, ohne einen Schlag auszulassen.

Trotzdem bin ich mit Vim nicht weitergekommen, bis ich einige der hier genannten Dinge ausprobiert habe . Das Wichtigste ist der Abschnitt " Effiziente Verknüpfungen erstellen "

Vijay Edwin
quelle