Bei Vim besser werden [geschlossen]


116

Ich benutze Vim schon ziemlich lange, aber ich bin auf einem Niveau, auf dem ich die meiste Zeit den Einfügemodus verwende, und ich benutze immer noch die Pfeiltasten, um mich zu bewegen (!).

Ich habe das Gefühl, dass ich nicht das Beste aus meinem schönen Editor herausholen kann, insbesondere was das Navigieren (insbesondere Code), Kopieren und Einfügen sowie andere Manipulationen an vorhandenem Code betrifft. (obwohl ich mit komplizierten Such- / Ersetzungsmustern ziemlich vertraut bin).

  • Wie soll ich mehr lernen?
  • Welche Ressourcen würden die Leute empfehlen?

8
Was ist falsch daran, die Pfeiltasten zum Bewegen zu verwenden? Das ist , was sie sind für !
Vilx

39
@Vilx, du bewegst dich auch in Computer-Action-Spielen nicht mit den Pfeiltasten ! Geschweige denn Texteditoren ...
P Shved

6
@Vilx: Die Pfeiltasten auf einer Tastatur befinden sich für jede Art von Navigation an einem schrecklich ungünstigen Ort. Aus diesem Grund besteht der Kanon in ViM darin, HJKL zu verwenden, genau wie Sie WASD in einem Ego-Spiel verwenden würden.
Will Vousden

4
Das WASD ist da, weil es einfacher ist, es mit der linken Hand zu verwenden, da die rechte die Maus steuert. Linkshänder benutzen die Pfeile. Und HJKL ist so kontraintuitiv. Welches bewegt sich wohin?
Vilx

8
Nun, ich denke, es geht nicht um "Pfeile gegen hjkl", sondern um "Cursorbewegung gegen Textobjekte".
Matteo Riva

Antworten:



66

Hier sind einige großartige Screencasts , die Ihnen eine Vorstellung davon geben sollen, was Sie als Nächstes lernen sollten. Es gibt auch Videos für fortgeschrittene und fortgeschrittene Themen, aber die Anfänger sind in der Tat die wichtigsten.

Als ich das Gefühl hatte, zu stagnieren und nicht wirklich "den Vim-Weg" zu lernen, entschied ich mich, die Pfeiltasten sowohl im normalen als auch im Einfügemodus zu deaktivieren. Dies zwingt Sie dazu, ESC zu verwenden, um irgendwohin zu gelangen, und lässt Sie Vim-ähnlicher denken. Letztendlich habe ich die Pfeiltasten im Einfügemodus wieder aktiviert, aber ich benutze sie kaum jemals. Meistens gibt es bessere Möglichkeiten, sich fortzubewegen.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

Und speziell

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
Ich mag die Idee, die Pfeiltasten zu deaktivieren. Es ist eine gute Möglichkeit, sich zu zwingen, sie nicht mehr zu verwenden.
Idan K

1
Es hat sehr gut für mich funktioniert, aber die ersten Tage waren sehr frustrierend. Sobald Sie sich jedoch daran gewöhnt haben und die Gewohnheit haben, sich im Einfügemodus ZU viel zu bewegen, empfehle ich, die Imaps wieder zu aktivieren.
Sarah

Diese Screencasts waren großartig. Vielen Dank für den Hinweis.
Mert Nuhoglu

2
Das Deaktivieren der Pfeiltasten ist eine großartige Idee. Ich mache es gerade.
Gorsky

Das Deaktivieren der Pfeiltasten basiert auf der Annahme, dass die Pfeiltasten nicht im Weg sind als hjkl. Besser ist es, eine bessere Tastatur zu bekommen. Ich benutze Kinesis Advantage. Selbst wenn ich eine Standardtastatur verwendet habe, macht hjkl immer noch keinen Sinn, da ich dvorak verwende. Was ich damit sagen will ist: Der Punkt ist nicht "Verwenden Sie keine Pfeiltasten", der Punkt ist "Verwenden Sie die effizientesten Mittel und meiden Sie Effizienzgewinne aufgrund einer Lernkurve nicht."
Begrenzte Versöhnung

23
  1. Geben Sie vimtutorin die Befehlszeile ein
  2. gehe in vim, tippe: help oder <F1>
  3. Mailingliste abonnieren
  4. offizielle vim docs

