1 votos

zsh: ¿cómo consigo que las teclas ctrl-p y ctrl-n realicen la búsqueda del historial hacia atrás/adelante como en bash?

En zsh, puedo buscar en mi historial basado en lo que se ha escrito en la línea de comandos hasta el momento con:

    bindkey "\e[A" history-search-backward
    bindkey "\e[B" history-search-forward

Así que si escribo:

ln -s som

y pulsar la flecha hacia arriba, me mostrará el comando más reciente que comienza con ln -s som .

En bash, utilicé el ctrl-p y el ctrl-n para hacer lo mismo para que fuera más cómodo escribir:

    bindkey "\C-p" history-search-backward
    bindkey "\C-n" history-search-forward

Sin embargo, cuando intento vincular C-p y C-n a la búsqueda del historial en zsh, los resultados se basan en el primer palabra en el comando. Así que si escribo

ln -s som

y luego pulsar C-p, se mostrarán todos los resultados anteriores que empiecen por ln en lugar de ln -s som

¿Alguien sabe cómo puedo hacer que C-n y C-p se comporten como bash en zsh?

ACTUALIZACIÓN: He probado varias iteraciones de la secuencia de teclas como:

bindkey "^p" ...
bindkey "^P" ...
bindkey "^P" ... (using ^V then ^P) to generate the "^P" character
bindkey "C-p" ...
bindkey "Ctrl-p" ...

Pero nada de esto hace la diferencia.

1voto

StevieD Puntos 225

Bien, el widget que necesitas para conseguir el comportamiento que describo es history-beginning-search-backward

Así que esto funciona ahora:

   bindkey '^P' history-beginning-search-backward
   bindkey '^N' history-beginning-search-forward

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X