Serait-il possible de configurer iTerm 2 pour revenir en arrière et avancer d'un mot dans le texte actuel de la ligne de commande à l'aide d'un raccourci clavier?
Serait-il possible de configurer iTerm 2 pour revenir en arrière et avancer d'un mot dans le texte actuel de la ligne de commande à l'aide d'un raccourci clavier?
Réponses:
Ctrl-[ b
saute un mot en arrière. Vous pouvez également utiliser à la Esc
place ou Ctrl-[
, et f
pour avancer.
C'est Ctrl
+ [
libération et ensuite b
ou f
. Ou Esc
et b
ou f
.
Plus d'informations peuvent être trouvées dans cette autre discussion sur AskDifferent.
Tuer une mouche avec un canon:
Ensuite, vous pouvez déplacer un mot en arrière en utilisant Option ⌥+ ←et un mot en avant en utilisant Option ⌥+ →, aller au début de la ligne en utilisant fn+ ←et en fin de ligne avec fn+ →. Vous pouvez également supprimer un mot à l’aide de Option ⌥+ ⌫, supprimer la ligne entière de Command ⌘+ ⌫.
Si le préréglage n'apparaît pas, réinstallez iTerm2. Si vous l'avez installé avec Homebrew + Cask:
brew cask reinstall iterm2
J'aime la configuration suivante.
avancer d'un mot
option+right
send escape sequence
f
reculer d'un mot
option+left
send escape sequence
b
supprimer au début du mot ( crédit )
option+delete
send hex code
0x1B 0x08
supprimer à la fin du mot
fn+option+delete
send escape sequence
d
(Je ne m'en souviens pas avec certitude, mais je pense avoir copié cette réponse à partir de la réponse de jherran ci-dessous et y avoir ajouté davantage. J'aurais dû ajouter les informations supplémentaires dans les commentaires ou suggéré de modifier cette réponse. Je ne sais pas comment améliorer la situation, mais maintenant c'est connu.)
Cela fonctionne au moins pour bash. Pour zsh, il existe d' autres moyens de naviguer.
Semblable à d'autres réponses, mais pour Zsh, il m'a fallu un certain temps pour trouver ceci:
Si vous utilisez Zsh, comme Oh My Zsh, dans iTerm, accédez à: Préférences> Profils > Clés
Cliquez + signe
Ajoutez votre raccourci clavier, choisissez "Envoyer séquence d'échappement"
entrées pour gauche et droite ci-dessous.
la gauche:
[1;5D
droite:
[1;5C
Ouvrir les préférences
Configurer la touche d’option gauche (et / ou) droite pour envoyer Esc +
Si vous avez modifié vos paramètres prédéfinis, vous devrez peut-être charger le paramètre prédéfini par défaut (attention, cela pourrait effacer vos associations personnalisées!)
Si vous voyez des caractères étranges après cela, vous devrez peut-être configurer votre ~ / .inputrc ou / etc / inputrc
Ajoutez ceci à votre ~ / .inputrc:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
exemple complet inputrc:
# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off
# try to enable the application keypad when it is called. Some systems
# need this to enable the arrow keys.
# set enable-keypad on
# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
# do not bell on tab-completion
# set bell-style none
# set bell-style visible
# some defaults / modifications for the emacs mode
$if mode=emacs
# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert
# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history
# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line
# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line
$endif
Vous pouvez configurer votre terminal en mode vi set -o vi
pour pouvoir utiliser les commandes de mouvement vi habituelles (ajoutez la ligne .bash_profile
pour stocker le réglage de manière permanente.)
Donc, comme si dans vi, vous pouvez frapper Esc
, puis b
pour déplacer un mot en arrière ( w
pour avancer), aller au début de la ligne avec 0
, ou rechercher un caractère en arrière avec F
+ le caractère.
Appuyez sur i
pour revenir en mode normal et insérer.
Ceux qui connaissent vi peuvent faire beaucoup plus. Un aide-mémoire peut être trouvé ici .
Esc
ensuite I
une fois au début de la ligne Ctrl-a
. Ce cas d'utilisation se produit souvent lorsque vous souhaitez simplement modifier le nom de la commande. J'utilise donc le mode vi avec quelques modifications de corrélation dans iTerm2 pour mapper Ctrl-A
et similaire pour échapper à la séquence Esc+0
. De cette façon, ces cas sont encore plus rapides car ils se terminent en mode édition.
Avec iTerm2 3.1.4, j'ai pu configurer les éléments suivants sans ajouter de mappages de clés individuels.
Avec une nouvelle session Terminal, vous pouvez maintenant utiliser:
Option ⌥+ fpour aller de l'avant
Option ⌥+ bpour aller de l'avant
Option ⌥+ Delete ⌫pour supprimer Word