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.