recorda o último comando sem argumentos [duplicado]

0

No bash, qual é o atalho para recuperar o último comando sem nenhum argumento?

Esse parece ser o único atalho que falta nos vários guias que encontrei, como link

Eu gostaria que o último comando usado aparecesse na linha de comando com o cursor no final da linha para que eu possa digitar o novo argumento que desejo fornecer.

Além disso, eu gostaria de conseguir isso com uma única combinação de teclas de atalho ao longo das linhas de CTRL + P

!:0 não funciona porque na verdade executa o comando sem me dar a oportunidade de inserir novos argumentos.

Meta + Ctrl + e falha em produzir qualquer resultado no bash para mim. No entanto, o seguinte indica que deve funcionar, assumindo que \e se refere a Alt

bind -P | grep shell-expand-line
shell-expand-line can be found on "\e\C-e".

Estou executando o Arch.

    
por MountainX 13.03.2018 / 08:00

1 resposta

2

Com bash ou zsh no modo emacs , você pode usar Alt + 0 Alt + _ . Isso é manter pressionada a tecla Alt e pressionar 0 e sublinhado em seqüência (que em um teclado qwerty estão próximos uns dos outros, embora você precise de Shift para sublinhado).

Ele se expande para a primeira palavra sintática da linha de comando anterior. Esse pode não ser o último comando. Por exemplo, se a última linha de comando foi:

$(echo echo foo) bar

Expandiria para $(echo echo foo) , não echo .

Se você quiser que seja uma única chave, use bind in bash ou bindkey in zsh para associar essa sequência a uma chave.

Por exemplo, para ligar a F12 :

  • bash :

    bind "\"$(tput kf12)"'": "\e0\e_"'
    
  • zsh :

    bindkey -s $terminfo[kf12] '\e0\e_'
    
por 13.03.2018 / 08:44

Tags