
Estou usando o zsh no meu Linux e também no meu MAC. Porém, em ambos os ambientes, tenho um "problema".
Quando digito " !! ", não funciona no zsh, mas sim no bash. Mais, é muito útil com "sudo!!". Como posso fazer funcionar com zsh? Preciso criar um alias em meu .zshrc ?
Responder1
A BANG_HIST
opção está desativada para zsh
:
BANG_HIST(+K) <C> <Z>
Realize a expansão do histórico textual,csh-style, tratando o personagem `!' especialmente.
Isso pode acontecer através de um dos três métodos:
Ao defini-lo explicitamente com
set
/setopt
. Em algum lugar na configuração do seu shell há uma linha como uma destas:setopt NO_BANG_HIST setopt -o NoBangHist setopt +o banghist set -o nobanghist set +o BANG_hist
O caso não importa e
_
é ignorado no nome da opção.BANG_HIST
ativa o recurso e anexarNO
(NO_BANG_HIST
) desativa o recurso.-o
define o estado do recurso conforme fornecido pelo nome,+o
inverte o significado.Começando
zsh
com a-K
opção de linha de comando:zsh -K
Você também pode defini-lo explicitamente,
zsh +K
mas isso pode ser substituídosetopt
na configuração.Iniciando
zsh
no modo de emulação parash
ouksh
:ln -s /bin/zsh /usr/local/bin/ksh /usr/local/bin/ksh
Nesse caso, o recurso também pode ser definido posteriormente com
setopt
, mas não pela opção de linha de comando (/usr/local/bin/ksh +K
não funciona).
Responder2
Meu zsh tem!!
Eu instalei o zsh agora e !!
funciona como no bash.
Talvez você precise atualizá-lo?
Minha versão é5.0.2-3ubuntu6
Mas se o seu zsh não tiver:
Conforme respondidoaquivocê precisa adicionar isso ao seu .zshrc
arquivo:
alias ii='$(fc -ln -1)'
Responder3
OK. Parece que eu tinha opções antigas de "definir opção" em meu .zshrc causando o problema.
Eu descobri testando cada item do meu .zshrc. Sorte minha, não foram as últimas opções.
Testarei mais tarde qual opção específica preciso alterar ou remover.
Cumprimentos