Puede usar lahistory-search
funcionalidad de zle :
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward
Esto enlaza Upy Down(ajusta sus propias secuencias de escape) a una búsqueda de historial, hacia atrás y hacia adelante, en función de lo que ya se ha ingresado en la solicitud.
Por lo tanto, si ingresa "vim" y presiona Up, zsh recorrerá su historial hacia atrás solo para aquellos comandos que comiencen con "vim".
Además, puede colocar el cursor al final de la línea una vez que haya seleccionado el comando deseado del historial de zsh utilizando la función de búsqueda de historial de finalización (típicamente ubicada en /usr/share/zsh/functions/Zle/
) y agregando -end
al final de cada línea, de esta manera:
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end
Otra opción útil es
history | grep
Asignar un alias, p. Ej.
entonces puede escribir
hg whatever
para buscar los comandos que ha utilizado, por ejemploPuse este alias en mis archivos de puntos.
fuente
hg
me recuerda a ... Oh sí, Mercurial!Si está utilizando oh-my-zsh , agréguelo
history-substring-search
a laplugins=(...)
línea.Luego añade
en algún lugar debajo de la línea que lee
source $ZSH/oh-my-zsh.sh
. Guarde y encienda una nueva terminal o ejecutesource ~/.zshrc
en la terminal actual.Nota:
^[[A
es la secuencia de escape para la flecha hacia arriba en el terminal que uso (kitty) y muchos otros. Para registrar su terminal de elección, escribashowkey -a
y luego presione la tecla para la que desea encontrar la secuencia de escape.fuente
brew install zsh-history-substring-search
, revisé el archivo readme del repositorio para obtener instrucciones, simplemente seguiré adelante y crearé una respuesta Estoy muy contento con el resultado.Es posible que desee utilizar el script en https://github.com/zsh-users/zsh-history-substring-search
Donde puede escribir cualquier parte de cualquier comando ingresado previamente y presionar las teclas Upy Downpara recorrer los comandos correspondientes.
fuente
Me gustaría recomendar encarecidamente el uso de
"$terminfo[kcuu1]"
o"$key[Up]"
en lugar de material codificado como el"^[[A"
que puede o no puede funcionar en cualquier sistema en particular.Echa un vistazo
/etc/zsh/zshrc
para más llaves. Así es como se ve en mi sistema. Creo queterminfo
es más probable que se definan las claves.fuente
¿Qué hay de usar
zsh-autosuggestions
?La cuestión es que, para cada comando que escriba, este complemento le mostrará algunas sugerencias que podrían aceptarse o no. Pruébalo y danos tu opinión.
Sin complementos, podemos presionar Ctrlrpara realizar una búsqueda inversa en el historial, tan pronto como comience a escribir, los comandos coincidentes aparecerán como sugerencias.
fuente
Yo uso el complemento vi-mode . Y luego en mi ~ / .zshrc tengo los siguientes enlaces:
Eso me permite utilizar el
^P
y^N
como hacia atrás y hacia delante normal de buscar si no introducir cualquier texto y, como filtrada de búsqueda si lo hago.fuente
Estoy de acuerdo con cheflo en que la búsqueda de "subcadenas" es más útil. No puedo comentar allí, así que comencé una nueva respuesta. Uso oh-my-zsh y agrego "history-substring-search" a los complementos = (...) de ~ / .zshrc. Entonces fuente ~ / .zshrc. No es necesario agregar nada más. Use "bindkey" para verificar:
Más tarde, escriba "a" y la flecha hacia arriba, aparecerá "historial" y se resaltará "a" (si utilizó el comando "historial" antes).
fuente
En su lugar, podría usar zaw , que reemplaza completamente su búsqueda con una súper búsqueda de palabras clave mucho mejor, y también soluciona su problema: el historial de búsqueda es solo una de las cosas que zaw puede buscar.
Pequeña introducción / discusión aquí
fuente
Debido a que uso oh-my-zsh, y uso la solución de subcadena de joelostblom, James, modifico el .zshrc de esta manera: (que en la línea 13, encuentra la línea "source $ ZSH / oh-my-zsh.sh" , luego modifique el código que lo rodea.)
fuente
bindkey -v
romperá ctrl-a, ctrl-e. Lo más probable es que todos los comandos ctrl.Respuesta que no es Oh-My-Zsh
Esto funcionó para mí (en macOS) para que el historial de subcadenas sea fácilmente accesible a través de la flecha arriba / abajo. La atadura de teclas depende de usted.
El historial de búsqueda de subcadenas es mejor que simplemente acceder a comandos que comienzan con una cadena. Esto es más parecido a ctrl-r en la mayoría de los casos, aquellos sin glob o coincidencia de expresiones regulares.
A partir de las instrucciones en zsh-users / zsh-history-substring-search
Ahora disfrutando esto a fondo.
fuente