TheFuck - La commande qui corrige vos commandes

http://korben.info/thefuck-la-commande-qui-corrige-vos-commandes.html
Amis sous Linux, OSX ou BSD, si vos 10 doigts sont parfois plus rapides que votre cerveau, alors vous devez surement rager lorsque vous tapez une commande erronée dans votre terminal. Heureusement, j’ai la solution ! Ça s’appelle TheFuck et c’est une application qui permet de corriger automatiquement la commande précédemment entrée. Par exemple, si…

ça marche si on écrit fcuk ou fcku ?
sudo so
fcku
fuck

@fofo : Ahaha, bonne question !

Zsh fait aussi ça
zsh: correct ‘suudo’ to ‘sudo’ [nyae]?
zsh: correct ‘pcaman’ to ‘pacman’ [nyae]?

C’est pas aussi rapide et simple à mémoriser que ‘fuck’, mais il y a des expressions incluses de base dans bash qui permettent de corriger une ancienne commande tapée.

Quelques exemples :

!!		= dernière commande
!chaîne 	= dernière commande commençant par chaîne
!?chaîne	= dernière commande incluant chaîne
^old^new	= dernière commande en remplaçant la 1e occurrence de old par new
!!:gs/old/new 	= dernière commande en remplaçant toutes les occurrences de old par new

Ça peut servir quand on doit retaper une très longue commande en modifiant juste un passage ou simplement quand on oublie de mettre sudo devant la dernière commande : sudo !!

Par défaut, ces expressions ne sont pas développées, ce qui peut être ennuyeux parce qu’on ne voit pas à l’avance ce que bash va exécuter.
Pour les développer en appuyant sur espace, il faut ajouter dans son .bashrc :

bind Space:magic-space

Puis relancer son terminal ou recharger la config’ de bash via :

source ~/.bashrc

CTRL-r est un peu plus user friendly. On peut juste taper ctrl-r puis taper quelques lettres, il trouve la dernière commande contenant les caractères. Taper à nouveau ctrl-r pour remonter vers la commande précédente qui match et ainsi de suite. Pour retoucher les longues commandes on a ctrl-a et ctrl-e pour aller au début et à la fin ( assez standard, ça marche un peu partout y compris dans le browser ). Pour aller d’un mot à l’autre on a esc-f et esc-b, et évidemment les touches gauche-droite.

bon évidemment ça ne bat pas de vitesse les raccourcis en “!” si on est habitué