So springen Sie in vim + OS X an den Anfang oder das Ende einer Zeile

16

Im Terminal kann ich dies durch Drücken von Shift + Home und Shift + End tun, aber es scheint nicht in vim zu funktionieren. Home- und Endetasten blättern nur im Terminalfenster. Ich möchte in den Bearbeitungsmodus springen.

JtR
quelle
4
Im Befehlsmodus finden Sie auf dem Vim- Spickzettel (0 und $): fprintf.net/vimCheatSheet.html . Ich kenne den Bearbeitungsmodus allerdings nicht.
Gnoupi

Antworten:

12

Diese Antwort setzt voraus, dass Sie vim in einem Terminalfenster verwenden .

Die Standardbindungen für " Home" und " End" unterscheiden sich geringfügig von denen, die ein Programm aufgrund der üblichen TERM-Einstellung (dh einer xterm-Variante) erwarten würde. Wenn Sie sich an die Standardbindungen halten möchten (und die Shifted-Varianten in Terminal verwenden müssen ), können Sie versuchen, Folgendes in Folgendes einzufügen .vimrc:

:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>

Andernfalls können Sie versuchen, die Codes anzupassen, die das Terminal sendet, wenn Sie Home und End verwenden (auch ohne Verschiebung, wenn Sie möchten). Eine Suche würde wahrscheinlich einige Stellen aufdecken, die beschreiben, wie es geht ( hier ist eine ). Die Grundidee ist, dass Terminal ESC [1 ~ anstelle von ESC senden soll [H für Home und ESC [4 ~ anstelle von ESC [F für End (oder Shift-Home / Shift-End, wenn Sie Home / behalten Ende für den Zugriff auf Scrollback). Ich würde den Prozess detaillierter beschreiben, aber ich habe nur 10.4 und ich weiß, dass Terminal in 10.5 und höher stark verändert wurde.

Chris Johnsen
quelle
8

Mit iTerm und Vim können Sie im Einfügemodus mit Fn + Rechts- und Linkspfeil zum Anfang oder Ende der Zeile springen. Mit Terminal.app benutzen Sie Shift + Pfeile .

giorni
quelle
1

Als Ergänzung zu Chris Antwort können Sie auch die Wortnavigation (mit den Option+arrowTasten) erreichen, indem Sie einfach diese vier Zeilen hinzufügen:

:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el

Beachten Sie o, dass es sich um Kleinbuchstaben handelt, damit insertder Betriebsmodus nicht verlassen wird . Sie können auch den Großbuchstaben Oin der ursprünglichen Antwort ändern , um den gleichen Effekt zu erzielen.

Maciej Sz
quelle
0

In MacVim können Sie im Bearbeitungsmodus mit den Befehlen "Pfeil nach links" und "Pfeil nach rechts" an den Anfang und das Ende der Zeile springen.

Dominik
quelle
Klingt so, als ob JtR vim in Terminal.app anstelle von MacVim verwendet (was ich wärmstens empfehlen und auch persönlich verwenden würde).
Matrix Mole
0

Gehen Sie zu Terminal -> Einstellungen -> Profile -> Tastatur und fügen Sie Folgendes hinzu:

Taste: ↖ Aktion: \ 033OH

Taste: ↗ Aktion: \ 033OF

Alfredo Cardigliano
quelle