In Putty, bei dem 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?
Antworten:
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.
quelle
Die Standardeinstellungen des Terminals ordnen Shift- Page Upund Shift- Page Downden Zeichenfolgen zu, mit denen Programme wie Vim und Emacs angewiesen werden, einen Bildlauf (
ESC [ 5 ~
undESC [ 6 ~
) durchzuführen .Wenn Sie möchten, dass diese Tasten Zeichenfolgen ohne den ShiftModifikator an das Terminal senden , können Sie die Tastaturbelegung anpassen:
In diesem Fall empfehle ich, die Bedeutung des ShiftModifikators für diese Tasten zu invertieren, indem Sie die Zuordnungen für die verschobenen und nicht verschobenen Tasten vertauschen, damit die alternativen Verhaltensweisen weiterhin verfügbar sind. Weitere Informationen finden Sie im Menü Ansicht , das Bildlaufbefehle enthält, die den CommandModifikator verwenden, damit sie unabhängig von der Tastaturbelegung des Terminals verfügbar sind.
Ebenso werden Shift- Homeund Shift- Endzugeordnet, um zum Anfang / Ende der aktuellen Zeile (
ESC [ H
undESC [ F
) zu gelangen. 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 „Application Cursor Mode“ zu versetzen, in dem die Home / End-TastenESC O H
und sendenESC O F
, Terminal (ab 10.9) dieses Verhalten jedoch nicht implementiert. Daher möchten Sie möglicherweise die Tastaturbelegung ändern, um stattdessen diese anderen Codes zu senden (Bash versteht sie auch). (Auf anderen Betriebssystemen Homeund Endfür den Anfang / das Ende der Zeile verwendet, stellt Terminal ihnen den ShiftModifikator für die Symmetrie zur Verfügung.)Control- Left Arrowund Control- Right Arrowsind ebenfalls standardmäßig den Sequenzen "Zum Anfang / Ende der Zeile" zugeordnet, obwohl sie sich von den Sequenzen unterscheiden, die den Sequenzen Shift- Homeund Shift- zugeordnet sind End. Stattdessen werden sie den Emacs- und Bash-kompatiblen Sequenzen
ESC [ 5 D
und zugeordnetESC [ 5 C
. 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 standardmäßig keine expliziten Zuordnungen für Homeund Endin den Einstellungen mehr hat . 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, scrollen Sie standardmäßig weiter durch die Terminalansicht. Der ShiftModifikator kehrt das Verhalten um.
quelle
\033[5~
(und ... 6.) für PageDown / Up hinzufügen.Die einfachste und beste Lösung ist
n
+↓
. Dabein
handelt es sich um die Anzahl der Zeilen, die Sie nach unten verschieben möchten, und↓
die Nach- unten-Taste.Ich mache regelmäßig nur
12
+↓
und22
+↓
.quelle
Ich war es gewohnt, mit Home / End im Einfügemodus an den Anfang und das Ende von Zeilen zu gelangen (von der Verwendung unter Windows und meiner Meinung nach unter Linux), die von Mac nicht unterstützt werden. 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 irgendwann eine andere gefunden, die hier eine ähnliche Lösung gefunden hat:https://coderwall.com/p/fd_bea
Genießen.
quelle