stty não exibe o atalho de palavra de exclusão para trás

1
stty -a

mostra,

speed 38400 baud; rows 39; columns 143; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

Aqui, não estou vendo M-DEL , que é o emacs atalho estilizado para excluir uma palavra para trás.

Qual é o subcomando stty que eu posso usar para remapear a chave para backward-delete-word ?

    
por Madhavan Kumar 28.07.2015 / 05:08

1 resposta

1

M-Del é apenas um enlace de chaves do emacs. Não é algo tipicamente interpretado pelo driver in-kernel tty. Apagar palavra para trás, ou werase, é definido como control-W (^ W) na sua saída stty -a .

O kernel funciona em bytes e, portanto, se você usar uma codificação UTF-8, será difícil vincular caracteres não-ASCII a werase. Na verdade, M-Del seria 0xff, que é um byte que nunca aparece em UTF-8.

Sua melhor aposta é usar um shell como o bash ou tcsh que coloca o terminal no modo cbreak para implementar seus próprios recursos de edição de linha. O Bash parece ligar o M-Del ao word erase por padrão. Você também pode executar bind -P no bash para ver quais chaves estão vinculadas a quais funções de edição.

    
por 28.07.2015 / 08:10