Wie kann man in Terminal.app die Registerkarten Strg + Bild ab in Vim wechseln lassen?

7

Wenn ich vim im Terminal von Ubuntu ausführe, kann ich Ctrl+ Page Upoder verwenden Page Down, um zwischen den vim-Registerkarten zu wechseln. Wie richte ich dies für Terminal.app oder iTerm2 für Mac OS X ein? Ich habe ein Macbook Air (2011), daher habe ich keine "richtigen" Page Upund Page DownSchlüssel, wenn das wichtig ist.

Ich habe versucht, verschiedene Escape-Codes einzurichten, aber bisher funktioniert nichts.

EDIT: Ich habe keine Privilegien, um meine eigene Frage zu beantworten, aber hier ist die Antwort:

ANTWORTEN:

Ich habe die richtigen Escape-Sequenzen gefunden. In den Tastatureinstellungen von Terminal.app

Setzen Sie "control page up" auf "send string to shell:" mit dem folgenden Wert: "\ 033 [5; 5 ~"

Setzen Sie "Steuerseite nach unten" auf "Zeichenfolge an Shell senden:" mit dem folgenden Wert: "\ 033 [6; 5 ~"

ramn
quelle

Antworten:

9

Wenn Sie keine tatsächlichen pageupund pagedownTasten auf Ihrer Tastatur haben, können Sie diese nicht auf irgendetwas abbilden.

  • <C-PageDown>ist eine Alternative zu :tabnext, :tabnund gt.
  • <C-PageUp>ist eine Alternative zu :tabprevious, :tabNund gT.

Ich empfehle dringend, dass Sie verwenden gtund gTstattdessen folgen sie Vims Grammatik (Kleinbuchstaben für "Vorwärtsbefehle", Großbuchstaben für "Rückwärtsbefehle") und sind daher sehr leicht zu merken.

Wenn Sie nicht mögen gt/gT, können Sie sie etwas mehr nach Ihrem Geschmack zuordnen:

nnoremap <C-Up> gT
nnoremap <C-Down> gt

Aber ich denke nicht, dass es notwendig ist.

Ihr Beispiel (eine PageUp/PageDownTastatur ohne Sprache) scheint ein ziemlich gutes Beispiel für die Intelligenz von Vims scheinbar seltsamen Designentscheidungen zu sein.

--EDIT (gemäß der Anfrage des Fragestellers) -

Ich habe die richtigen Escape-Sequenzen gefunden. In den Tastatureinstellungen von Terminal.app

Setzen Sie "control page up" auf "send string to shell:" mit dem folgenden Wert: "\ 033 [5; 5 ~"

Setzen Sie "Steuerseite nach unten" auf "Zeichenfolge an Shell senden:" mit dem folgenden Wert: "\ 033 [6; 5 ~"

romainl
quelle
Hallo, ich kann meine eigene Frage anscheinend nicht beantworten, aber ich habe die Escape-Sequenzen gefunden, mit denen es funktioniert hat. Könnten Sie sie vielleicht in Ihre Antwort aufnehmen? Danke (Wenn du das tust, werde ich es akzeptieren :)
Ramn
Der MBA simuliert PageUp und PageDown mit <Funktionstaste> und ArrowUp / ArrowDown
Ramn
OK, ich habe meine Antwort bearbeitet. Aber ich denke, Sie könnten eine Antwort veröffentlichen, nicht wahr?
Romainl
romainl: Das Privilegierungssystem hat mir nicht erlaubt, eine Antwort auf meine eigene Frage zu posten. Ich bin hier ein neuer Benutzer. Vielen Dank für Ihre Antwort und Hilfe!
Ramn
Da musste ich danach suchen: Der \033Teil des Strings muss von Esc + [generiert werden.
Konrad
6

Basierend auf Ramns Antwort und nur als Referenz können Sie dieses Problem folgendermaßen lösen iTerm2:

  1. Gehe zu iTerm/ Preferences.../ Profiles/Keys
  2. Drücken Sie die +Taste, um eine Profilverknüpfung hinzuzufügen
  3. Verwenden Sie die Verknüpfung : ^Page Up, Aktion: "Escape-Sequenz senden", Wert[5;5~
  4. Verwenden Sie die Verknüpfung : ^Page Down, Aktion: "Escape-Sequenz senden", Wert[6;5~
elaichi
quelle