Disons que j'ai écrit une longue commande dans le terminal Mac OSX, c'est-à-dire
say "Hello, how are you? I am good thank you. How is it going with you? Fine, thanks"
et maintenant je veux changer le mot Helloen Hi.
Pour ce faire, je dois maintenant appuyer (ou maintenir) sur la touche gauche du clavier jusqu'à ce que le "curseur" atteigne la fin du mot Hello, puis le supprimer. La technique habituelle consistant à «maintenir les options» ne fonctionne pas comme dans la plupart des autres applications OS X.
Existe-t-il un moyen de sauter un mot à la fois (ou tout autre moyen plus rapide d’obtenir le curseur)?
L’édition en ligne de commande est une fonction de votre shell, pas de Terminal . Votre shell est probablement bash et son style d’édition en ligne de commande est probablement «emacs».
Voici quelques combinaisons de touches de style Emacs que vous pourriez trouver utiles:
Californie: beginning-of-line
Ce: end-of-line
Mf: forward-word
Mo: backward-word
CD: delete-char
Md: kill-word(supprime le mot suivant)
M-DEL: backward-kill-word
C- x signifie Control+ x, donc Ca est Control+ a.
M- x signifie Meta+ x, mais il n'y a probablement pas de touche Méta sur votre clavier. Vous pouvez donc utiliser ESC x (c’est-à-dire Escapealors x). Le terminal dispose d'un paramètre pour envoyer automatiquement ESC avant que les touches ne soient enfoncées Option. L'utilisation de cette fonctionnalité désactive la gestion des caractères étendus que Mac OS X fournit généralement lors de l'utilisation du modificateur Option. Ainsi, si vous utilisez peu de caractères étendus et souhaitez envoyer Option+ xenvoyer ESC x , vous pouvez activer cette option de terminal .
Il existe de nombreuses façons de passer à «Bonjour» dans votre exemple:
Rechercher “Bonjour”: Cr H ello Cj (ou ESC)
Dans Emacs normal, il vous suffirait d'utiliser RET ( Return) pour mettre fin à la recherche à l'emplacement actuel et revenir à l'édition. Mais dans bash , les liaisons par défaut font que RET (c'est-à-dire Cm) exécute toujours la ligne en cours, même si une recherche incrémentielle est active. La partie Cj / ESC est donc un écart par rapport à Emacs normal.
Aller au début de la ligne et avancer: Ca Mf Cf (ou →)
Sautez au début de la ligne, puis déplacez-vous par mots: Ca Mf Mf Mb
Utilisez beaucoup Mb (seulement vraiment réalisable si vous mappez Option à Meta).
Il existe également plusieurs façons de réaliser le remplacement souhaité:
supprimer le mot et le remplacer: Md H i
supprimer des caractères et les remplacer: Cd Cd Cd Cd Cd H i
Dépassez “H” et supprimez l'œuvre suivante, remplacez-la: Cf Md i
Dépassez “H” et supprimez les caractères restants, remplacez-les: Cf Cd Cd Cd Cd i
Si vous vous êtes arrêté à la fin du mot (peut-être via Ca Mf Mf), vous pouvez utiliser M-DEL H i.
Je ne sais pas si cela est évident ou non, cela m'a pris une minute pour le comprendre, mais je suis sur un MBP sans clé méta et j'utilise une configuration de terminal par défaut. Pour avancer et revenir en arrière sur les mots, je peux appuyer sur Esc puis sur F, ou sur Esc puis B. Je voulais simplement mentionner cela parce que la façon dont il a été expliqué ci-dessus me faisait essayer d'appuyer sur Esc + x puis sur f ou b ...
cwd
Existe-t-il un moyen de modifier l'environnement ou le shell afin que je puisse utiliser les touches ctrl ou fn + correspondant à mon IDE?
La liaison readline par défaut forward-wordest Meta-F ( bash(1)page de manuel, section READLINE , sous- section Commandes pour le déplacement ). Je ne suis toutefois pas sûr de ce que Meta traduit dans OS X. Option, peut-être.
<kbd>
éléments. Un sous-ensemble de HTML est autorisé dans le balisage ici . L’apparence est due au style local de la balise (arrière-plan, couleur de bordure, style de bordure, largeur de bordure, etc.). Vous pouvez consulter le balisage source de mon message («Afficher le source» sur cette page ). Voir meta.stackexchange.com/questions/5527 même si le style fantaisie est désactivé sur MSO: meta.stackexchange.com/questions/1939/#23571set -o vi
dans votre fichier .bashrc! gnu.org/software/bash/manual/html_node/…La liaison readline par défaut
forward-word
est Meta-F (bash(1)
page de manuel, section READLINE , sous- section Commandes pour le déplacement ). Je ne suis toutefois pas sûr de ce que Meta traduit dans OS X. Option, peut-être.la source