¿Desactivar completamente? y [] globbing en zsh

¿Desactivar completamente? y [] globbing en zsh

zsh agrega algo de lógica global adicional sobre bash:

$ zsh
$ echo foo[]
zsh: no matches found: foo[]
$ echo bar?
zsh: no matches found: bar?

$ bash
$ echo f[]
f[]
$ echo bar?
bar?

Ninguno de estos es útil para mí y hace que copiar/escribir URL y otros sea molesto.

Me gustaría desactivar esto por completo, pero todavía no he encontrado ninguna forma de hacerlo.

Hay algunas soluciones imperfectas:

  • setopt NO_NOMATCH

Esto funciona principalmente, a menos que su pegote accidentalmentehacepartido, como:

$ echo README.m?
README.md
  • Agregar cotizaciones

Esto funciona, pero no funciona para copiar y pegar fragmentos en línea y agrega un paso adicional que debo recordar al escribir.

  • Usar url-quote-magicpara escapar automáticamente

Esto contamina la CLI/el historial y solo funciona para pegar

Respuesta1

?También es un comodín en Bash.. La diferencia que estás viendo ocurre porque en Zsh, una coincidencia fallida genera un error, mientras que en Bash, se ignora silenciosamente.

Para obtener el comportamiento de Bash en Zsh, agregue esto a su ~/.zshrcarchivo:

unsetopt NOMATCH

Sin embargo, realmente recomendaríanoapagándolo. Ignorar errores en silencio no es algo bueno e incluso puede resultar peligroso al realizar operaciones destructivas.

Para obtener más información sobre esta opción de shell, consultehttp://zsh.sourceforge.net/Doc/Release/Options.html

información relacionada