
Estoy usando zsh en mi caja de Linux y en mi MAC. Sin embargo, en ambos entornos, tengo un "problema".
Cuando escribo "!!", no funciona en zsh, pero sí en bash. Más aún, es realmente útil con "sudo!!". ¿Cómo puedo hacer que funcione con zsh? ¿Necesito asignar un alias a algo en mi .zshrc?
Respuesta1
La BANG_HIST
opción está deshabilitada para su zsh
:
BANG_HIST(+k) <C> <Z>
Realizar la expansión de la historia textual,csh-estilo, tratando al personaje `!' especialmente.
Esto puede suceder mediante uno de tres métodos:
Configurándolo explícitamente con
set
/setopt
. En algún lugar de la configuración de tu shell hay una línea como una de estas:setopt NO_BANG_HIST setopt -o NoBangHist setopt +o banghist set -o nobanghist set +o BANG_hist
El caso no importa y
_
se ignora en el nombre de la opción.BANG_HIST
habilita la función y anteponerNO
(NO_BANG_HIST
) la desactiva.-o
establece el estado de la característica tal como lo indica el nombre,+o
invierte el significado.Comenzando
zsh
con la-K
opción de línea de comando:zsh -K
También puede configurarlo explícitamente,
zsh +K
pero se puede anularsetopt
en la configuración.Iniciando
zsh
en modo emulación para cualquiera de los dossh
oksh
:ln -s /bin/zsh /usr/local/bin/ksh /usr/local/bin/ksh
En ese caso, la función también se puede configurar posteriormente con
setopt
, pero no mediante la opción de línea de comando (/usr/local/bin/ksh +K
no funciona).
Respuesta2
mi zsh tiene!!
He instalado zsh ahora mismo y !!
funciona como funciona en bash.
¿Quizás necesites actualizarlo?
mi versión es5.0.2-3ubuntu6
Pero si tu zsh no lo tiene:
Como respondióaquínecesitas agregar esto a tu .zshrc
archivo:
alias ii='$(fc -ln -1)'
Respuesta3
De acuerdo. Parece que tenía unas antiguas opciones de "establecer opción" en mi .zshrc que causaban el problema.
Lo descubro probando todos y cada uno de los elementos de mi .zshrc. Por suerte, no fueron las últimas opciones.
Más adelante probaré qué opción específica necesito cambiar o eliminar.
Saludos