pode bash ser configurado de forma que ctrl-W exclua palavras corretamente?

1

Readline nos oferece duas funções diferentes para excluir uma palavra, nenhuma delas parece ser configurável e nem a coisa certa. Existe algum voodoo que eu possa realizar, que combine os comportamentos e me dê o que eu espero?

**** Bind ctrl-W to backward-kill-word ****

% the "quick brown" fox
                        ^
% the "quick brown"        # 1x
                    ^
% the "quick               # 2x
             ^
% the "                    # 3x
       ^
%                          # 4x
  ^

Não: não entende que uma string entre aspas é uma única palavra.

**** Bind ctrl-W to shell-backward-kill-word ****

% the "quick brown" fox
                        ^
% the "quick brown" fox    # 1x
                       ^
% the "quick brown"        # 2x
                   ^
% the                      # 3x
     ^
%                          # 4x
  ^

Não: mais perto, mas a insistência em posicionar o cursor bem em cima da palavra anterior, e em deletar um único espaço na mesma situação em que a palavra que mata para trás corretamente mata a palavra inteira, torna isso intolerável.

Aqui está o que eu poderia ter pensado que seria o comportamento padrão, mas eu não posso evocá-lo.

% the "quick brown" fox
                        ^
% the "quick brown"        # 1x ctrl-W
                    ^
% the                      # 2x ctrl-W
      ^
%                          # 3x ctrl-W
  ^

Edit: Estou feliz em dizer que encontrei meu caminho para uma macro que realiza isso, pelo menos neste caso simples. O tempo dirá se isso acontece.

Meta-w: shell-backward-kill-word
Meta-s: delete-horizontal-space
Control-w: "\M-s\M-w "
    
por psp 23.03.2017 / 20:52

0 respostas

Tags