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_CHARS
se establece, esos caracteres harán que el sufijo se elimine y se reemplace por un espacio.
Si ZLE_REMOVE_SUFFIX_CHARS
no se establece, el comportamiento predeterminado es equivalente a:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
Si ZLE_REMOVE_SUFFIX_CHARS
está 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_SLASH
está 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_CHARS
set pero sin incluir &
el resultado es DIR/&
. Con el ZLE_SPACE_SUFFIX_CHARS
conjunto 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 ;-)