Excluindo entrada para o próximo espaço

6

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 o separador de palavras 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.

Estou tentando fazer isso no Ubuntu 10.

Aqui: link é o que me foi sugerido na outra fórum para o Ubuntu 14.

Eu tentei isso:

"Então, agora, se você quiser combinar essas duas teclas ( 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" 

mas eu entendo isso como resultado:

Quando adicionado, Alt + w ainda não funciona, e Ctrl + e erro não funciona mais. Saídas de terminal ;5D e ;5C quando essas são usadas para mover de palavra para palavra ...

Por favor, informe qual é a diferença entre as duas versões.

Obrigado

    
por Lacho 04.02.2015 / 11:22

3 respostas

1

Isso também pode ser feito usando o espaço de localização, avançar, excluir palavra.

"\eq": "\C-]\ \C-f\C-w"

    
por 22.03.2015 / 04:15
1

Se você é um usuário do Emacs, minha resposta provavelmente não é algo que você queira usar, mas ainda deve ser notada nesta página, então aqui está:

Você pode usar vi keybindings em um shell bash com muita facilidade. Digite set -o vi . Adicione ao seu .bashrc se você gostar dos resultados.

A resposta à sua pergunta específica, excluir encaminhar para o próximo espaço, é realizada com dt<Space> (excluir até o espaço) ou apenas dE (excluir ao final do Word delimitado por espaço).

Atalhos de teclado padrão vi são usados - a principal coisa para se acostumar (se você já é um usuário vi) é que você estará no modo de inserção por padrão. Portanto, para usar um comando de modo normal, como o acima, digite <Esc> primeiro. Alternativamente, você pode manter pressionada a tecla Alt enquanto digita a primeira letra do seu comando. Por exemplo, k é o comando vi para subir uma linha, então <Alt>k pode ser usado exatamente como a seta para cima - para voltar um comando em seu histórico.

    
por 30.11.2015 / 08:56
0

Se .inputrc existir, /etc/inputrc não será mais lido, então você perderá todas as configurações que usa atualmente ( .inputrc substitui a global). Copie o global e apenas adicione sua modificação a ele. Então deve funcionar como antes, com a adição de sua nova ligação. Ou apenas coloque o comando bind no seu .bashrc e ele será executado toda vez que você abrir um shell interativo - basicamente o mesmo efeito que você tem agora.

Se alguém souber como "incluir / incluir" outro arquivo de configuração em .inputrc , eu gostaria muito de ouvi-lo.

    
por 04.02.2015 / 11:53