No meu caso, o backspace não funcionava de forma alguma depois de criar ~ / .vimrc em branco. Após a mudança, funcionou
Coloque:
definir bs = 2
em .vimrc
Encontrei isto em link
Acabei de instalar o Cygwin e a funcionalidade BACKSPACE não está lá, ou seja, quando pressiono a tecla Backspace, recebo um espaço.
Estou tentando pesquisar esse problema no Google, mas não encontrei nada conclusivo.
No meu caso, o backspace não funcionava de forma alguma depois de criar ~ / .vimrc em branco. Após a mudança, funcionou
Coloque:
definir bs = 2
em .vimrc
Encontrei isto em link
Eu encontrei uma solução para um problema apresentado como o acima.
Simplesmente execute a instalação do Cygwin novamente e reinstale termcap
e terminfo
. Se você usar a caixa de pesquisa, poderá encontrá-los rapidamente. Em vez de dizer "Keep" para cada, clique nele para dizer "Reinstalar". Pode ser necessário marcar a caixa de seleção "Ocultar Obsoleto" para que term
apareça na pesquisa.
Minha pasta terminfo estava totalmente ausente. Não faço ideia do porquê. Espero que isso ajude alguém.
Trabalhou para mim: no prompt de comando do Windows, digite
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
Isto irá adicioná-lo ao .bashrc
e tudo poderá funcionar bem!
Edite seu c: \ cygwin \ cygwin.bat
Coloque isto: SET TERM=cygwin
antes: bash --login -i
Quando você define o tipo TERM, você está dizendo ao host qual TERMCAP usar para desenhar na janela do terminal. A maioria dos hosts * NIX não sabe o que é um tipo de termo 'cygwin' para que eles não saibam como fazer a manipulação de caracteres na tela, como inserções, exclusões, rolagens, mudanças de fonte, etc.
Se você alterar a variável TERM no CYGWIN antes do telnet ou do SSH para um host, obterá resultados muito melhores:
No CYGWIN:
d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1
d@suntest1's password:
Sun Microsystems Inc. SunOS 5.8 Generic patch October 2001
d pts/1 test01 Fri Oct 12 00:15 still logged in
$ echo $TERM
ansi
$_
O host agora sabe que você tem um tipo de terminal ANSI e pode usar o arquivo ANSI TERMCAP para informar como se comunicar.
Se você não consegue fazer isso funcionar e quase tudo funciona corretamente, exceto o backspace, você pode reprogramar o "getty" no host ao qual se conecta para reconhecer o que deseja, e aqui está como (este é o mais antigo, mais comum e a maneira mais universal de resolver problemas de retrocesso / exclusão):
Você ssh ou telnet para seu host e no host você executa o comando stty. Se você apertar a tecla "BACKSPACE" e ela não for para trás, é porque o terminal provavelmente está procurando por um caractere diferente baseado no tipo TERM. Em vez de pesquisar tudo isso, você pode definir manualmente a definição de backspace na CLI ou em seu arquivo .profile, .bashrc ou .bash-profile no diretório $ HOME desejado ou com base no sabor do * NIX que você é usando.
Portanto, se você pressionar ^ H (que é CONTROL-H) e sua chave fizer backup, mas você pressionar a tecla BACKSPACE e ela não tentar usar stty da seguinte maneira:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
Na maioria das vezes, será assim:
stty erase \^?[ENTER]
O '\' diz que o próximo caractere será um caractere de controle não imprimível e para aceitá-lo, não "interpretá-lo".
Depois de pressionar [ENTER], você poderá pressionar a tecla [BACKSPACE] e fazer com que ela retroceda / exclua o que você digitou.
Você pode definir isso no seu shell.
Agora, se você ainda usa o VI, às vezes a tradução não funciona e você precisa digitar ^ H no vi, mas tudo bem.
Você poderia ter dito:
stty erase k [ENTER]
e ele literalmente teria traduzido 'k' para o caractere de apagar / apagar ...
-D
Ok, eu tive esse problema com a atualização manual de uma instalação do Cygwin. De qualquer forma eu encontrei este post , que me leva à solução para o meu instalar.
O cygwin antigo tinha um arquivo /etc/terminfo/c/cygwin
, mas no novo cygwin esperava que o arquivo fosse /etc/terminfo/63/cygwin
.
Depois que copiei o arquivo "cygwin" para esse local, a tecla backspace do bash funcionou bem, assim como a guia e outros.
Alterar a variável TERM
para cygwin
e adicionar SET TERM=cygwin
ao arquivo .bat
não funcionou para mim, mas eu corrigi-lo. Aqui o que eu fiz: No gerenciador de pacotes devido instalação eu selecionei para instalar xterm: X11 terminal emulator
, após a instalação eu adicionei SET TERM=xterm
para o arquivo .bat
(como proposto acima), terminal aberto e em Opções - > O menu Terminal selecionou Type=xterm
, depois reiniciou o terminal. Backspace começou a funcionar corretamente!
Nota: se você já instalou o cygwin - apenas execute o instalador novamente e adicione o pacote xterm.
Estou correndo:
Concordo com todas as respostas aqui. Mas há uma maneira muito mais simples encontrada aqui: link
Trabalhou para mim: no prompt de comando do Windows, digite
(echo; echo "export TERM=cygwin") >> ~/.bash_profile
Isto irá adicioná-lo ao .bash_profile (não ao .bashrc, que não funcionou para mim e com uma quebra de linha líder)
Depois de passar dois dias lendo material on-line. Eu encontrei este que funcionou para mim. Eu não sei se este caso combina com todos. Mas funcionou como um encanto para mim graças a Yuksel
O problema foi com arquivos 'termInfo', Etapas que ele sugeriu
confirme se o problema está relacionado ao terminal digitando no CygWin Terminal, isso deve dar (ignorar o aviso)
less my_session.log
WARNING: terminal is not fully functional
Obtenha as informações do 'TermCap' para o caminho ou diretório ao qual ele está relacionado digitando o código abaixo no Terminal CygWin
infocmp -C
você deve pegar
infocmp: couldn't open terminfo file /usr/share/terminfo/63/cygwin
Ou você também pode receber algo que comece com um texto como "Reconstruído via infocmp ..."
Execute o código abaixo no Terminal CygWin para executar os diagnósticos para obter detalhes adicionais sobre o caminho onde os arquivos são salvos
cygcheck -s
que deve responder de maneira semelhante ao texto abaixo
Cygwin Configuration Diagnostics
...
C:/cygwin / system binary,noacl
C:/cygwin/bin /usr/bin system binary,noacl
C:/cygwin/lib /usr/lib system binary,noacl
C:\cygwin\etc\terminfo /usr/share/terminfo system binary,noacl
cygdrive prefix /cygdrive user binary, noacl, posix=0, auto
...
C:\cygwin\etc\terminfo /usr/share/terminfo system binary,noacl
da saída, você obteve o terceiro passo. agora copie todos os arquivos e pastas que existem dentro de / usr / share / terminfo para a pasta C: \ cygwin \ etc \ terminfo - NOTA: esta pasta pode ser diferente da sua dependendo da instalação
Nunca experimentou seu problema. Tente instalar o Mintty do emulador de terminal ( link ).
Está disponível através do instalador do Cygwin. Melhor Terminal para cygwin.