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


54

Quando você pressiona Ctrl+ Lno modo padrão do bash, a tela é limpa. Mas quando corro set -o vie pressiono Ctrl+, La tecla é impressa ( ^L). Existe alguma maneira de manter esse comportamento?

Respostas:


61

Ctrl+ Ltambém está vinculado no modo de comando vi, mas não no modo de inserção. Não há ligação padrão para clear-screenno modo de inserção. As ligações da linha de leitura devem ser especificadas da seguinte ~/.inputrcmaneira:

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

Isso ligará Ctrl+ Lpara limpar a tela no modo normal e de inserção. Naturalmente, se você preferir usá-lo apenas em um modo, basta remover a opção relevante.

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


11
por curiosidade, por que se preocupar com o vi-command se ele já estiver mapeado? apenas por uma questão de completude, ou existe uma razão técnica?
— Ken Bellows

2
@KenBellows para maior clareza, de acordo com os comentários (e eu precisava de um exemplo no bloco de comando vi por razões puramente estéticas).
— jasonwryan

22

Coloque esta linha no seu bashrc:

bind -m vi-insert "\C-l":clear-screen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.