ZLE_REMOVE_SUFFIX_CHARS/ El ZLE_SPACE_SUFFIX_CHARS
editor de línea utiliza estos parámetros. En ciertas circunstancias, los sufijos (típicamente espacio o barra) agregados por el sistema de finalización se eliminarán automáticamente, ya sea porque el siguiente comando de edición no era un carácter insertable o porque el carácter se marcó como que requería que se eliminara el sufijo.
Estas variables pueden contener los conjuntos de caracteres que harán que se elimine el sufijo. Si ZLE_REMOVE_SUFFIX_CHARS
se establece, esos caracteres harán que se elimine el sufijo; si ZLE_SPACE_SUFFIX_CHARSse establece, esos caracteres harán que el sufijo se elimine y se reemplace por un espacio.
Si ZLE_REMOVE_SUFFIX_CHARSno se establece, el comportamiento predeterminado es equivalente a:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
Si ZLE_REMOVE_SUFFIX_CHARSestá configurado pero está vacío, ningún personaje tiene este comportamiento. ZLE_SPACE_SUFFIX_CHARS tiene prioridad, de modo que lo siguiente:
ZLE_SPACE_SUFFIX_CHARS=$'&|'
hace que los caracteres &y |para eliminar el sufijo pero para sustituirlo por un espacio.
Para ilustrar la diferencia, suponga que la opción AUTO_REMOVE_SLASHestá vigente y que el directorio DIR acaba de completarse, con un anexo /, después del cual el usuario escribe &. El resultado predeterminado es DIR&. Con ZLE_REMOVE_SUFFIX_CHARSset pero sin incluir &el resultado es DIR/&. Con el ZLE_SPACE_SUFFIX_CHARSconjunto para incluir &el resultado es DIR &.
Tenga en cuenta que ciertas finalizaciones pueden proporcionar su propio comportamiento de eliminación o reemplazo de sufijos que anula los valores descritos aquí.
zsh -f(para omitir cargar su configuración). Notarás que zsh ya no hará eso. Luego, tendrás que cavar (muy probablemente) en oh-my-zsh para descubrir cómo está causando eso ;-)