Warum wird die Verwendung von Pfeiltasten im normalen Modus als unangemessen angesehen?

43

Ich habe es in vielen Artikeln lesen ( zB ) , dass es die Pfeiltasten im normalen Modus verwenden , um eine schlechte Praxis ist. Könnte jemand erklären, warum es eine falsche Praxis ist, wenn überhaupt?

Ankit Jain
quelle
5
Ein guter Grund, hjkl nicht zu verwenden, ist, wenn Sie ein anderes Tastaturlayout verwenden. Zum Beispiel sind hjkl in Dvorak nicht räumlich korreliert und daher schwierig zu verwenden.
Kylos
1
@Kylos benutze ich hjklin Dvorak. Es ist definitiv weniger sinnvoll als bei QWERTY, aber ich weiß nicht, dass ich es als "schwierig zu bedienen" bezeichnen würde. Sie sind nur Schlüssel, und es ist nicht so, als wäre es schwierig, sie oder irgendetwas zu erreichen, wenn man sich erst einmal daran gewöhnt hat.
Dougal
2
Es gibt viele Mythen, warum hjkldie beste Option zum Verschieben eines Dokuments sein sollte. Die Wahrheit ist, dass einige Tastaturen zu hjklder Zeit, als vi erstellt wurde, die Pfeiltasten aktiviert hatten. Daher verwendete vi im normalen Modus dieselben Tasten, um das Tastaturlayout anzupassen. Hier ist ein Artikel mit einem Foto der Tastatur: catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys
allo
8
Alles, was für seine Schwierigkeit bekannt ist, zieht eine bestimmte Person an. Crossfit, Vim, funktionale Programmierung, Veganismus usw. Nun sind sicherlich nicht alle Menschen, die eine dieser Aktivitäten aufnehmen, von dieser Art, aber sie tauchen überproportional oft auf. Und ein Teil der Anziehungskraft für diese Person ist die Schwierigkeit der Tätigkeit selbst . Dinge, die die Eintrittsbarriere senken, sind für sie ein Gräuel: Sie sind weniger speziell. Es gibt Gründe zu bevorzugen hjkl. Die guten. Aber sie werden zumindest teilweise zum Dogma aufgeblasen, weil sich die Menschen besser fühlen müssen als die anderen.
Jared Smith
@Kylos Ich bin damit einverstanden, dass hjkles nicht die besten sind, die jemals in Dvorak sind. Aber als Dvorak-Benutzer finde ich sie ein bisschen praktisch, da sie miteinander gepaart sind: wie jkauf einer Seite des Boards; und hl auf der anderen Seite.
Nilon

Antworten:

66

Eigentlich ist das keine schlechte Praxis.

Viele Leute ( einschließlich Vims Dokument, wie die Antwort von @B Layer zeigt ) argumentieren, dass Sie keine Pfeiltasten verwenden sollten, da sich Ihre Hände von der Startzeile (der zweiten Zeile Ihrer Tastatur, in der Sie sich befinden hjkl) wegbewegen und dies Sie weniger effizient macht .

Dies ist (zumindest IMO) ein schlechtes Ergebnis von vim "Puristen" -Kreisruck: Neue Benutzer befolgen dies blind, einige deaktivieren sogar die Pfeiltasten und beschweren sich dann, dass sie nicht so effizient sind wie zuvor.

Die einzige wirkliche Regel für die Verwendung von vim ist die effiziente Verwendung: Wenn Sie sich mit Leftund wohler fühlen Rightals mit hund l , verwenden Sie die Pfeiltasten. Vim hat sogar eine set mouse=aOption, wenn Sie eine Maus verwenden möchten!

Sobald Sie gewöhnen VIM und besser mit den verschiedenen zur Verfügung stehenden Bewegungen zu erhalten ( f, t, ,, ;, w, b, e, ge, und im Grunde alles in :h quickref) Sie können erkennen , dass Sie nicht mit den Tasten Pfeil so viel. Und wenn Sie sie immer noch verwenden, ist dies kein Problem. Verwenden Sie das, womit Sie am effizientesten sind.

