Excluindo entrada para o próximo espaço

3

Quando no terminal eu posso usar Ctrl + w para deletar uma palavra inteira ou IP ( . é o separador para cada octeto) quando for para a esquerda do prompt. No entanto, se eu tentar Alt + d ir para a direita do prompt, o terminal reconhecerá "." em IP para um separador e exclui apenas um fragmento, até o . de todo o IP.

Como posso ajustar esse terminal para reconhecer apenas espaços em branco para separador de palavra ou melhor ainda para ter outro atalho para diferentes separadores: . , = , , , etc?

É muito semelhante ao manobrar no terminal com Ctrl + Arrows (esquerda e direita) e o comportamento é semelhante com base no que é definido para o separador de palavras.

Eu li que o editor do Emacs está atrás do terminal que usa esses atalhos, mas eu não consegui twinká-lo.

    
por Lacho 24.01.2015 / 22:44

1 resposta

5

Primeiro, use o seguinte comando no seu terminal:

bind '"\ew": vi-forward-bigword'

para criar uma nova tecla de atalho - Alt + w neste caso - que moverá o prompt para frente até o final da palavra atual ou próxima. Neste caso, as palavras ( bigwords ) são compostas de letras, dígitos e caracteres especiais como "."

Agora você pode usar Alt + w seguido por Ctrl + w para realizar o que você deseja. / p>

Veja mais algumas informações na minha resposta aqui .

Além disso, depois de visualizar minhas perguntas e respostas , entendi o seguinte:

  

Com bind , você pode ligar chaves para fazer uma destas três coisas, mas não   combinação deles :

     
  • Execute um comando readline: bind '"key": command'
  •   
  • Execute uma série de pressionamentos de teclas: bind '"key":"keystrokes"'
  •   
  • Executar um comando shell: bind -x '"key": shell-command'
  •   

Então, agora, se você quiser combinar esses dois pressionamentos de tecla ( Alt + w seguido por Ctrl + w ) em um novo, você precisará ligar um novo pressionamento de tecla (no meu exemplo Alt + q ) para executar os pressionamentos de tecla anteriores da seguinte forma:

bind '"\eq": "\ew \C-w"'

Finalmente, para fazer essas alterações permanentemente, tudo o que você precisa fazer é adicionar as seguintes linhas ao seu arquivo ~/.inputrc (se você não tiver, crie-o):

"\ew": vi-forward-bigword
"\eq": "\ew \C-w"
    
por Radu Rădeanu 24.01.2015 / 23:52