„Home“- und „Ende“-Hotkeys im Vim-INSERT-Modus mit MacBook Pro

Ich bin ziemlich neu bei Vim und bei Mac, ich habe ein MacBook Pro mit Retina Display, auf dem OS X 10.8.3 läuft, das KEINE nativen Home, und Schlüssel hat.EndPageUpPageDown

Ich weiß, dass das Fn+ arrow keysin einigen Anwendungen funktionieren kann. Auch in Bash kann ich Ctrl+ Azum Anfang der Befehlszeile gehen, die ich tippe, und Ctrl+ Ezum Ende gehen.

Aber in Vim mit INSERT/edit-Modus funktioniert das alles anders. 0Ich möchte nicht immer mit und $oder Iund in den Normalmodus wechseln A. (Oder ist das der beste Weg?)

Kann mir also jemand ein paar Tricks zeigen, um einige Hotkeys zuzuordnen, die bequem funktionieren können? Oder einige andere Lösungen? (Aber bitte ohne MacVim, ich möchte zuerst eine Weile natives Vim ausprobieren:) )?

Alle anderen Tipps für Home, End, PageUpund PageDownFunktionen unter dem Mac sind ebenfalls willkommen.

Antworten (3)

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

Taste: ↖ Aktion: \033OH

Taste: ↗ Aktion: \033OF

Mit Vim können Sie jede Tastenfolge mithilfe von Befehlen anderen Tastenfolgen zuordnen :map. Es gibt mehrere Arten dieses Befehls, die verwendet werden können, um Verknüpfungen nur für einige vim-Modi zu erstellen. Sehen Sie sich diese Seite und/oder :help mapden Befehl in vim an, um Einzelheiten zu erfahren.

Zu Ihren Fragen gibt es in vim zwei Möglichkeiten, HomeVerhalten zu implementieren:

  • 0(Null), um zur allerersten Spalte zu gelangen
  • ^um zur Spalte mit dem ersten Nicht-Leerzeichen in einer bestimmten Zeile zu gehen

Denn EndSie können verwenden $. Für PageUpund PageDownkönnen Sie Ctrl+Fbzw. verwenden Ctrl+B.

Diese Tasten funktionieren nur im Befehlsmodus, aber Sie können sie für die Verwendung im Einfügemodus mit :imap('i' steht hier für den Einfügemodus) und neu zuordnen Ctrl+F. Verwenden Sie beispielsweise diesen Befehl , um Ctrl+Azuzuordnen, um als zu handeln :0

:imap <C-a> <C-o>0

Es ist ein sehr standardmäßiger vim-Befehl und muss wie ein Zauber in Konsolen-vim, gvim, mvim usw. funktionieren.

Nur ein Tipp. Standardmäßig läuft bash im "emacs-Modus". Sie können es in den "vi-Modus" ändern. Bash verwendet das readline-Paket, um Ihre Befehlszeile zu bearbeiten. Weitere Informationen finden Sie im Abschnitt „READLINE“ der Bash-Manpage.

Kurz gesagt, Sie können viele Tastenbelegungen in einer Datei namens .inputrc neu definieren, die sich in Ihrem Home-Ordner befinden sollte.

readline wird auch von einer Reihe anderer Dienstprogramme und Orte wie der interaktiven Python-Shell verwendet.