iTerm2 Vim Alt + Pfeil nach rechts / links

13

Als Linux-Benutzer bin ich es sehr gewohnt, in vim / nano mit ALT+ leftoder von Wort zu Wort zu springen right.

Dies scheint mit iTerm nicht richtig zu funktionieren, ich verwende zsh, ich habe versucht hinzuzufügen;

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

Es funktioniert, aber nur innerhalb von zsh. Dann habe ich diese Zeilen kommentiert und in iTerm eine Tastenkombination hinzugefügt.

Bildbeschreibung hier eingeben

Es funktioniert, aber nur für die ALTleft

Wie kann ich dafür sorgen, dass es auch für den rechten Pfeil funktioniert?

seds
quelle

Antworten:

10

Gehen Sie in den Eigenschaften von iTerm zu Profile -> Schlüssel und richten Sie dort ein

  • Für ⌥→Send Escape Sequence[1;5C
  • Für ⌥←Send Escape Sequence[1;5D

Bildbeschreibung hier eingeben

eiennohito
quelle
Das geht bei mir nicht. Die Escape-Sequenzen werden gesendet, aber vim bewegt sich nur ein Leerzeichen vor und zurück. Ausführen der Standardversion 7.3 von OS X 10.8. Im Idealfall würde ich es gerne auf der Seite von vim ändern, ohne die Standardeinstellungen des Terminal-Emulators zu ändern (da dies zu einer besseren Portabilität führt).
Slhck
Das ist komisch, es funktioniert sowohl in vim (von Homebrew, kein Standard) als auch in zsh mit der Standardkonfiguration von oh-my-zsh (in ~ / .oh-my-zsh / lib / key-bindings.sh).
Eiennohito
Funktioniert auch hier nicht, ich kann Alt + Pfeil in Zsh verwenden, in Vim funktioniert es nur mit Shift + Pfeil :(
Seds
Ich habe es auf verfügbaren Remote-Systemen (Ubuntu 13.04, Stable Debian und Scientific Linux) noch einmal überprüft und es funktioniert überall. Was ist die Ausgabe, wenn Sie Strg + V, ⌥ → drücken? Für mich ist es ^ [[1; 5C
eiennohito
Funktioniert für mich: iTerm / Vi + zsh
Petro Semeniuk
7

Sehen Sie sich zunächst den Schlüsselcode an, den Ihr Terminal an vim sendet:

$ sed -n l
^[[1;9D 

Im obigen Beispiel habe ich den Befehl sed ausgeführt und gedrückt Alt + Left.

Das ^[[1;9Dist die entkam Sequenz vim gesendet werden, so können wir Benutzer , dass für unser Mapping.

Zu vimrc hinzufügen:

map <Esc>[1;9D :tabn<CR>
lfender6445
quelle
Danke, das hat bei mir geklappt.
j5shi
0

Keine dieser Antworten hat für mich funktioniert. Am Ende lud ich eine Linux-VM und überprüfte, was ich mit bekommen würde <Alt-ARROW>.

Die 4 Fluchtsequenzen, die für mich gearbeitet haben, sind die folgenden:

  • <Alt+Up>: [1;3A
  • <Alt+Down>: [1;3B
  • <Alt+Right>: [1;3C
  • <Alt+Left>: [1;3D

Achten Sie darauf, die Profilschlüssel zu bearbeiten und nicht die Hauptschlüssel, die von den Profilschlüsseln überschrieben werden (wobei Alt + Pfeile standardmäßig auf eine Hex-Sequenz gesetzt sind, die mit vim nicht funktioniert).

Jerska
quelle
-1

Als weitere mögliche Lösung bietet vim Wortbewegungen an, siehe:

:help word-motions
tnull
quelle
2
Sie sollten die wesentlichen Informationen angeben, anstatt hier nur einen Verweis anzubringen.
Pabouk