1
Das einzige, woran ich nicht gedacht hatte, war, mich der Mailingliste anzuschließen: Jetzt erledigt :)
James

1
Es ist ein guter Ort, um Hilfe zu bekommen und Ihre Vim-Fähigkeiten zu üben, indem Sie die Probleme anderer Leute lösen.
Ghostdog74

1
+1 für Vimtutor - eine hervorragende Möglichkeit, den Vim-Weg in Ihr Muskelgedächtnis zu bringen.
Hamish Downer

16

Zwei weitere Tipps:

  • Verwenden Sie Vim, um alles zu bearbeiten (E-Mail, Webformulare, Code, ...). Wenn sich etwas langsam anfühlt , gibt es wahrscheinlich einen schnelleren Weg, dies zu tun. :helpgrepist dein Freund.

  • Gehen Sie zu http://vimgolf.com/ und nehmen Sie teil. Auf diese Weise habe ich viele Tipps und Tricks gelernt. [ Haftungsausschluss : Es wird keine Verantwortung für die langen Zeiträume übernommen, die während des Wettbewerbs bei VimGolf " verschwinden ".]


2
Ordentlich, ich wusste nichts über Vimgolf!
James

1
@Autopulated: Haftungsausschluss hinzugefügt.
Johnsyweb

2
@ Johnsyweb: Ich möchte wirklich in der Lage sein, vim für alles zu verwenden - aber wie? Ein geeigneter vim-Klon in jedem Webformular wäre ideal - da alle Browser-Add-Ons, die ich gefunden habe, normalerweise nur eine kleine zufällige Teilmenge von vim-Funktionen implementieren und Tastenkombinationen neu zuordnen, um der Tatsache Rechnung zu tragen, die der Browser noch benötigt Zugriff auf bestimmte Keymappings.
Conrad.Dean


10

So habe ich Vim gelernt (und eine Menge anderer Dinge). Es ist ziemlich einfach.

Durchsuchen Sie die Hilfedokumente und suchen Sie einen Befehl für etwas, das Sie ständig tun. Löschen Sie zum Beispiel ein ganzes Wort. Machen Sie es sich zum Ziel, sich daran zu erinnern.

Wenn Sie das nächste Mal 'xxxxx' drücken, um ein Wort zu löschen, halten Sie an, setzen Sie es zurück und verwenden Sie den neuen Befehl. Schlagen Sie nach, wenn Sie müssen. Anstatt also 'xxxxxx' zu drücken, gehen Sie zurück und drücken 'dw'.

Tun Sie dies immer und immer wieder, es wird zuerst langsam sein, aber irgendwann wird es bleiben.

Sobald Sie diesen Befehl gedrückt haben, beginnen Sie oben. Suchen Sie einen anderen Befehl für eine Aktion, die Sie ständig ausführen ...

Sie wären überrascht, wie schnell Sie auf diese Weise neue Befehle und Techniken erlernen können.


7

Das erneute Zuordnen / Deaktivieren der Pfeiltasten, wie vorgeschlagen, ist eine gute Möglichkeit, sich zu zwingen, sie nicht zu verwenden.

Eine weitere zu berücksichtigende Sache: Wenn es unangenehm ist, Esc auf Ihrer Tastatur zu drücken, möchten Sie möglicherweise die Feststelltaste in Ihrem Betriebssystem neu Esc zuordnen. Für mich war dies ein äußerst hilfreicher Schritt, da Esc eine unangenehme Reichweite für meine KB darstellt und dies ein weiteres Hindernis war, das mich im Einfügemodus hielt (da es schwierig war, herauszukommen). Wenn Sie Esc auf der Feststelltaste haben, ist dies eine winzige Reichweite, und das Ein- und Aussteigen aus dem Einfügemodus ist sehr schnell.

Um fortgeschrittene Dinge in Vim zu lernen, ist die beste Ressource: Hilfe, aber um die Grundlagen zu erlernen, müssen Sie es nur tun; Es ist vor allem das Muskelgedächtnis. Sie sagen, Sie kennen die Suche. Verwenden Sie es bewusst als Navigationswerkzeug. Die Suchvorgänge [/,?] Und die auf Inline-Zeichen basierenden Suchvorgänge [f, F, t, T] sind einige der wichtigsten Vim-Navigationswerkzeuge. Benutze sie einfach; In Kombination mit den deaktivierten Cursortasten navigieren Sie in kürzester Zeit allein im Muskelgedächtnis.

