Como desativar a confirmação de expansões de histórico como '!!'

5

Zsh cuida muito bem de mim, e às vezes pode ficar um pouco demais. Uma das vezes em que prefiro que fique fora do meu negócio é quando "quero ter certeza de que quero executar o comando". As funções com as quais estou passando são:

Os comandos:
sudo !! - executa o comando anterior prefixado com sudo
and% ^old^new - executa o comando anterior, mas substitui a primeira ocorrência de "old" por "new"


O problema:
Quando eu digito um dos dois comandos listados acima e clico em Enter , em vez de executar o comando instantaneamente, o comando expande para o que realmente será executado, e eu tenho que atingir Enter mais uma vez para realmente executá-lo . Problema do primeiro mundo, mas ainda assim.

1 $ pwd
2 /home/neil
3 $ sudo !!
4 $ sudo pwd
5 /home/neil

Eu gostaria de pular a etapa 4. Isso é ignorado por padrão no bash.

    
por krystah 09.02.2014 / 17:41

1 resposta

8

Isso é fácil ... se você souber a opção correspondente:

unsetopt HIST_VERIFY

Coloque isso em ~/.zshrc e source ~/.zshrc se quiser que esse comportamento seja permanente.

Explicação de man zshoptions :

HIST_VERIFY Whenever the user enters a line with history expansion, don't execute the line directly; instead, perform history expansion and reload the line into the editing buffer.

    
por 09.02.2014 / 17:54