iTerm2 Vim alt + flèche droite / gauche


13

En tant qu'utilisateur Linux, j'ai l'habitude de passer d'un mot à l'autre dans vim / nano en utilisant ALT+ leftou right.

Cela ne semble pas fonctionner correctement avec iTerm, j'utilise zsh, j'ai essayé d'ajouter;

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

Cela fonctionne, mais à l'intérieur de zsh uniquement, j'ai commenté ces lignes et ajouté dans iTerm un raccourci clavier;

entrez la description de l'image ici

Cela fonctionne, mais uniquement pour le ALTleft

Comment puis-je le faire fonctionner pour la flèche droite aussi?

Réponses:


10

Dans les propriétés d'iTerm, accédez à Profils -> Clés et configurez-y

  • Pour ⌥→envoyer la séquence d'échappement[1;5C
  • Pour ⌥←envoyer la séquence d'échappement[1;5D

entrez la description de l'image ici


Ça ne marche pas pour moi. Les séquences d'échappement sont envoyées, mais vim ne déplace que d'un espace dans les deux sens. Exécuter le vim 7.3 par défaut fourni avec OS X 10.8. Idéalement, j'aimerais le changer du côté de vim, sans modifier les paramètres par défaut de l'émulateur de terminal (car cela entraînera une meilleure portabilité).
slhck

C'est bizarre, cela fonctionne à la fois dans vim (de homebrew, pas celui par défaut) et zsh avec la configuration par défaut de oh-my-zsh (dans ~ / .oh-my-zsh / lib / key-bindings.sh).
eiennohito

Ne fonctionne pas ici non plus, je peux utiliser alt + flèche à l'intérieur de zsh, dans Vim cela ne fonctionne qu'avec shift + flèche :(
seds

Je l'ai vérifié une fois de plus sur les systèmes distants disponibles (Ubuntu 13.04, Debian stable et Linux scientifique) et cela fonctionne partout. Quelle est la sortie lorsque vous appuyez sur Ctrl + V, ⌥ →? Pour moi, c'est ^ [[1; 5C
eiennohito

Fonctionne pour moi: iTerm / Vi + zsh
Petro Semeniuk

7

Commencez par consulter le code clé que votre terminal envoie à vim:

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

Dans l'exemple ci-dessus, j'ai exécuté la commande sed et appuyé sur Alt + Left.

La ^[[1;9Dséquence d'échappement est envoyée à vim, nous pouvons donc l'utiliser pour notre mappage.

Ajouter à vimrc:

map <Esc>[1;9D :tabn<CR>

Merci, cela a fonctionné pour moi.
j5shi


0

Aucune de ces réponses n'a fonctionné pour moi. J'ai fini par charger une machine virtuelle Linux et vérifié ce que j'allais obtenir <Alt-ARROW>.

Les 4 séquences d'échappement qui ont fonctionné pour moi sont celles-ci:

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

Veillez à modifier les touches de profil et non les principales qui seront remplacées par celles du profil (où Alt + Flèches sont définies par défaut sur une séquence hexadécimale qui ne fonctionnait pas avec vim).


-1

Juste une autre solution possible, vim propose des mouvements de mots seuls, voir:

:help word-motions

2
Vous devez inclure les informations essentielles au lieu de simplement mettre une référence ici.
pabouk
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.