it-swarm.com.de

Vim in OSX: Wie kann ich mit einer im Terminal geöffneten Vim-Datei Bild-auf / Bild-ab / zu EOL wechseln?

In PuTTY, wo ich hauptsächlich VIM verwendet habe, konnte ich Folgendes tun:

  • Bild auf/ab: Mit der nativen Bild auf/ab-Taste. Unter Mac ist die Alternative Fn + Auf/Ab, was im Terminal nicht funktioniert (kein Bildlauf in der VIM-Datei, aber Bildlauf im Terminalpuffer).
  • Ebenso bringen mich die Tasten Fn + rechts/links nicht zum Anfang/Ende der Zeile

Wie emuliere ich diese Funktionalität in Mac OS X?

27
TCSGrad

Dies ist keine spezielle Mac-Frage, dies ist wirklich eine vi-Frage.

Im Navigationsmodus scrollen Sie mit Strg-F eine Seite nach unten und mit Strg-B eine Seite nach oben (denken Sie an "F" nach vorn und "B" nach hinten). Strg-d scrollt eine halbe Seite nach unten und Strg-u eine halbe Seite nach oben.

^ bringt Sie an den Anfang einer Zeile und $ an das Ende. Ich weiß, ich weiß, aber dafür gibt es historische Gründe.

Hier ist ein wirklich guter Spickzettel für vi-Steuerelemente. vi ist ein bisschen geheimnisvoll, aber wenn Sie es erst einmal verinnerlicht haben, ist es der schnellste und geschickteste Texteditor der Welt.

46
Dan Ray

Die Standardeinstellungen des Terminals Shift-Page Up und Shift-Page Down zu den Zeichenfolgen, die Programme wie Vim und Emacs anweisen, einen Bildlauf durchzuführen (ESC [ 5 ~ und ESC [ 6 ~).

Wenn Sie möchten, dass diese Tasten Zeichenfolgen ohne das Symbol an das Terminal senden Shift können Sie die Tastaturbelegung anpassen:

Terminal> Einstellungen> Einstellungen> [Profil]> Tastatur

Wenn Sie dies tun, empfehle ich Ihnen, die Bedeutung des umzukehren Shift Ändern Sie den Wert für diese Tasten, indem Sie die Zuordnungen für die verschobenen und nicht verschobenen Tasten vertauschen, sodass die alternativen Verhaltensweisen weiterhin verfügbar sind. Weitere Informationen finden Sie im Menü Ansicht, das Bildlaufbefehle enthält, die das Symbol verwenden Command Modifikator, damit sie unabhängig von der Tastaturbelegung des Terminals verfügbar sind.

Ähnlich, Shift-Home und Shift-End werden zugeordnet, um zum Anfang/Ende der aktuellen Zeile zu gelangen (ESC [ H und ESC [ F). Diese Sequenzen werden von Bash verstanden, aber Sie müssen möglicherweise Vim anpassen, um sie zu verstehen, oder die Zuordnungen speziell für Vim bearbeiten. Vim, Emacs und einige andere Programme senden eine Escape-Sequenz, um das Terminal in den „Anwendungscursor-Modus“ zu versetzen, in dem die Home/End-Tasten ESC O H und ESC O F senden. Terminal (ab 10.9) implementiert dieses Verhalten jedoch nicht. Daher möchten Sie möglicherweise die Tastaturbelegung ändern, um stattdessen diese anderen Codes zu senden (Bash versteht sie auch). (Auf anderen Betriebssystemen Home und End werden für den Anfang/das Ende der Linie verwendet, daher stellt das Terminal ihnen die Shift Modifikator für Symmetrie.)

Control-Left Arrow und Control-Right Arrow Sie sind standardmäßig auch den Sequenzen "Zum Anfang/Ende der Zeile verschieben" zugeordnet, unterscheiden sich jedoch von den Sequenzen, denen sie zugeordnet sind Shift-Home und Shift-End. Stattdessen werden sie den Emacs- und Bash-kompatiblen Sequenzen ESC [ 5 D und ESC [ 5 C zugeordnet. Vorausgesetzt, diese werden von Vim nicht verwendet, ist es am einfachsten, Vim so anzupassen, dass sie diese akzeptieren, indem Sie ~/.vimrc verwenden.

Beachten Sie, dass Terminal in neueren Versionen von macOS keine expliziten Zuordnungen mehr für hat Home und End in den Einstellungen standardmäßig. Stattdessen weist es ein dynamisches Verhalten auf, bei dem die Tasten automatisch dem Zeilenanfang/-ende zugeordnet werden, wenn der alternative Bildschirm aktiv ist, z. B. bei Verwendung einer Vollbildanwendung wie emacs, vim, screen oder tmux. Wenn Sie ein zeilenorientiertes Programm wie eine Shell auf dem Hauptbildschirm verwenden, rollen sie standardmäßig weiter durch die Terminalansicht. Das Shift Modifikator kehrt das Verhalten um.

14
Chris Page

Die einfachste und beste Lösung ist n + , wobei n die Anzahl der Zeilen ist, die Sie nach unten gehen möchten, und die Nach-unten-Taste ist.

Ich mache regelmäßig nur 12 + und 22 + .

2
T.Woody

Ich war es gewöhnt, Home/End im Einfügemodus an den Anfang und das Ende von Zeilen zu bringen (von Windows und meiner Meinung nach Linux), was der Mac nicht unterstützt. Dies ist besonders ärgerlich, da ich vim auf einem Remote-System nicht so einfach verwenden kann. Nach einigen schmerzhaften Versuchen und Irrtümern habe ich einige .vimrc-Zeilen gefunden, die dasselbe tun, und schließlich jemanden gefunden, der hier eine ähnliche Lösung gefunden hat:

https://coderwall.com/p/fd_bea

Genießen.

:inoremap <C-e> <C-o>$
:inoremap <C-a> <C-o>0
1
user1442960