MpasXterm backspace envia ^ H

5

Longa pergunta: Eu estou tentando testar o meu simples servidor HTTP por Telnet-in um monte de solicitações e ver como o servidor reage. Mas quando eu faço um erro de digitação e pressiono Backspace para apagar o caractere anterior, o MobaXterm envia ^H ao invés de remover o caractere da string. Quando eu pressiono Shift + Backspace tudo funciona do jeito que eu quero, mas depois de um tempo isso fica muito chato ... Então, existe uma solução que apenas muda a funcionalidade do backspace?

Pergunta curta: É possível fazer backspace excluir um caractere em vez de enviar ^H ?

    
por DutChen18 28.10.2015 / 22:16

2 respostas

10

O MobaXterm também propõe uma configuração de caixa de seleção "Backspace sends ^ H" que você pode tentar alternar (nas configurações globais do MobaXterm - > guia "Terminal").

Se você estiver usando uma sessão salva, você terá que editar esta sessão, vá para a aba "Terminal settings" e desative a caixa de seleção "Backspace sends ^ H".

    
por 29.10.2015 / 08:08
3

A chave rotulada "backspace" é uma questão de contenção. Tecnicamente, deve enviar ^H simplesmente porque esse é o nome do caractere de controle ASCII. Outros diferem, porque suas expectativas foram afetadas pela história desse recurso (veja Por que não minha chave de exclusão funciona? ).

Em uma discussão em que você diz que está digitando, a conotação usual (falta de esclarecimento) é que você iniciou um terminal e depois executa um programa dentro do terminal. Para esse caso, há uma inicialização de terminal correspondente, por exemplo, usando um shell e um programa como stty . Isso é executado na máquina local (onde você está digitando). MobaXterm fornece stty desde a versão 3.2 (2011-05-30).

Dado que, se o MobaXterm enviar ^H , sua inicialização do terminal deve usar

stty erase \^H

Veja, por exemplo, O que o comando stty erase ^H faz? .

Por outro lado, você poderia ter (não aparente na questão) construído uma situação em que o terminal é iniciado de uma maneira que impede o uso de stty para tornar a aplicação e o terminal consistentes. Ou você pode ter outro motivo para alterar o comportamento da tecla backspace. PuTTY (como xterm) fornece dois mecanismos para isso:

  • um (originalmente implementado em rxvt) permite usar o modificador shift para alternar o código enviado de "backspace" entre backspace ASCII (BS = 8 = ^H ) e delete (DEL = 127 , frequentemente mostrado como ^? ).
  • o outro é a configuração do terminal (uma configuração de diálogo na seção Teclado da seção Terminal ).

O xterm fornece um terceiro mecanismo que o PuTTY parece não ter (veja Sequências de Controle XTerm ):

CSI ? Pm h
      DEC Private Mode Set (DECSET).
            Ps = 6 7  -> Backarrow key sends backspace (DECBKM).

Se o PuTTY implementasse isso, seu aplicativo poderia definir o comportamento do terminal diretamente. Em vez disso, durante a inicialização, o PuTTY verifica o estado inicial de sua configuração e (dependendo da plataforma) também verifica (como xterm) os modos de terminal definidos no dispositivo e escolhe um comportamento de retrocesso versus comportamento de exclusão que você pode acomodar ou alterar conforme observado. / p>     

por 29.10.2015 / 02:17