Textobjekte. Einfach eine der besten Funktionen des Editors. Dies ist die andere Sache, die man sofort bewusst üben muss. Dinge wie 'yiw', 'dit' usw. sind so mächtig und schnell; Wenn Sie sie alleine lernen und nutzen, fühlen Sie sich wie ein Vim-Benutzer.

Sobald Sie Textobjekte und die grundlegende Navigation nach unten gebracht haben, ist es Zeit, mit dem Lesen und Lernen von: regelmäßig zu helfen und das Web nach fantastischen Plugins zu durchsuchen. Im Ernst, Sie können Vim jahrelang verwenden und ein "ah ha!" Moment, in dem Sie versehentlich auf einen obskuren Leckerbissen in der Hilfe stoßen, die Sie nie gekannt haben.


Anstatt die Feststelltaste neu zuzuordnen, würde ich Strg-C vorschlagen. Dies ist einfach zu tippen und Linux-Benutzern recht vertraut.
BandGap

6

Siehe diesen Thread: Was ist Ihre produktivste Verknüpfung mit Vim?

Besonders die erste Antwort.


3
Als Autor der "ersten" Antwort muss ich fairerweise sagen, dass dies nicht unbedingt der beste Leitfaden ist, um Ihre Beherrschung des Herausgebers allgemein zu verbessern. Es enthält viele Informationen darüber, was mit vi getan werden kann, wenn Sie es als Sprache betrachten, um auszudrücken, wie Sie den Text, Ihren Bildschirm / Terminal und die Umgebung des Editors selbst bearbeiten möchten. Viele der Sachen dort sind jedoch ziemlich fortgeschritten.
Jim Dennis

1
Ich habe durch das Lesen dieser Antwort nicht so viel gelernt, dass ich nicht glaube, dass ich durch das Lesen der Dokumentation jemals etwas gelernt hätte!
James


3

Wie soll ich mehr lernen?

Lesen Sie das vim-Handbuch vollständig durch (geben :hSie ein; Sie können von dort aus navigieren). So lernen Sie alle Bewegungen und Befehle kennen. Dies ist am nützlichsten, wenn Sie die Grundlagen bereits kennen und verbessern möchten.

Welche Ressourcen würden die Leute empfehlen?

vim.org, schauen Sie sich die beliebtesten vim-Skripte an . Überprüfen Sie die Quellen, wenn Sie etwas Interessantes finden. Oder einfach installieren und genießen. Diese Site enthält viele Links zu Skripten, mit denen Sie den Quellcode in verschiedenen Sprachen durchsuchen können. und es ist relativ leicht, sie dort zu finden.

StackOverflow.com könnte ebenfalls hilfreich sein .


3

Ich habe dieses Spiel gemacht, um meinem Neffen das Lernen zu erleichtern, aber es funktioniert nur unter Firefox und Chrome>. < http://kikuchiyo.org

Im Moment geht es nur um Bewegung und das Aufrufen des Einfügemodus. Mit der Beta-Version können Sie Feinde mit Lichtschwert angreifen, links 'i' und rechts 'a': P.

Versuche weiter, Vim zu lernen, die Mühe lohnt sich!

:) :)


Nun das ist eine wirklich gute Idee!
James

Update: Die Seite ist jetzt unter kikuchiyos-vim-game.herokuapp.com .
Kikuchiyo


2

Ich benutze immer noch die Pfeiltasten, um mich zu bewegen (!).

Ich sehe kein Problem damit.

Wie hoch ist die Wahrscheinlichkeit, dass Sie vim und eine Tastatur ohne Pfeiltasten verwenden müssen?

Weißt du, die meisten Leute benutzen vim, weil es den Job macht (na ja, weil sie es auf einem Niveau beherrschen, wenn es den Job für sie macht), nicht um Elitisten zu sein (wie wenn man die Pfeiltasten nicht benutzt).

