Existe alguma maneira de ativar Ctrl + L para limpar a tela quando 'set -o vi' está definido?

48

Quando você pressiona Ctrl + L no modo bash default, a tela é apagada. Mas quando executo set -o vi e pressiono Ctrl + L , o pressionamento de tecla é impresso ( ^L ). Existe alguma maneira de manter esse comportamento?

    
por David Martínez 07.12.2013 / 05:01

2 respostas

58

O Ctrl + L também é ligado no modo de comando do VI, mas não no modo de inserção. Não há ligação padrão para clear-screen no modo de inserção. Ligações readline devem ser especificadas em ~/.inputrc , assim:

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

Isto irá ligar Ctrl + L para limpar a tela tanto no modo normal como no modo de inserção. Naturalmente, se você preferir usá-lo apenas em um modo, basta remover a opção relevante.

Existe uma lista extensa de comandos readline que você pode usar para personalizar seu shell bash com.

    
por 07.12.2013 / 06:22
17

Coloque esta linha no seu bashrc :

bind -m vi-insert "\C-l":clear-screen
    
por 07.12.2013 / 05:55