¿Hay alguna forma de habilitar Ctrl + L para borrar la pantalla cuando se establece 'set -o vi'?

54

Cuando presiona Ctrl+ Len el modo predeterminado bash, la pantalla se borra. Pero cuando corro set -o viy presiono Ctrl+, Lse imprime la combinación de teclas ( ^L). ¿Hay alguna forma de mantener este comportamiento?

David Martínez
fuente

Respuestas:

61

Ctrl+ Ltambién está vinculado en el modo de comando vi pero no en el modo de inserción. No hay enlace predeterminado para el clear-screenmodo de inserción. Los enlaces de línea de lectura se deben especificar de la siguiente ~/.inputrcmanera:

set editing-mode vi
$if mode=vi

set keymap vi-command
# these are for vi-command mode
Control-l: clear-screen

set keymap vi-insert
# these are for vi-insert mode
Control-l: clear-screen 
$endif

Esto unirá Ctrl+ Lpara borrar la pantalla tanto en modo normal como de inserción. Naturalmente, si prefiere usarlo solo en un modo, simplemente elimine la opción correspondiente.

Hay una extensa lista de comandos readline que puede usar para personalizar su shell bash.

jasonwryan
fuente
1
por curiosidad, ¿por qué molestarse con vi-command si ya está mapeado? solo por completo, ¿o hay una razón técnica?
Ken Bellows
2
@KenBellows para mayor claridad, según los comentarios (y necesitaba un ejemplo en el bloque vi-command por razones puramente estéticas).
jasonwryan
22

Pon esta línea en tu bashrc:

bind -m vi-insert "\C-l":clear-screen
casey
fuente