Beachten Sie, dass das Argument, die Startreihe nicht zu verlassen, um mehr Effizienz zu erzielen, meiner Meinung nach nicht so gut ist: Wenn Sie sich Warum verwendet vim hjkl anschauen, werden Sie feststellen, dass diese Schlüssel ausgewählt wurden, weil es keinen Pfeil gab Schlüssel, als Vi geschrieben wurde. Man könnte argumentieren, dass, wenn die Tastaturen zu diesem Zeitpunkt anders wären, niemand in Betracht ziehen würde, die Pfeiltasten nicht zu verwenden.

statox
quelle
13
Ich habe oft mein Handgelenk sehr stark gebeugt, um die Pfeiltasten zu erreichen, weil ich so an sie gewöhnt war. Schließlich habe ich die Pfeiltasten deaktiviert, um mich daran zu gewöhnen, hjklnur um etwas Schmerz von meinem Handgelenk zu lindern.
Shahbaz
9
Ich möchte darauf hinweisen, dass dies nur bei QWERTZ-Tastaturen sinnvoll ist. Für manche Layouts kann hjkl ein echtes Problem sein.
Coteyr
1
Sie können von beiden Optionen Gebrauch machen: Unabhängig davon, ob Sie "hjkl" oder "arrows" auswählen, können Sie die anderen Auf- / Ab-Tasten so verknüpfen, dass sie sich in Bildschirmzeilen und nicht in Dateizeilen bewegen. Es hilft beim Bearbeiten von Dateien mit langen Zeilen.
user31389
1
Bevor ich Ihre Antwort gelesen habe, war mir nicht klar, dass ich kaum HJKL und Pfeiltasten benutze, weil ich mich an die erweiterten Bewegungsbefehle gewöhnt habe, die Sie erwähnen. Guter Punkt!
Spiros
4
Ich schätze aber viel Ihre to-my-Auge richtige Antwort, könnte ich bitte herrschen auf Sie als Stipendiatin Moderator und vi Aficionado , zu versuchen , Ihre härteste etwas weniger „schäbige“ alternative Formulierungen zu finden Kreis Ruck , der nicht das lebhaft zu stören Bild ist evozieren von einem hosenlosen Ring von Jungen oder Männern, die alle zusammen in der Gesellschaft des anderen masturbieren . :)
tchrist
40

Ich weiß nicht mehr, ob das wirklich relevant ist, aber ich bin ein Oldtimer, also hier ein bisschen Geschichte.

