No se pueden obtener argumentos del comando anterior en ZSH

No se pueden obtener argumentos del comando anterior en ZSH

Hay atajos bien conocidos para obtener argumentos del comando anterior en bash, como Alt+.o $!, etc. Nada de esto funciona en mi zsh, estoy usando algunos módulos de zprezto. No pude encontrar nada sobre el cambio de los módulos zprezto. ¿Puede ser alguna configuración de ZSH que me falta o que podría haber configurado y deshabilitado este comportamiento?

Respuesta1

ALT.no es que yo sepa muy conocido. Supongo que esto está definido por algo que cargaste en tu inicio de bash. (¿Que hace por ti?)

$!es la identificación del proceso del proceso hijo iniciado más recientemente. Supongo que esto esnolo que pretendías escribir. :)

!$es una expansión histórica (acortada) quedeberíaen circunstancias predeterminadas, expanda hasta el último argumento del comando anterior. La expansión histórica de zsh está meticulosamente documentada.en el manual de zsh.

Las expansiones del historial generalmente comienzan con !, pero es posible cambiar esto estableciendo el valor de $HISTCHARS: El primer carácter de $HISTCHARSse usará como el carácter que inicia una expansión del historial. De forma predeterminada, $HISTCHARSse establece en un valor de !^#. Puede verificar el valor en su sistema con:

echo $HISTCHARS

si esto lo hacenocomience con !, entonces algo en su inicio de zsh ha establecido un valor diferente y las expansiones de historial estándar y conocidas como !!y !$no funcionarán para usted.

Actualizar:

Resulta que el primer párrafo que escribí arriba está completamente equivocado. Puede que no lo supiera ALT., pero eso puede deberse al hecho de que “siempre” he usado zsh con el modo vi habilitado. De hecho, ALT.(y ALT_, que hace lo mismo) están habilitados en las combinaciones de teclas predeterminadas de emacs de zsh. Están vinculados al widget ZLE insert-last-word, que hace lo que usted describe.

Si está utilizando zsh con las combinaciones de teclas predeterminadas de emacs y ALT.no le funciona, entonces algo que está cargando en el inicio de su shell lo está anulando. Puede restablecer las combinaciones de teclas predeterminadas con:

bindkey -M emacs "^[." insert-last-word \
                 "^[_" insert-last-word

información relacionada