bash
tem a capacidade integrada de chamar um editor externo para editar a linha de comando atual na qual você está trabalhando. O suporte ao mouse depende do editor usado.
Se você estiver usando o modo emacs-like de bash
, use Ctrl-X Ctrl + E para acessar o editor.
Se você estiver usando atalhos de teclado do tipo vi, use ESC v
Você também pode usar o comando fc
incorporado para editar qualquer linha anterior.
$ help fc
fc:
fc [-e ename] [-lnr] [first] [last]
orfc -s [pat=rep] [command]
Display or execute commands from the history list.
fc
is used to list or edit and re-execute commands from the history list. FIRST and LAST can be numbers specifying the range, or FIRST can be a string, which means the most recent command beginning with that string.Options:
-e ENAME
select which editor to use. Default is$FCEDIT
, then$EDITOR
, thenvi
[...]
BTW, um pequeno aborrecimento com isso (em qualquer uma das suas formas):
Pode haver uma maneira simples de abortar uma edição ou fazer com que o bash volte a editar a linha em si e NÃO a execute imediatamente, mas nunca encontrei uma (não procurei muito).
Sair sem salvar apenas executa a linha como estava antes de você chamar o editor.
A única maneira que encontrei é excluir todo o buffer no editor, depois salvar e sair. Ou adicione um comentário de #
no início, é claro.
PS: Eu uso a edição de linha do modo emacs e Ctrl-X Ctrl + E para vim
quando preciso de poder real de edição. Eu não sei porque, eu amo vi
e vim
, mas eu não gosto do modo vi na linha de comando.