Ich entschied mich schließlich, die Pfeiltasten für die Navigation zugunsten von loszuwerden hjkl
. Ich habe das Vim hardmode
Plugin verwendet, um die Pfeiltasten zu deaktivieren.
Ich habe mich ziemlich schnell an die Navigation gewöhnt, aber es stellte sich heraus, dass die Navigation im Einfügemodus plötzlich unmöglich ist.
Gibt es dafür eine Lösung? (Vorhandener Einfügemodus ist keine Lösung).
insert-mode
navigation
stdcall
quelle
quelle
Antworten:
Sie haben viele Möglichkeiten. Eine Option, und IMO ist die vernünftigste und einfachste, die Deaktivierung der Pfeiltasten zu beenden. Ich verstehe, warum viele Hardcore-Vimmer Dinge wie sagen
(Offensichtlich mache ich Witze) Es gibt jedoch einen Zweck für die Pfeiltasten. Sie sind äußerst nützlich für die Navigation:
Im Einfügemodus
In der Kommandozeile
Wenn Sie die Pfeiltasten nicht verwenden sollen, ist dies im Allgemeinen der Fall, weil Sie die Navigation auf eine vim-ähnliche Weise neu erlernen möchten. Wenn Sie mit
hjkl
den Pfeiltasten vertraut sind und sie hauptsächlich im Einfügemodus verwenden, gibt es keinen guten Grund, sich dazu zu zwingen, sie nicht zu verwenden.Option 2 besteht darin, die Zuordnung so
ctrl-hjkl
zu ändern , dass sie wie Cursortasten wirkt. Das ist schön, weil Sie in der Homerow bleiben können und es gut zu dem Muskelgedächtnis passt, das Sie bereitshjkl
im normalen Modus gelernt haben . In der Tat ist es das, was ich tue . Der Hauptnachteil dieses Ansatzes besteht darin, dass die Einrichtung in Terminal Vim schwierig sein kann, da<C-j>
einNUL
Byte erzeugt wird . Um das zu umgehen, benutze ich Gvim. Mir ist nicht bekannt, ob es eine einfache Lösung für Console Vim gibt oder nicht.Option 3 dient zum
<C-o>
Ausführen kleiner Bewegungen im Normalmodus. Zum Beispiel, wenn Sie tippenund du merkst, dass du ein Komma vergessen hast, anstatt es zu tun leftleftleftleftleftleft, könntest du einfach
<C-o>b<C-o>h
oder<C-o>2Fo
oder irgendeine andere Kombination von Bewegungen im normalen Modus machen, die du magst.Natürlich ist eine andere Option, die ich sehr mag Esc, nur ein paar kleine Bewegungen zu machen, bevor ich in den normalen Modus zurückspringe. Sie haben erwähnt, dass Sie das lieber nicht tun, aber manchmal ist dies wirklich der effizienteste Weg.
Es gibt wahrscheinlich auch einige andere Ansätze, aber diese sind diejenigen, die ich mag, die für mich funktioniert haben.
quelle
<c-o>gk
und<c-o>gj
anstelle von<Up>
und<Down>
. Warum das?gk
undgj
gehen visuell eine Linie auf und ab, auch wenn die Linie umbrochen ist.noremap <Up> <NOP>
...) . Sie verbringen genug Zeit im normalen Modus, um HJKL zu lernen, aber sie sind da, wenn Sie es brauchen. Zumindest finde ich, dass dies ein angenehmer Mittelweg ist, um sie immer aus oder immer an zu lassen, und es ist nicht erforderlich, andere Tasten neu zuzuordnen (viele Leute wie Strg-HJKL, um zwischen den Fenstern zu wechseln).Ich verwende gerne die Steuertaste, um die
hjkl
Bewegungstasten in "universelle" Bewegungstasten zu verwandeln . Hier ist das relevante Stück von mir.vimrc
:Die
inoremap
Anweisungen gelten für den Einfügemodus, während diecnoremap
Anweisungen für den Befehlsmodus gelten. (Ich verwende diese Zuordnung seit so langer Zeit, dass ich vergessen habe, ob es eine Möglichkeit gibt, im Befehlsmodusverlauf ohne sie zu navigieren.)(Bearbeiten: Ich sehe, die andere Antwort hat diese Möglichkeit bereits erwähnt. Trotzdem kann es hilfreich sein, die tatsächlichen Zuordnungsbefehle zu sehen.)
quelle
Drücken Sie escdann hjklund wWbBund alle anderen Navigationen, die Sie machen möchten. Der springende Punkt des Hard-Modus ist, dass Sie lernen, mit komplexeren Vim-Bewegungen zu navigieren. Nehmen Sie kleine Änderungen vor und verschieben Sie sie dann im normalen Modus an eine neue Position.
Wenn Sie nicht lernen möchten, wie Sie mit aktiviertem Hardmode schneller navigieren, lesen Sie meine Antwort aus einer anderen Frage zum gleichen Thema.
quelle
Wenn Sie mehr als EINE oder ZWEI Positionen verschieben möchten ...
... ist die beste Wahl, um zu schlagen
ESC
, sich zu bewegen und wieder in den Einfügemodus zurückzukehren.Es macht keinen Sinn, Mappings
<C-h>
zu erstellen , die sich nach links bewegen und dann zu oft darauf schlagen. Als Vim-Benutzer sollten Sie nicht mehrmals dieselbe Taste drücken, um eine intelligente Bewegung zu erzielen.(Wenn der
ESC
Schlüssel nicht in der Nähe Ihrer Finger liegt, ist es eine gute Option, eine Zuordnung dafür zu erstellen.)Wenn Sie EINE oder ZWEI Positionen im Einfügemodus verschieben möchten ...
... eine gute Wahl wäre, einige Bewegungen mit Ihrem
<Leader>
Schlüssel zu definieren :(Ich benutze es
,
als<Leader>
Schlüssel, da es sich für meine Finger angenehm anfühlt.)quelle
Wenn Sie nur eine kleine Textmenge oder ein Wort ändern müssen, können Sie verwenden
<Ctrl-O>h/j/k/l
.<Ctrl-O>
Führt Sie nur für diesen Befehl in den normalen Modus zurück und wechselt dann wieder in den Einfügemodus. Dadurch sparen Sie einige Tastendrücke, wenn Sie für eine kleine Bewegung in den normalen Modus wechseln müssen.Ref: 1. http://vim.wikia.com/wiki/Use_Ctrl-O_instead_of_Esc_in_insert_mode_mappings
quelle