web-dev-qa-db-fra.com

Existe-t-il un moyen dans le terminal OS X de déplacer le curseur mot par mot?

Je connais la combinaison Ctrl+A pour aller au début de la commande en cours, et Ctrl+E sauter au bout.

Mais y a-t-il un moyen de sauter Word par Word, comme Alt+/ dans les applications de cacao fait?

720
Arne

Hors de la boîte, vous pouvez utiliser le très bizarre Esc+F pour passer au début du prochain mot et Esc+B pour aller au début du mot actuel.

522
Kristian J.

Sur Mac OS X - les raccourcis clavier suivants fonctionnent par défaut. Notez que vous devez faire en sorte que la touche Option agisse comme Meta dans les préférences du terminal (sous l'onglet Clavier)

  • alt (⌥)+F sauter F par un mot
  • alt (⌥)+B sauter B ackward par un mot

J'ai observé que les raccourcis clavier par défaut emacs pour la navigation simple semblent fonctionner sur des shells bash. Vous pouvez utiliser

  • alt (⌥)+D supprimer un mot à partir de la position actuelle du curseur
  • ctrl+A sauter au début de la ligne
  • ctrl+E sauter au bout de la ligne
  • ctrl+K tuer la ligne à partir de la position du curseur
  • ctrl+Y coller du texte depuis le tampon de suppression
  • ctrl+R pour inverser la recherche des commandes que vous avez saisies dans le passé à partir de votre historique
  • ctrl+S faire suivre la recherche (fonctionne en zsh pour moi mais pas en bash)
  • ctrl+F avancer par un char
  • ctrl+B reculer d'un personnage
  • ctrl+W supprimer le mot à l'envers de la position du curseur
384
Varun Katta

Voici comment vous pouvez le faire

Par défaut, le terminal dispose de ces raccourcis pour déplacer (à gauche et à droite) Word-by-Word:

  • esc+B (la gauche)
  • esc+F (droite)

Vous pouvez configurer alt+ et  pour générer ces séquences pour vous:

  • Ouvrir les préférences du terminal (cmd+,)
  • Dans l'onglet Paramètres, sélectionnez Clavier et double-cliquez sur ⌥ ← s'il est présent ou ajoutez-le s'il ne l'est pas.
  • Définissez le modificateur comme vous le souhaitez et tapez le raccourci clavier dans la case: esc+B, en générant le texte \033b (vous ne pouvez pas taper ce texte manuellement).
  • Répétez l'opération pour Word-right (esc+F devient \033f)

Alternativement, vous pouvez vous référer à ce blog sur textmate:

http://blog.macromates.com/2006/Word-movement-in-terminal/

273
Fil

Basculez vers iTerm2 . C'est gratuit et beaucoup plus agréable qu'un simple vieux terminal. En outre, il a beaucoup plus d'options de personnalisation, comme les raccourcis clavier.

Aussi j'aime que vous puissiez utiliser cmd et 1-9 pour basculer entre les onglets. Essayez-le et vous ne retournerez jamais au terminal habituel :)

Comment configurer les préférences de clavier personnalisées dans iterm2

  • Installez iTerm2
  • Lancez puis accédez au volet des préférences.
  • Choisissez l'onglet Profils de clavier
  • Vous devrez soit copier le profil dans quelque chose de nouveau, puis supprimer les raccourcis clavier tels que ^Right/Left ou si vous ne vous souciez pas d'une sauvegarde, supprimez-la simplement du profil par défaut.
  • Assurez-vous ensuite que votre profil modifié est sélectionné (suivi)

Picture 1.png

  • Maintenant, choisissez l'onglet du clavier (rangée très supérieure)

iTerm 2

  • Cliquez sur le bouton plus pour ajouter un nouveau raccourci clavier
  • Dans le premier type de boîte CMD+Left arrow
  • Dans la deuxième case, choisissez "envoyer le code d'échappement"
  • Dans la troisième case, tapez la lettre B

Picture 2.png

  • Répétez avec les combinaisons de touches souhaitées. escape+B déplace un mot vers la gauche, escape+f déplace un mot vers la droite.
  • vous pouvez également souhaiter mettre en place cmd+d supprimer le mot devant le curseur avec escape+d

J'ai souvent appuyé sur le mauvais bouton (cmd / control / alt) avec une touche fléchée et j'ai donc mes combinaisons de touches fléchées avec ces boutons tous réglés pour sauter en avant et en arrière des mots, mais s'il vous plaît faites ce qui vous convient le mieux.

157
cwd

En réalité, il existe une bien meilleure approche. Tenir option ( alt sur certains claviers) et appuyez sur les touches fléchées gauche ou droite pour vous déplacer par Word. Aussi simple que cela.

option
option

Également ctrle vous mènera au bout de la ligne et ctrla vous amène au début.

142
mdubez

J'ai Alt+/ working: open Préférences "Paramètres" Clavier, définissez l’entrée pour option: curseur vers la gauche à envoyer la chaîne à Shell:\033b, puis définissez - option curseur droite à envoyer une chaîne à Shell:\033f. Vous pouvez également l'utiliser pour d'autres combinaisons de touches de contrôle.

78
Peter Hilton

En fait, cela dépend du shell que vous utilisez. Cependant, la plupart des shell ont des liaisons similaires. Les liaisons auxquelles vous faites référence (par exemple Ctrl+A et Ctrl+E) sont des liaisons que vous trouverez dans de nombreux autres programmes et qui sont utilisées depuis très longtemps, BTW fonctionne également dans la plupart des applications d'interface utilisateur.

Voici un aperçu des liaisons par défaut pour Bash:

Principaux raccourcis clavier Bash

Veuillez également noter que vous pouvez les personnaliser. Vous devez créer un fichier, nommez-le à votre guise, j'ai nommé le mien .bash_key_bindings et je l'ai mis dans mon répertoire personnel. Là, vous pouvez définir des options générales bash et vous pouvez également définir des raccourcis clavier. Pour vous assurer qu’elles sont appliquées, vous devez modifier un fichier nommé ". Bashrc" que bash lit au démarrage (vous devez le créer, s'il n'existe pas) et effectuez l'appel suivant:

bind -f ~/.bash_key_bindings

~ signifie répertoire de base en bash, comme indiqué ci-dessus, vous pouvez nommer le fichier comme bon vous semble et également le placer où bon vous semble tant que vous entrez le chemin correct + le nom à lier.

Laissez-moi vous montrer quelques extraits de mon fichier .bash_key_bindings:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

Celles-ci ne font que définir quelques options (par exemple, désactiver la cloche; toutes les informations peuvent être consultées sur la page Web bash).

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

Ceux-ci s'assurent que les personnages seuls ne font rien d'autre que de s'assurer que le personnage est "tapé" (ils s'insèrent eux-mêmes dans le shell).

