J'ai remarqué que bash a un raccourci pour ctrl+ Tqui permute les deux derniers caractères avant le curseur.
Je me demande pourquoi les ingénieurs ont décidé d'inclure cela.
- At-il hérité d'une convention antérieure?
- Ou existe-t-il un but pratique pour lequel cela est couramment utilisé?
bash
keyboard-shortcuts
history
Philip Kirkbride
la source
la source
bash
, en tant que tel, maisreadline
(ce que bash utilise pour entrer à l'invite). Votre bash utilise desemacs
raccourcis clavier; vous pouvez changer en raccourcis clavier si votre éditeur est partisan;) sanctum.geek.nz/arabesque/vi-mode-in-bash Il y a quelques "feuilles de triche" pourreadline
ici: readline.kablamo.org/emacs .html et readline.kablamo.org/vi.html .readline
ChangeLog
allusions à cela. Donc, à l'origine, le raccourci était traité dans Bash lui-même, bien que brièvement, avant d'être retiréreadline
- mais le raccourci venait d'Emacs à Bash (je ne sais pas s'il a été inventé à Emacs ou est venu ailleurs).Réponses:
Ceci est hérité (par readline) de GNU Emacs, qui utilise control- Tpour transposer des caractères:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
Notez que l'éditeur de lignes de bash passe par défaut en mode Emacs, mais vous pouvez également le basculer en mode vi, si vous préférez.
la source
Il est très utile de corriger rapidement les fautes de frappe:
devient
avec un seul CtrlT.
Vous pouvez également AltTéchanger des mots ( par exemple lors du basculement entre
service
etsystemctl
...).Historiquement parlant, la CtrlTfonctionnalité est probablement venue d’Emacs à Bash. 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 eut un fort impact sur Richard Stallman (comme décrit dans Free as in Freedom ). Il a été implémenté dans les toutes premières versions de Bash, avant sa première parution en 1989, lorsqu'il a été extrait de la
readline
bibliothèque où il se trouve aujourd'hui (la toute première entrée dans lesreadline
ChangeLog
allusions à cela).la source
word1 word2 word3
àword3 word2 word1
si elle est effectuée àword3
.Cette combinaison de touches, une liaison héritée de l’
emacs
éditeur, permet d’échanger les 2 derniers caractères saisis à la fin de la ligne, de les utiliser au milieu d’une ligne, d’échanger le caractère situé à gauche du curseur et celui situé en dessous de la ligne. le curseur.Il peut sembler vain d’avoir une reliure pour une caractéristique aussi peu utilisée qui peut être facilement réalisée avec quelques touches de plus. Les vieux lecteurs 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, notamment au milieu de longues lignes.
Une commande similaire et plus utile, liée à Alt+ T, transpose les mots à gauche et à droite du curseur.
Ta été choisi car il s’agit de la lettre initiale de transposition . Les autres liaisons ayant une origine similaire incluent:
Ces liaisons, implémentées dans le paquet GNU readline, sont donc disponibles dans tous les programmes qui l’utilisent pour la saisie utilisateur, tels que bash , mais aussi gdb , bc , ...
Certains d'entre eux sont également disponibles dans d'autres environnements: la ligne de saisie de l'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.
Les utilisateurs de vim peuvent sélectionner les liaisons correspondantes via une variable d’environnement.
la source
Alt
etCtrl
versions de ces frappes sont liées d'une manière cohérente.C-t
semble cependant ne rien faire. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindingsIl est très usuel de corriger les peines de pseudonymes que vous avez acquises par inadvertance.
(Ayant un RSI sévère aux deux poignets, je finis par l'utiliser beaucoup, personnellement ...)
la source
Un très vite corriger les fautes de frappe. effectue le bloc de correction immédiat 2 avant le courser.
Si vous avez tapé
ls-
et que vous voulez un espace entrels
& tirets, vous pouvez utiliser Ctrl+TCela fonctionne si vous avez un espace après le trait d'union puis faites Ctrl+T
la source