Ein paar Ratschläge zur Verbesserung Ihres Vim-Wissens:

  • Öffnen Sie die vim-Hilfe regelmäßig an einer zufälligen Stelle und lesen Sie mehr über eine zufällige Funktion. Es dauert ein paar Minuten. Es ist möglich, dass Sie diese Funktion in den nächsten X Jahren nicht verwenden. Wenn Sie Glück haben, werden Sie feststellen, dass Sie Ihr Wissen über diese Funktion anwenden können, um eine bestimmte Aufgabe zu erfüllen. Sie öffnen die Hilfe erneut, um Ihr Gedächtnis aufzufrischen. Nachdem Sie die Funktion einige Male in der Praxis verwendet haben, bleibt sie bestehen. An diesem Punkt werden Ihre vim-Kenntnisse verbessert.
  • Verwenden Sie: helpgrep, um in zufällige Dokumentationsstellen zu graben. Wenn Sie etwas tun müssen und den Ort finden, der es in den Dokumenten erklärt, hören Sie hier nicht auf. Lesen Sie das Dokument-Snippet noch einmal. Finden Sie die Schlüsselwörter. Verwenden Sie für jedes Schlüsselwort das Schlüsselwort: helpgrep, um die logischen Verknüpfungen mit anderen Teilen der vim-Dokumentation zu ermitteln.

Ich denke, das Problem, das ich beim Lesen von Dokumentation habe, ist, dass ich Dinge nicht sehr effektiv lerne, ohne sie tatsächlich zu tun .
James

1
Die Verwendung von Cursortasten zum Bewegen des Cursors über kurze Strecken kann genauso effizient sein wie die Verwendung der Tasten [h], [j], [k], [l] ..., wenn sich Ihre Finger aus einem anderen Grund in ihrer Nähe befinden. Die Verwendung linearer Cursorbewegungen ist für mehr als ein paar Spalten oder Bewegungslinien schrecklich. Normalerweise ist es am besten, darüber nachzudenken, wonach Sie suchen, und dies direkt in vi mit dem / oder auszudrücken? Befehle und reguläre Ausdrücke. Letzter Text in der Nähe von foo? G? Foo [Enter] (sechs Tastenanschläge). Erste Zeile mit "bar ... etwas ... knall drin? 1G / bar. * Knall [Enter] (ungefähr ein Dutzend Tastenanschläge) ... und so weiter.
Jim Dennis

Obwohl Pfeiltasten wahrscheinlich effizienter sind als das Greifen nach der Maus, ist keine Eingabe erforderlich, wenn Sie eine der grundlegenden Bewegungstasten eingeben, indem Sie die Hände in der Startzeile verwenden, um Ihre Hände nach dem Eingeben einer Zeichenfolge neu zu gruppieren von 'j', 'k', 'l' und einem leichten Zucken nach links, um die Taste 'h' zu erhalten. Wenn Sie Dinge auf Vim-Weise tun, sollten Ihre Hände immer näher an den Tasten der Startzeile als an den Pfeiltasten sein. Übe weiter und du wirst es bekommen. :)
Kikuchiyo


2

Die Art und Weise, wie ich die Pfeiltasten nicht mehr verwendet habe, hat sie nicht deaktiviert (ich verwende sie immer noch im Einfügemodus). Wenn Sie jedoch darüber nachdenken, ob Sie nach rechts gehen möchten, verwenden Sie Ihren kleinen Finger, der die lTaste ist. Gehen Sie nach links. Zeigefinger die hTaste & klingeln Sie mit dem Finger nach oben ("klingeln") und kdrücken Sie den jSchlüssel.

Die erste der vier Ziffern auf Ihrer Hand (vergessen Sie den Daumen) ist die Index-Ziffer ganz links und der Pinky ganz rechts. Verwenden Sie den Ausdruck "Klingeln" wie beim Telefonieren für "Auf" mit Ihrem Klingelfinger und der Mittelfinger kann nur nach unten gehen.

Es hilft mir auch sehr, zu vergessen, wie die Schlüssel heißen (h, j, k, l). Es gibt keine gute Mnemonik, um sich so an sie zu erinnern, wie ich sie gefunden habe, und es gibt auch nicht zu viele Zuordnungen, die diese Tasten verwenden.





Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.