"\C-dW": kill-Word
"\C-dL": kill-line
"\C-dw": backward-kill-Word
"\C-dl": backward-kill-line
"\C-da": kill-line

C'est assez intéressant. Si je frappe Ctrl+D seul (j'ai choisi d pour supprimer), rien ne se passe. Mais si je tape ensuite une lettre minuscule w, le mot situé à gauche du curseur est supprimé. Si je tape une majuscule, cependant, le mot à droite du curseur est tué. Il en va de même pour l et L pour la ligne entière à partir du curseur. Si je tape un "a", toute la ligne est en fait supprimée (tout ce qui se trouve avant et après le curseur).

J'ai placé sauter un mot en avant sur Ctrl+F et un mot en arrière sur Ctrl+B

"\C-f": forward-Word
"\C-b": backward-Word

Comme vous pouvez le constater, vous pouvez créer un raccourci menant immédiatement à une action, ou vous pouvez en créer un qui ne contient qu'une séquence de caractères et vous devez ensuite taper un (ou plusieurs) caractères pour que l'action se déroule de la manière suivante: montré dans l'exemple ci-dessus.

Donc, si vous n'êtes pas satisfait des liaisons par défaut, n'hésitez pas à les personnaliser à votre guise. Voici un lien vers le manuel de bash pour plus d'informations.

38
Mecki

Si vous êtes un utilisateur de Vim, vous pouvez essayer le mode vim de bash. Exécutez ceci ou mettez-le dans votre fichier ~/.bashrc:

set -o vi

Par défaut, vous êtes en mode insertion. appuyez sur echap et vous pouvez vous déplacer comme vous pouvez le faire en mode normal Vim. Le mouvement par Word est donc w ou b et les touches de mouvement habituelles fonctionnent également .

14
jches

Si vous cochez Use option as meta key dans l’onglet Clavier des préférences, les commandes de style emacs par défaut pour Word en avant et en arrière et ⌥F (Alt+F) et ⌥B (Alt+B) respectivement.

Je vous recommande de lire From Bash to Z-Shell . Si vous voulez augmenter vos prouesses bash/zsh!

14
Matt

À partir de Mac OS X Lion 10.7, Cartes terminales Option-Left/Right Arrow à Esc-b/f Par défaut, il est maintenant intégré pour bash et d'autres programmes qui utilisent ces associations de touches compatibles avec emacs.

12
Chris Page

Dans Bash, ceux-ci sont liés à Esc-B et Esc-F. Bash a beaucoup, beaucoup plus de raccourcis clavier; jetez un coup d'œil à la sortie de bind -p pour voir ce qu'ils sont.

8
Andy Lynch

Sous iterm2 Préférences> Profil> Clés , vous cliquez sur le + ci-dessous Mappages de touches et enregistrez un nouveau raccourci. Pour Action , sélectionnez Send Escape Sequence et saisissez b ou f pour les versions précédente et suivante.

Quand j'ai essayé d'en enregistrer un pour (Ctrl+), J'ai remarqué dans le champ Raccourci clavier que la flèche n'apparaissait jamais. Il s’est avéré que je devais désactiver les préférences par défaut du Mac > Clavier> Raccourcis> Contrôle de la mission pour commencer à faire fonctionner les éléments, car ils remplaceraient ceux d’iterm2. raccourcis par défaut. Cela devrait également être vrai pour l'application de terminal standard.

Keyboard system preferences

3
qix

Maintenez la touche Option enfoncée et cliquez à l'endroit où vous souhaitez déplacer le curseur.

2
Dan Alboteanu

Utilisez Édition de texte naturel preset!

 enter image description here

Essentiellement, il lie, entre autres séquences clés, Option + LeftArrow à la séquence ^[b et Option + RightArrow à ^[f

Cela fonctionne dans fish et bash, ainsi que dans psql terminal.

0
Dziamid