J'ai remarqué que bash a un raccourci pour ctrl+T qui permute les deux derniers caractères avant le curseur.
Je me demande pourquoi les ingénieurs ont décidé d'inclure cela.
Ceci est hérité (par readline) de GNU Emacs, qui utilise control-T pour transposer des caractères:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
Notez que l'éditeur de ligne de bash utilise par défaut le mode Emacs, mais vous pouvez également le basculer en mode vi, si vous préférez.
Il est très utile de corriger rapidement les fautes de frappe:
sl
devient
ls
avec un seul CtrlT.
Vous pouvez utiliser AltT pour permuter également les mots ( par exemple lors du basculement entre service
et systemctl
...).
Historiquement parlant, le CtrlT caractéristique est venue à Bash d'Emacs selon toute vraisemblance. Il a probablement été copié sur Emacs par un autre éditeur; il était présent dans l'éditeur E de Stanford (voir Essential E page 13) en 1980, et E a eu un fort impact sur Richard Stallman (comme décrit dans Libre comme dans Freedom ). Il a été implémenté dans les toutes premières versions de Bash, avant sa première version en 1989, quand il a été retiré dans la bibliothèque readline
où il vit aujourd'hui (la toute première entrée dans le readline
ChangeLog
fait allusion à cela).
Cette combinaison de touches, une liaison héritée de l'éditeur de texte emacs
, fait permuter les 2 derniers caractères tapés à la fin de la ligne, utilisée au milieu d'une ligne, elle permute le caractère à gauche de le curseur et celui sous le curseur.
Il peut sembler vain d'avoir une liaison pour une fonctionnalité aussi rarement utilisée qui peut être facilement obtenue avec quelques touches de plus. Les anciens temporisateurs tels que je l'utilise assez souvent et permettaient de gagner du temps de transmission à l'époque des modems à 300 bauds, à la fin des années 70, en particulier au milieu des longues lignes.
Une commande similaire et plus utile, liée à Alt+T, transpose les mots à gauche et à droite du curseur.
T a été choisi car il s'agit de la lettre initiale de transpose. D'autres fixations avec une origine similaire comprennent:
Ces liaisons, implémentées dans le package GNU readline
, sont donc disponibles dans tous les programmes qui l'utilisent pour les entrées utilisateur, comme bash, mais aussi gdb, bc, ...
Certains sont également disponibles dans d'autres environnements: la ligne de saisie d'URL de Firefox, les champs de saisie de texte dans l'interface graphique OS/X et de nombreux gestionnaires de fenêtres basés sur X.
vim les utilisateurs peuvent sélectionner les liaisons correspondantes via une variable d'environnement.
Il est très utile de corroder les tpyos de smiple wehre yuo haev qui ont accidentellement transposé des paires de lettres.
(Ayant un RSI sévère dans les deux poignets, je finis par l'utiliser beaucoup, personnellement ...)
Une correction très rapide des fautes de frappe. effectue le bloc de correction immédiat 2 avant le coursier.
Si vous avez tapé ls-
et vous voulez un espace entre ls
& trait d'union alors vous pouvez utiliser Ctrl + T
Cela fonctionne si vous avez un espace après le trait d'union, puis faites Ctrl + T