Autosugestiones rápidas/discretas parecidas a las de un pez para zsh.
Sugiere comandos a medida que escribes según el historial y las finalizaciones.
Requisitos: Zsh v4.3.11 o posterior
Consulte INSTALL.md.
A medida que escribe comandos, verá una opción de finalización ofrecida después del cursor en un color gris apagado. Este color se puede cambiar configurando la variable ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE
. Ver configuración.
Si presiona la tecla → (widget forward-char
) o Fin (widget end-of-line
) con el cursor al final del búfer, aceptará la sugerencia y reemplazará el contenido del búfer de la línea de comando con la sugerencia.
Si invoca el widget forward-word
, aceptará parcialmente la sugerencia hasta el punto al que se mueva el cursor.
Es posible que desee anular las variables de configuración globales predeterminadas. Los valores predeterminados de estas variables se pueden encontrar aquí.
Nota: Si está utilizando Oh My Zsh, puede colocar esta configuración en un archivo en el directorio $ZSH_CUSTOM
. Vea sus comentarios sobre la anulación de aspectos internos.
Configure ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE
para configurar el estilo con el que se muestra la sugerencia. El valor predeterminado es fg=8
, que establecerá el color de primer plano en el color 8 de la paleta de 256 colores. Si tu terminal sólo admite 8 colores, necesitarás utilizar un número entre 0 y 7.
También se puede configurar el color de fondo y la sugerencia se puede aplicar en negrita, subrayada o destacada. Por ejemplo, esto mostraría sugerencias con texto rosa, subrayado y en negrita sobre un fondo cian:
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE= " fg=#ff00ff,bg=cyan,bold,underline "
Para obtener más información, lea la sección Resaltado de caracteres del manual de zsh: man zshzle
o en línea.
Nota: Algunos usuarios de iTerm2 han informado que no pueden ver las sugerencias. Si esto le afecta, es probable que el problema se deba a una configuración de color incorrecta. Para corregir esto, vaya a la configuración de iTerm2, navegue hasta perfil > colores y asegúrese de que los colores para Colores básicos > Fondo y Colores ANSI > Negro brillante sean diferentes .
ZSH_AUTOSUGGEST_STRATEGY
es una matriz que especifica cómo se deben generar las sugerencias. Las estrategias de la matriz se prueban sucesivamente hasta que se encuentra una sugerencia. Actualmente hay tres estrategias integradas para elegir:
history
: elige el partido más reciente del historial.completion
: elige una sugerencia basada en lo que sugeriría completar con tabulación. (requiere el módulo zpty
, que se incluye con zsh desde 4.0.1)match_prev_cmd
: Me gusta history
, pero elige la coincidencia más reciente cuyo elemento del historial anterior coincida con el comando ejecutado más recientemente (más información). Tenga en cuenta que esta estrategia no funcionará como se esperaba con opciones ZSH que no conservan el orden del historial, como HIST_IGNORE_ALL_DUPS
o HIST_EXPIRE_DUPS_FIRST
. Por ejemplo, configurar ZSH_AUTOSUGGEST_STRATEGY=(history completion)
primero intentará encontrar una sugerencia de su historial, pero, si no puede encontrar una coincidencia, encontrará una sugerencia del motor de finalización.
Este complemento funciona activando un comportamiento personalizado cuando se invocan ciertos widgets de zle. Puede agregar y eliminar widgets de estas matrices para cambiar el comportamiento de este complemento:
ZSH_AUTOSUGGEST_CLEAR_WIDGETS
: Los widgets en esta matriz borrarán la sugerencia cuando se invoquen.ZSH_AUTOSUGGEST_ACCEPT_WIDGETS
: los widgets de esta matriz aceptarán la sugerencia cuando se invoquen.ZSH_AUTOSUGGEST_EXECUTE_WIDGETS
: los widgets en esta matriz ejecutarán la sugerencia cuando se invoquen.ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS
: Los widgets en esta matriz aceptarán parcialmente la sugerencia cuando se invoquen.ZSH_AUTOSUGGEST_IGNORE_WIDGETS
: los widgets de esta matriz no activarán ningún comportamiento personalizado.Los widgets que modifican el búfer y no se encuentran en ninguna de estas matrices obtendrán una nueva sugerencia después de ser invocados.
Nota: un widget no debe pertenecer a más de una de las matrices anteriores.
Establezca ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE
en un valor entero para deshabilitar la autosugestión para búferes grandes. El valor predeterminado no está configurado, lo que significa que se intentará la autosugestión para cualquier tamaño de búfer. El valor recomendado es 20. Esto puede resultar útil al pegar una gran cantidad de texto en el terminal, para evitar que se active la autosugestión de cadenas demasiado largas.
Las sugerencias se obtienen de forma asincrónica de forma predeterminada en las versiones 5.0.8 y posteriores de zsh. Para deshabilitar las sugerencias asincrónicas y recuperarlas de forma sincrónica, unset ZSH_AUTOSUGGEST_USE_ASYNC
después de obtener el complemento.
Alternativamente, si está utilizando una versión de zsh anterior a 5.0.8 y desea habilitar el modo asincrónico, configure la variable ZSH_AUTOSUGGEST_USE_ASYNC
después de obtener el complemento (se puede configurar en cualquier cosa). Tenga en cuenta que hay un error en las versiones de zsh anteriores a 5.0.8 donde Ctrl + c no podrá restablecer el mensaje inmediatamente después de recuperar una sugerencia de forma asincrónica.
Configure ZSH_AUTOSUGGEST_MANUAL_REBIND
(se puede configurar en cualquier cosa) para deshabilitar la vinculación automática de widgets en cada precmd. Esto puede ser un gran impulso para el rendimiento, pero deberá encargarse de volver a vincularse si alguna de las listas de widgets cambia o si usted u otro complemento ajustan alguno de los widgets de sugerencia automática. Para volver a vincular widgets, ejecute _zsh_autosuggest_bind_widgets
.
Configure ZSH_AUTOSUGGEST_HISTORY_IGNORE
en un patrón global para evitar ofrecer sugerencias para entradas del historial que coincidan con el patrón. Por ejemplo, configúrelo en "cd *"
para nunca sugerir ningún comando cd
del historial. O configúrelo en "?(#c50,)"
para nunca sugerir nada de 50 caracteres o más.
Nota: Esto solo afecta el history
y las estrategias de sugerencia match_prev_cmd
.
Establezca ZSH_AUTOSUGGEST_COMPLETION_IGNORE
en un patrón global para evitar ofrecer sugerencias de finalización cuando el búfer coincida con ese patrón. Por ejemplo, configúrelo en "git *"
para deshabilitar las sugerencias de finalización de los subcomandos de git.
Nota: Esto solo afecta la estrategia de sugerencia completion
.
Este complemento proporciona algunos widgets que puedes usar con bindkey
:
autosuggest-accept
: Acepta la sugerencia actual.autosuggest-execute
: Acepta y ejecuta la sugerencia actual.autosuggest-clear
: borra la sugerencia actual.autosuggest-fetch
: recupera una sugerencia (funciona incluso cuando las sugerencias están deshabilitadas).autosuggest-disable
: Desactiva las sugerencias.autosuggest-enable
: vuelve a habilitar las sugerencias.autosuggest-toggle
: alterna entre sugerencias habilitadas/deshabilitadas.Por ejemplo, esto vincularía Ctrl + espacio para aceptar la sugerencia actual.
bindkey ' ^ ' autosuggest-accept
Si tiene un problema, busque en la lista de problemas en GitHub para ver si alguien más ya lo ha informado.
Antes de informar un problema, intente deshabilitar temporalmente secciones de su configuración y otros complementos que puedan estar en conflicto con este complemento para aislar el problema.
Al informar un problema, incluya:
.zshrc
más pequeña y simple que reproducirá el problema. Vea este comentario para ver un buen ejemplo de lo que esto significa.zsh --version
) Elimine el código que hace referencia a este complemento de ~/.zshrc
.
Elimina el repositorio git de tu disco duro
rm -rf ~ /.zsh/zsh-autosuggestions # Or wherever you installed
Edite los archivos fuente en src/
. Ejecute make
para compilar zsh-autosuggestions.zsh
a partir de esos archivos fuente.
¡Las solicitudes de extracción son bienvenidas! Si envía una solicitud de extracción, por favor:
develop
( NO master
) Las pruebas se escriben en Ruby utilizando el marco rspec
. Usan tmux
para controlar un pseudoterminal, enviando pulsaciones de teclas simuladas y haciendo afirmaciones sobre el contenido del terminal.
Los archivos de prueba se encuentran en spec/
. Para ejecutar las pruebas, ejecute make test
. Para ejecutar una prueba específica, ejecute TESTS=spec/some_spec.rb make test
. También puede especificar un binario zsh
para usar configurando la variable de entorno TEST_ZSH_BIN
(por ejemplo: TEST_ZSH_BIN=/bin/zsh make test
).
Es posible ejecutar las pruebas para cualquier versión compatible de zsh en una imagen de Docker creando una imagen a partir del Dockerfile proporcionado. Para crear la imagen de la ventana acoplable para una versión específica de zsh (donde <version>
siguiente se sustituye por el contenido de una línea del archivo ZSH_VERSIONS
), ejecute:
docker build --build-arg TEST_ZSH_VERSION= < version > -t zsh-autosuggestions-test .
Después de crear la imagen, ejecute las pruebas mediante:
docker run -it -v $PWD :/zsh-autosuggestions zsh-autosuggestions-test make test
Este proyecto está bajo licencia MIT. Para obtener el texto completo de la licencia, consulte el archivo LICENCIA.