Como posso fazer o ESC limpar uma linha no Bash Under Windows em vez de Ctrl + u?

5

Eu uso o bash no Windows, tanto no Cygwin quanto no Git Bash (parte do Git for Windows). No bash, ao contrário do Windows cmd.exe Esc não limpa a linha, apenas Ctrl + U . Como posso esclarecer a linha também?

Obrigado!

    
por Adam 16.06.2011 / 18:29

1 resposta

7

Eu não tenho uma instalação do Cygwin ou do Git for Windows para testar isso, mas aqui está a resposta do Unix:

Crie um arquivo no seu diretório pessoal (cygwin) chamado ".inputrc" e adicione esta linha a ele:

Escape: unix-line-discard

Na minha variante Unix favorita, o Control-u é mapeado para unix-line-discard, o que exclui tudo antes do cursor. Se você quiser excluir toda a linha de entrada, incluindo qualquer coisa que esteja à direita do cursor, use "kill-whole-line" em vez de "unix-line-discard".

Observe que o modo de edição de linha bash pode consumir o Escape. Bash no meu sistema padrão para o modo de edição de linha estilo vi ( set -o vi ), e como você deve saber, vi é tudo sobre a chave Escape, então quando eu tento isso eu tenho que bater Escape duas vezes porque o primeiro é comido por o modo de edição no estilo vi. Eu não sou um cara do emacs, então não sei o que o modo de edição de linha no estilo emacs fará com um pressionamento de tecla Escape.

Note também que o arquivo .inputrc é lido quando o shell é iniciado, então após editar seu ~ / .inputrc, feche seu shell e abra um novo para ver se as mudanças funcionaram.

    
por 17.06.2011 / 12:31