Früher hatten VT100-Terminals Pfeiltasten, aber durch Drücken einer Taste wurde eine Escape-Sequenz wie <ESC>[Afür Auf, <ESC>[BAb usw.
übertragen. Da es sich um ein serielles Terminal handelt, das mit 9600 Baud kommuniziert, war es dem Benutzer möglich, die Tasten zu schnell zu drücken um die gesamte Sequenz zu übertragen, die dazu führen würde, dass ein Tastendruck die Sequenz des vorherigen Tastendrucks unterbricht und vi verwirrt.

Dies würde dazu führen, dass vi unerklärlicherweise in den Einfügemodus wechselt und [B [B [B [B [B [B] in Ihre Datei einfügt, wenn Sie den Abwärtspfeil gedrückt halten. Ich sage aus unerklärlichen Gründen, weil es nichts an dieser Sequenz gibt, das in den Einfügemodus wechseln sollte, und die Tatsache, dass jede Sequenz mit einem ESC-Zeichen beginnt, sollte den Einfügemodus verlassen haben. Aber immer noch würde es Müll einfügen. Nicht immer - nur wenn Sie es eilig hatten.

Man wurde schnell müde und beschloss, sich nur an die hjklSchlüssel zu halten.

dwilliss
quelle
8
Aus welchen Gründen auch immer, TCP-Terminalprogramme verwenden immer noch Escape-basierte Pfeiltasten und haben immer noch keine 100% zuverlässige Möglichkeit, zwischen dem Drücken der Escape-Taste und dem Senden des ersten Bytes einer Escape-Sequenz mit den Pfeiltasten zu unterscheiden.
Supercat
1
@supercat Sie tun eine zuverlässige Art und Weise müssen diejenigen zu unterscheiden. Es heißt mit SC81T . Das Problem ist mehr, dass viele Programme das nicht aushandeln und einige Terminals es wahrscheinlich nicht unterstützen.
Jamessan
1
@jamessan: Wenn ich das richtig gelesen habe, schlagen Sie vor, dass die zuverlässige Methode zur Unterscheidung von Escape-Zeichen von Pfeiltasten darin besteht, keine escape-basierten Pfeiltasten zu verwenden. basierte Pfeiltasten.
Supercat
Hmm, ich habe ein altes IBM-Terminal, das eine VT100 emulieren kann, muss dies möglicherweise ausprobieren
ein Ohrwurm
3
Ich kann mit Sicherheit bestätigen, dass dies wahr war, zumindest in der Vergangenheit, als wir in den 80er Jahren im unterirdischen Terminalraum Schilder aufstellen mussten, um aus genau diesem Grund die Pfeiltasten in vi nicht zu verwenden . Sie haben ihre Dateien immer wieder durcheinander gebracht, als der tty-Treiber Interrupts abbrach.
Freitag,
28

Obwohl ich mit @statox einverstanden bin, dass niemand zurechtgewiesen, gemieden, exkommuniziert oder geteert werden sollte, wenn er die Pfeiltasten verwendet. Verwenden Sie Ihre Software, wie Sie es für richtig halten Eine Art Laissez-Faire-Einstellung, wenn ich einem aufgeschlossenen neuen Benutzer eine Anleitung geben würde. Ich würde Ihnen dringend empfehlen, zunächst die Best Practices zu befolgen. Sie sind aus einem bestimmten Grund "Best Practices". Sie wurden von vielen Leuten, die vor Ihnen und mir gekommen sind, mit gutem Erfolg eingesetzt.

Verdammt, sogar Vims eigene Hilfe treibt Sie in diese Richtung , wenn auch nicht ohne Übertreibung (" stark verlangsamen") ...

Sie können den Cursor auch mit den Pfeiltasten bewegen. Wenn Sie dies jedoch tun, verlangsamen Sie die Bearbeitung erheblich, da Sie zum Drücken der Pfeiltasten Ihre Hand von den Texttasten zu den Pfeiltasten bewegen müssen. In Anbetracht der Tatsache, dass Sie dies möglicherweise hunderte Male pro Stunde tun, kann dies eine erhebliche Menge an Zeit in Anspruch nehmen.

Es gibt auch die Tatsache, dass alle Entscheidungen, die Sie zu Beginn treffen, zu Gewohnheiten werden können, die schwer zu brechen sind, wenn Sie in Zukunft Änderungen vornehmen möchten. So ceteris paribus , warum nicht eine empfohlene Gewohnheit jetzt übernehmen , anstatt die Chance zu nehmen , dass Pfeiltasten ist ineffizient oder Karpal-Tötung?

Alles in allem sollten Sie ehrliche Anstrengungen unternehmen, um Dinge ohne Pfeiltasten zu tun. Nach einer angemessenen Zeitspanne, wenn Sie einfach nicht ohne Auf / Ab / Links / Rechts leben können, tun Sie es nicht.

... würde ich einem neuen Benutzer sagen, der sich für meine Meinung interessiert. Nehmen Sie es nicht persönlich, wenn Sie nicht einverstanden sind (ich spreche mit Ihnen, Downvoter).

B Schicht
quelle
9
Auch wenn Sie akzeptieren, dass es in der Tat besser ist als die Pfeiltasten (ich bin nicht einmal davon überzeugt), ist es irgendwo am Ende der Liste aller möglichen "Best Practices". Ich würde argumentieren, dass es viel viel wichtigere Dinge gibt als die Verwendung von hjkl.
Martin Tournoij
5
@Carpetsmoker Ich denke nicht, dass es notwendig ist, Best Practices zu bewerten. Wenn Sie nicht den starken Wunsch haben, Pfeiltasten zu verwenden, warum nicht die von Vim empfohlenen Schritte ausführen? Besonders wenn Sie Vim noch nicht kennen ... wir alle wissen, wie schwierig es ist, die Art und Weise zu ändern, wie wir etwas tun, wenn es einmal verankert ist.
B Layer
1
"Sie verlangsamen Ihre Bearbeitung erheblich" - das scheint mir eine ziemliche Übertreibung zu sein ... dennoch bin ich der Meinung, dass es sich lohnt, es einmal auszuprobieren. Es ist einfach ehrlich gesagt nicht wichtig genug, um den Krieg zu beenden.
Schatten
2
@BLayer nein nicht hier - dies ist die höflichste Diskussion zu dem Thema, von dem ich denke, dass ich es gesehen habe. Aber Kriege wurden auf jeden Fall geführt ...
Schatten
1
don't think it's necessary to rank best practicesNun, es scheint mir, dass wir uns auf die Dinge konzentrieren sollten, die uns den besten Wert im Leben geben, da die Ressourcen begrenzt sind und das Leben kurz ist. Ich weiß zufällig, dass die Tasten ein Herz sind, weil eine falsche Kindheit Schurke, Larne, Angband usw. auf einem Laptop ohne Nummernblock spielt, aber manche Leute haben ihre Kindheit besser verbracht und müssen trotzdem die Pfeiltasten "verlernen". Ich denke, dass Lernbewegungen, Reichweiten usw. viel nützlicher sind, um Zeit zu verbringen.
Martin Tournoij
16

Andere Antworten sagten, dass der Effizienzverlust durch das Bewegen der Hände aus der Startreihe keine so große Sache ist, und ich stimme dem größtenteils zu. Was jedoch eine große Sache ist, ist, wenn Sie vim lernen und immer die Pfeiltasten verwenden, um zu vermeiden, dass Sie wieder in den normalen Modus wechseln.

Mit anderen Worten, die Verwendung einer Single, bei der Sie eine Single verwendet hätten, hist kein großer Produktivitätsverlust, aber die Verwendung einer Single, bei der Sie hätte verwendet werden können, EscI ist ein großer Verlust.

Das ist der Grund, warum Sie beim Lernen von vim aufgefordert werden, die Pfeiltasten zu meiden, weil Sie so gezwungen sind, den normalen Modus zu lernen, anstatt den Einfügemodus nie zu verlassen. Im normalen Modus werden alle Effizienzgewinne erzielt.

Karl Bielefeldt
quelle
1
+1. Mit anderen Worten: "Verwenden Sie nicht die Pfeiltasten und nicht hjkl." (Beibehaltung der vorsätzlichen Übertreibung.)
wchargin
3
Eigentlich statt 10 Mal könnten Sie verwendet haben 1 0 oder, noch einfacher, Home. Letzteres funktioniert sogar in Windows Notepad.
Ruslan
7

Es gibt zwei Hauptgründe, warum Leute sagen, dass Sie die Pfeiltasten nicht benutzen sollten. Einige behaupten, dass hjkl bevorzugt wird, weil es Ihre Hände in der Startreihe hält, was nicht falsch ist , aber auch keine Rolle spielt. Andere, einschließlich mir, würden sagen, Sie sollten die Pfeiltasten nicht verwenden, wenn Sie mehr als ein paar Zeichen bewegen, aber Sie sollten auch nicht hjkl verwenden.

Wichtig ist nicht, welche Schlüssel Sie verwenden, sondern wie viele . Wenn Sie an den Anfang des Wortes springen möchten, drücken Sie nicht hhh. Sie treffen b. Das Ende des Wortes ist enicht llll. Anfang der Zeile: 0, Ende der Leitung: $. Und noch etwas, /searchfür den Text, der existiert, wohin Sie wollen. (oder welche der erweiterten Bewegungsbefehle Sie bevorzugen).

Aber jedes Mal, wenn Sie mehr als zweimal hintereinander denselben Schlüssel eingeben, gibt es eine bessere Möglichkeit, dies zu tun.

Strahl
quelle
7

Eine genauere Aussage könnte lauten: "Die Verwendung der Pfeiltasten ist eine schlechte Übung, wenn versucht wird, Vim besser zu lernen " . Neulinge sind es gewohnt, sich mit den Pfeiltasten zu bewegen, und lernen hjklnicht, um zu sehen, ob dies vorzuziehen ist.

Persönlich habe ich, nachdem ich mich mit vim vertraut gemacht hatte, die Pfeiltasten für eine Weile deaktiviert , um den hjklDreh raus zu bekommen, und sie später wieder aktiviert, um meine zu vereinfachen .vimrc. Die konventionelle Weisheit gilt in meinem Fall; Als ich wusste, wie man beide hjklund die Pfeiltasten benutzt, benutzte ich fast ausschließlich die ersteren.

Patrick Sanan
quelle
6
Ich stimme dir nicht zu. Wie in diesem Blog steht, trägt der Ansatz "Alles oder Nichts" für Anfänger dazu bei, dass vim einen "benutzerunfreundlichen" Ruf genießt. Neue Benutzer fangen an, geraten ins Stocken und werden überfordert, und (nicht überraschend) stellen fest, dass vim ein unheiliges Durcheinander ist, und wechseln zurück zu einem Editor, in dem sie anständig produktiv sein können. - Wenn Sie schwimmen lernen, werfen Sie sich nicht vom Boot ins offene Meer. Es ist völlig in Ordnung, im Kinderbecken herumzupaddeln, bis Sie sich mit dem Wasser vertraut gemacht haben.
RM
2
... um nicht zu sagen, dass das Deaktivieren der Pfeiltasten für Menschen nicht funktioniert. Aber es ist ein Schritt "Ich mag Vim und möchte lernen, wie man es besser benutzt", nicht ein Schritt "Ich bin neu in Vim und möchte lernen, wie man es benutzt".
RM
5

Die übliche Antwort lautet Effizienz. Wahrscheinlich wurden Sie im Laufe der Jahre im Umgang mit dem Tippen von Berührungen geschult, bei dem Sie die Hände auf asdf und jkl; Ein Großteil der Tastenbelegungen in Vi basiert auf dieser Tatsache, einschließlich der hjkl-Bewegungsbefehle.

Ich persönlich benutze eigentlich beide. Ich verwende hjkl, wenn ich große Textabschnitte aktiv bearbeite, und die Pfeiltasten, wenn ich durch Protokolldateien scrolle (und |, g und /, wenn ich Spot-Bearbeitungen in einer Datei vornehme). Das ist genau das, was für mich gut funktioniert, und in einem Fall wie diesem ist es das, worauf es wirklich ankommt.

Austin Hemmelgarn
quelle
2

Vor langer Zeit hatten viele Terminals keine oder nicht alle vier Pfeiltasten. Softwaresysteme, die eine Navigation benötigten, lieferten normalerweise eine Art Navigationsansatz, ohne auf Pfeiltasten angewiesen zu sein, und Vi-hjkl ist ein kanonisches Beispiel. (Ein weiteres klassisches Beispiel ist WordStars ^ E- ^ S- ^ X- ^ D.) Als das Dienstprogramm der Tastaturnavigation immer offensichtlicher wurde, kamen immer mehr neue Terminals mit Pfeiltasten auf den Markt, und Softwaresysteme ordneten diese häufig den alten Methoden von zu Navigation. Dies führte jedoch zu einer Art Tragbarkeitsbedenken: Wenn Kinder, die an Schulen ausgebildet wurden, sich auf eine so ausgefallene neue Funktion wie Pfeiltasten verlassen sollten, waren sie möglicherweise nicht in der Lage, produktiv zu sein, wenn - einmal üblich - Tastaturen ohne Pfeiltasten.

Deshalb warnten die Lehrer von Kursen in Grundlagen der Informatik die Schüler vorsichtig, den kleinsten gemeinsamen Nenner zu verwenden, um ihre Beschäftigungsfähigkeit zu maximieren. Und diese Praxis hat alle Gründe, die sie einmal gehabt haben könnte, lange überlebt.

In modernen Implementierungen von vi liegt der Hauptgrund für den Vorzug von hjkl darin, dass es etwas schneller ist, Tasten zu verwenden, die sich bereits unter Ihrer Hand befinden, als Ihre Hand dorthin zu bewegen, wo sich Ihre Pfeiltasten befinden. Der Nachteil beim Vermeiden des Kontextwechsels ist natürlich, dass Sie möglicherweise einen Kontextwechsel von vi durchführen müssen. Wenn Menschen heutzutage nur noch selten Wert auf Tippgeschwindigkeit legen, ist es eine Frage der persönlichen Präferenz, ob Sie die eine oder die andere Handlung ausführen, und die Verwendung von Pfeiltasten ist von Natur aus nichts Schlechtes mehr, wenn überhaupt.

graben
quelle