Acabo de descubrir las maravillas de set -o vi, y tengo curiosidad por saber si es posible personalizar este modo de shell vi de alguna de las mismas formas en que puede personalizar vi o vim.
Por ejemplo, cree una combinación de teclas personalizada para asignar una combinación de teclas o teclas más conveniente esc?
Si no se admite actualmente, ¿qué tan difícil sería alterar el código fuente del programa y el código duro en algunas personalizaciones, o sería una mala idea?

Respuestas:
Sí, puede cambiar las asignaciones de teclas (para el modo similar a vi- o emacs) con el
bindincorporado. Esta es en realidad una función de línea de lectura (por lo que puede tener enlaces vi-like en todos los programas de línea de lectura, no solo bash).Se llama a la clave que está buscando
vi-movement-modey su valor predeterminado es\e(escape). Además, puede vincularlo (y esto es bastante tonto) igual a esto. La segunda línea elimina el enlace para escapar:La ejecución
bind -ple mostrará todas las claves que puede vincular y sus vinculaciones actuales (si las hay).Puede poner
bindcomandos en su.bashrc, o puede editar~/.inputrcpara que se aplique a todos los programas de línea de lectura que ejecuta. Los documentos de readline contienen detalles completos.fuente
bind "Control-Space":vi-movement-mode, eso funciona bien. Pero, por ejemplo, en vim, escribo dos caracteres seguidos como disparadoresc, es decir, si escribejj, volverá al modo normal. Esto no funcionó cuando lo probé con bind, ¿hay alguna forma especial de hacerlo funcionar?@), o no recibirá una notificación.bind '"jk":vi-movement-mode'