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
bind
incorporado. 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-mode
y 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 -p
le mostrará todas las claves que puede vincular y sus vinculaciones actuales (si las hay).Puede poner
bind
comandos en su.bashrc
, o puede editar~/.inputrc
para 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'