Eu acreditoEste artigodeve me ajudar a encontrar a sequência de controle para exclusão de palavras para trás/para frente.
Meu entendimento é que a sequência de controle começaria, \u001b[
já que é"o introdutor da sequência de controle"(eu peguei isso deesta outra resposta), mas não sei realmente qual deveria ser a string completa.
Contexto (de acordo com a outra pergunta do SO): Meu objetivo é emitir a sequência de controle para excluir palavras no terminal VSCode a partir de um atalho de teclado (atalho de teclas)
Responder1
Não existe tal coisa, você pode ver octlseq
documento não contém nenhuma menção aopalavrapalavra. Há também a questão de qual cor de fundo usar para apagar e se deve ou não deslocar o que está à direita da palavra para a esquerda. Talvez você precise considerar palavras agrupadas na margem direita do terminal.
Algumas de suas opções são:
envie tantos caracteres BS quantas células houver na palavra que você deseja apagar, seguido por tantos SPC (cuidado, ele usa a cor de fundo atual) seguido por tantos caracteres BS novamente (para mover o cursor de volta):
$ printf 'foo bar\b\b\b \b\b\b+\n' foo +
que se deve trabalhar em praticamente todos os terminais.
o mesmo, mas use
tput cub x
(ondex
está o número de células) para mover o cursor para trás naquele valor, em vez de usar uma sequência de BS. E você pode usartput ech x
para apagar essas células (com a cor de fundo atual ou não dependendo do terminal)$ printf 'foo bar'; tput cub 3; tput ech 3; printf '+\n' foo +
em vez de
tput ech x
, você pode usartput el
para apagar até o final da linha output dch x
paraexcluirx células (e desloque o que vem depois para a esquerda).
( tput
aqui está a interface shell para o banco de dados terminfo, a idéia é evitar sequências de escape de codificação rígida, use o equivalente para o seu idioma).
Olhando para os backward-kill-word
widgets de alguns shells (usando, script
por exemplo, para registrar sua saída), vejo readline
que usa BS para movimento e dch
exclusão, enquanto zsh
usa uma combinação de BS e cub
reescrita. tcsh
parece estar fazendo algum posicionamento absoluto da coluna ( hba
) e usado dch
para excluir, ksh93 envia um CR e reescreve a linha inteira.
Responder2
Nunca vi tal sequência. Se você pensar bem, excluir uma palavra é bastante complexo, mais complexo do que outras operações, e não acho que qualquer outra operação se importe de alguma forma com o que está na tela. Por exemplo, o que termina uma palavra? '_'? '-'? '.'?