bash
, zsh
, et ksh
(y compris ses dérivés) ont cette commande intégrée très pratique fc
, qui ouvre un éditeur pour modifier votre commande précédente. Si la variable FCEDIT
n'est pas définie, par défaut elle appellera l'éditeur défini dans EDITOR
; si la variable EDITOR
n'est pas définie, par défaut elle appellera nano
.
Ce que vous pouvez faire, c'est définir FCEDIT=/usr/bin/gedit
. Maintenant voici le truc : vous exécutez une longue commande, vous décidez de la changer, alors immédiatement après l'avoir exécutée, appelez fc
. Cela ouvrira une fenêtre gedit
avec votre commande prête à être modifiée. Une fois que vous avez terminé de modifier, enregistrez et quittez comme vous le feriez normalement.
L'inconvénient ? Cela laissera une trace de messages GTK inutiles dans le terminal. Personnellement, j'utilise les éditeurs de ligne de commande vim
ou nano
plutôt que gedit - ils ne laissent aucune trace, en plus, ils peuvent être utilisés dans un environnement de ligne de commande, pas seulement en GUI. Je vous recommande vivement de passer à nano
car c'est l'un des éditeurs de texte en ligne de commande les plus simples.
Note supplémentaire dans bash
, vous pouvez faire la même chose avec la commande de ligne que vous êtes en train d'éditer avec ctrl+X+E ou ctrl+X - ctrl+E; vous pouvez avoir le même comportement dans zsh
en ajoutant à votre .zshrc
autoload -z edit-command-line
zle -N edit-command-line
bindkey '^XE' edit-command-line # lie CTRL+X+E
bindkey "^X^E" edit-command-line # lie CTRL+X - CTRL+E