Estou tentando mudar do uso prolongado do Tcsh para a exploração recente do Bash.
Eu consegui portar todos os meus recursos favoritos, exceto Ctrl + w, que trata de espaços e barras como limites de palavras, provavelmente a palavra matar para trás. No Bash, no entanto, a linha de leitura exclui todo o caminho até o primeiro espaço, excluindo todas as barras no meio.
Eu tentei muitas combinações diversas de \ Cw: backward-kill-word nos .inputrc e .bashrc usando o bind, mas não consigo fazê-lo funcionar da maneira que desejo.
Engraçado, através do Putty do Windows no trabalho, posso usar Alt + Backspace, que também diz o manual como a ligação padrão, para produzir o comportamento exato que desejo. Mas no Terminal.app nos meus Macs em casa isso não funciona. O mesmo vale para qualquer servidor FreeBSD ou Linux no qual eu esteja logado no Terminal.app.
Por isso, recorro ao superusuário para obter ajuda.
cat
. Em todos os Unixes,stty
é usado para controlar vários parâmetros tty, incluindo essas teclas especiais. (Veja como UNIX 7ª Ediçãostty
parecia.)stty
manual). Além disso, o bash foi originalmente destinado ao sistema operacional GNU e, posteriormente, portado para outros Unixes; é muito mais fácil manter os recursos de edição em uma única biblioteca do que em vários kernels muito diferentes.stty
configuração por simplicidade, mas pode ser substituído pelas próprias configurações do readline (como descrito na resposta de Matt Day).O grawity escreveu que isso não pode ser controlado no
.inputrc
arquivo, mas está incorreto.Se você estiver
set bind-tty-special-chars off
no seu.inputrc
, poderá personalizar o comportamento dos caracteres especiais do terminal.Por exemplo:
fonte
python
,.Para o registro, a resposta que se aplica ao iTerm2 é definir Alt- Backspace(ou Opt ⌥- ⌫no Mac) para enviar códigos hexadecimais
0xb1
e0x7f
executar abackward-kill-word
ação que trata caracteres não alfanuméricos como delimitadores.Para distinção, aqui está o comportamento que estou descrevendo, no qual pressionar Opt ⌥- ⌫uma vez muda isso:
echo "/example/filepath/with_non-alpha.characters@blah:meh
para isso:
echo "/example/filepath/with_non-alpha.characters@blah:
E prensas subsequentes de Opt ⌥- ⌫:
echo "/example/filepath/with_non-alpha.characters@
echo "/example/filepath/with_non-alpha.
echo "/example/filepath/with_non-
echo "/example/filepath/with_
echo "/example/filepath/
Aqui está a aparência da configuração no iTerm2:
Portanto, específico para Putty e Terminal, a resposta da grawity é ótima. Mas, depois de passar um tempo embaraçoso procurando como aplicar a configuração no iTerm2, essa postagem de superusuário parece surgir com mais frequência, por isso parecia responsável fornecer as informações relevantes que se aplicam ao iTerm2 como resposta anexada a esta pergunta.
fonte