De vez em quando eu quero reciclar uma sequência de comandos que usei recentemente, depois que adaptei.
Vamos imaginar, ontem eu executei
foo 42
bar with some strange arguments
baz /my/most/beloved/folder
Agora, hoje eu preciso de algo semelhante como
foo -x 42
bar with some more strange arguments
baz /my/most/hated/folder
Posso usar ctrlRe foo
para encontrar o comando de ontem (talvez várias vezes, porque uso foo
em diferentes contextos), alterá-lo e executá-lo. Nenhum problema até agora. Mas agora eu adoraria pular rapidamente para a linha seguinte no histórico sem repetir a longa pesquisa novamente (na realidade, geralmente mais de dez comandos).
O fc
comando de ksh
chega perto do que eu quero, mas não é interativo: se eu emitir uma dúzia de git
comandos, posso precisar reagir a um deles respondendo diferente do esperado (ou executar os comandos a seguir causará uma confusão).
O cmd
shell do MS Windows tem um comportamento (para mim geralmente irritante): depois de executar um comando do histórico, a seta para cima não me leva ao último comando do histórico, mas ao último comando executado, portanto, após executar a linha foo
novamente , a seta para cima e a seta para baixo me levariam à bar
linha. Esse comportamento exato não me ajudaria, porque só funciona ao executar uma linha não modificada. Se eu modificá-lo, o »ponteiro de histórico« é definido para o fim novamente. Mas seria a solução perfeita ter tal marcador na história, colocá-lo na foo
linha e ter uma combinação de teclas para me levar de volta lá ou melhor ainda para a linha seguinte, movendo o marcador.
Acho que não sou o único com essa necessidade, mas não encontrei nenhuma solução para isso. Atualmente, resolvo imprimindo a parte relevante do histórico e uso o mouse para colar a linha que preciso a seguir, mas isso é desajeitado e não gosto de alternar entre teclado e mouse. E, por favor, saia impune da expansão da história; Normalmente, preciso editar a linha de forma interativa, incluindo a expansão da guia.
Você conhece alguma solução, de preferência para zsh
?