1 votos

¿Cómo hacer bindkey con la tecla de página arriba/página abajo en la terminal de macOS?

Cuando abro Terminal y presiono el botón "página arriba", simplemente desplaza mi pantalla de Terminal una página hacia arriba, para poder ver lo que escribí y cuáles fueron las salidas de los comandos ejecutados anteriormente.

Quiero vincular esta tecla a un comando llamado "history-search-backward" pero no puedo encontrar un argumento correcto para proporcionar a un comando bindkey ??? history-search-backward.

Logré configurar ctrl+N para realizar history-search-backward: bindkey "^N" history-search-backward pero es mucho más complicado para las teclas de página arriba/página abajo. ¿Qué quiero decir con "más complicado"?:

Cuando ejecuto el comando read y presiono ctrl+N muestra ^N en la salida pero si hago lo mismo para las teclas de página arriba o página abajo... simplemente desplaza mi pantalla hacia arriba/abajo y no muestra nada. Lo mismo sucede con od -c y showkey -a - sin salida, simplemente desplaza la pantalla hacia arriba/abajo. Incluso echo $terminfo[kpp] devuelve una línea vacía, lo que me preocupa porque echo $terminfo[khome] devuelve H.

Descargué la aplicación "Key Codes" (enlace a la tienda de aplicaciones) y me proporciona estos códigos de teclas para las teclas de página arriba/página abajo pero no puedo entender cómo usar "116 / 0x74" o "121 / 0x79" como argumento para el comando bindkey o si es posible.

introducir descripción de la imagen aquí

Uso macOS Sonoma 14.5 y una aplicación Terminal que creo que es una aplicación incorporada, utiliza zsh y el comando echo $TERM devuelve xterm-256color.

¿Cómo configuro bindkey para las teclas de página arriba/página abajo a comandos de búsqueda en el historial?

1voto

Mikhail Morfikov Puntos 356

Por defecto, las teclas Page Up y Page Down son interceptadas e interpretadas por Terminal.app, por lo que nunca llegan al shell que se ejecuta en la ventana del terminal. Por lo tanto, no hay forma de asignar una secuencia de teclas a través de bindkey.

Sin embargo, Terminal se puede personalizar para pasar esas teclas a zsh. La selección del menú Terminal -> Preferencias... -> Perfiles -> Básico (u otro perfil) -> Teclado mostrará el diálogo para añadir secuencias de teclas: Preferencias... -> Perfiles -> Básico -> diálogo de teclado

Haz clic en +, establece Tecla en Page Up, Modificador en Ninguno, Acción en Enviar texto:, e ingresa esc[5~ en el cuadro de texto:

diálogo de entrada de teclas

De manera similar, Page Down se puede establecer en esc[6~. Las secuencias de teclas están en una lista aquí, aunque casi cualquier secuencia única funcionará.

Ahora podemos vincular las teclas y comandos a través de bindkey:

bindkey $'\e[5~' history-search-backward
bindkey $'\e[6~' history-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