backspace não está funcionando, mesmo após a tentativa de correção

6

Eu tentei seguir as instruções em A tecla de retrocesso não funciona no vim , mas ainda tenho o mesmo problema: o BACKSPACE insere um ^?

Ou seja: inserir set bs=indent,eol,start no meu ~/.vimrc não resolveu o problema.

Tenho certeza de que estou carregando o arquivo de origem correto (fiz um teste de outra configuração e a alteração foi propagada).

Estou usando: Vi IMproved 7.2 no Ubuntu com o Gnome. No aplicativo terminal, o backspace funciona corretamente.

    
por dsg 02.06.2011 / 03:32

4 respostas

6

O Vim parece estar confuso sobre o que seu terminal envia como o caractere de apagar. Como isso varia entre ^? ( Ctrl +? , ou DEL para "excluir") e ^H ( Ctrl + H ou BS para "backspace" ), Vim depende de alguém dizendo o que esperar.

Isso não deve acontecer a menos que

  • você está alterando configurações relacionadas em vimrc ,
  • você está alterando o valor da variável de ambiente TERM ,
  • seu banco de dados de informações do terminal está confuso ou
  • você está sofrendo de uma infestação de gremlin.

Para a solução de problemas, tente executar o comando stty erase ^? antes de iniciar o Vim e veja se isso o corrige. Digite o ^? não separadamente como ^ e ? , mas pressionando primeiro Ctrl + V , então sua tecla Backspace . Se o seu shell é bem comportado, isso deve produzir uma representação literal do que quer que seu terminal envie quando você apertar essa tecla.

    
por 02.06.2011 / 04:37
1

Encontrei esta questão enquanto procurava por algo ligeiramente relacionado, e pensei em postar um acompanhamento pedante (mas possivelmente útil).

A maioria das versões modernas de stty (1) (incluindo a versão fornecida com GNU Coreutils) interpretam as sequências de dois caracteres ^ ? e ^ h como a sequência de controle ASCII DEL e ASCII BS (respectivamente). Ou, mais geralmente, seqüências de dois caracteres começando com ^ como seu caractere de controle ASCII equivalente.

Portanto, os dois comandos seguintes são equivalentes:

stty erase '^?'
stty erase ^VDEL
    
por 23.03.2012 / 18:34
1

Se você estiver usando o gnome-terminal, então deve haver uma configuração para que o backspace emule ^ H. Existem configurações semelhantes em outros emuladores de terminal; é o primeiro lugar que eu iria desde que ninguém mais mencionou isso.

    
por 02.06.2011 / 06:27
0

Tente adicionar o seguinte ao seu .bashrc (ou .profile)
stty erase ^ H
Esse é o caractere "^" seguido pelo caractere "H"
--or--
Se isso não funcionar, para obter o tipo "^ H" control-V seguido por control-H

Veja a ajuda do vim
: ajuda gui-pty-erase

    
por 02.06.2011 / 07:53

Tags