web-dev-qa-db-fra.com

Comment obtenir le contrôle + flèche gauche pour revenir en arrière d'un mot dans iTerm2?

J'étais en train de lire dans le manuel Linux et j'ai remarqué qu'il était dit que je pouvais utiliser les touches control + left et control + right pour avancer et reculer dans le terminal tout en modifiant le texte.

"Appuyer sur Ctrl et sur les touches fléchées gauche ou droite permet d'avancer ou de reculer d'un mot à la fois, tout comme l'appui sur Échap, puis sur B ou F."

Sous OS X, control+left et control+right contrôlent normalement les espaces. J'ai désactivé ceux-ci. J'ai également essayé d'utiliser le volet des préférences pour définir les raccourcis clavier:

enter image description here

enter image description here

Cependant, cela ne fonctionne pas et provoque cette erreur:

enter image description here

De plus, si je suis dans iTerm et que j'utilise alt+escape, alors B ou F, le personnage se déplace d'avant en arrière. Cela se produisait avant tout changement de ma configuration. Mais j'aimerais vraiment pouvoir utiliser contrôle + les touches fléchées.

107
cwd

bash

Ajoutez simplement ce qui suit à ~/.inputrc:

"\e[1;5D": backward-Word
"\e[1;5C": forward-Word

Voir cet article de wiki archivé pour plus d'explications. Si vous voulez utiliser le alt clé à la place pour le mouvement de Word à Word (comme le comportement par défaut d’OS X), utilisez:

"\e[1;9D": backward-Word
"\e[1;9C": forward-Word

zsh

zsh par défaut n'utilise pas la bibliothèque readline et ne lira donc pas ~/.inputrc. Pour obtenir la même fonctionnalité, vous pouvez ajouter ce qui suit à votre ~/.zshrc - ceci utiliserait à nouveau le alt clé:

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

Voir cette documentation pour plus d'informations sur l'éditeur de ligne zsh intégré (zle).


Pourquoi est-ce? Vous avez configuré votre profil pour utiliser les valeurs par défaut de Xterm:

enter image description here

C'est pourquoi vous devez "attraper" cette séquence et dire à readline quoi faire.


Si ce qui précède ne fonctionne toujours pas et que vous utilisez OS X 10.9 (Mavericks), vous devez probablement désactiver les raccourcis globaux de Mission Control qui empêchent les touches Ctrl + flèche d’atteindre iTerm, même si Mission Control est désactivé. Vous pouvez le faire à partir de Préférences Système → Clavier → Raccourcis → Contrôle de mission :

mission control keyboard prefs

132
slhck

Solution de travail pour zsh. Simple, direct, prêt à l'emploi.

  1. Goto: ⌘, Preferences → Profiles → Keys → Keyboard Behavior

  2. Charger le préréglage: Natural Text Editing

Load Preset "Natural Text Editing"

40
Happy Torturer

En fait, j'ai trouvé que la solution la plus simple était d'aller dans les paramètres de mon profil (trouvés dans Profils/Clés), en supprimant les raccourcis de profil incriminés (car le profil annulait global dans iTerm), dans mon cas alt + left et les raccourcis ont parfaitement fonctionné pour moi!

De plus, si vous utilisez OS X, il est probablement préférable de conserver des raccourcis à l’échelle du système, c’est-à-dire d’utiliser alt + left et alt + right à la place, avoir un comportement différent dans le terminal finira par causer une douleur.

Autre solution, la solution chmac consistant à utiliser Better Touch Tool constituait un moyen élégant de modifier le comportement du contrôle + flèche dans iterm uniquement.

7
nayyarv

Je l'ai corrigé de cette façon:

Dans le menu du haut; aller à

Profiles 
-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)
7
rassom

J'ai utilisé une approche différente. Utilisation de BetterTouchTool J'ai programmé un raccourci clavier personnalisé pour iTerm2. Lorsque j'appuie sur Alt-gauche dans iTerm2, le raccourci clavier ctrl-gauche est envoyé avec l'action "Envoyer le raccourci clavier à une application spécifique". L'application est iTerm2. J'ai fait la même chose pour alt-right mappé sur ctrl-right.

En effet, si vous appuyez sur les touches alt-gauche ou alt-droite dans iTerm, les touches ctrl-gauche ou ctrl-droite sont directement appliquées à iTerm2, en contournant le raccourci système habituel pour déplacer un poste de travail à gauche ou à droite. Comme cela, j'obtiens le comportement typique de Mac dans iTerm2, lors de sessions de terminal locales, mais également lors de sessions SSH distantes. Je peux utiliser la combinaison de touches ctrl-gauche/ctrl-droite pour passer à différents bureaux. Je l'ai écrit ici:

http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/

7
chmac

Cet article enseigne ceci et d'autres raccourcis comme ← Supprimer pour supprimer un mot:

http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/

2
Seralto

Vous devez aller dans l’onglet Profiles et supprimer le mappage pour alt+left et alt+right comme par défaut, il génère des valeurs hexadécimales.

1
Sid