Isso também pode ser feito usando o espaço de localização, avançar, excluir palavra.
"\eq": "\C-]\ \C-f\C-w"
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
Isso também pode ser feito usando o espaço de localização, avançar, excluir palavra.
"\eq": "\C-]\ \C-f\C-w"
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.
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.
Tags bash readline key-mapping