Acabei de instalar o Cygwin e a funcionalidade BACKSPACE não existe, ou seja, quando pressiono a tecla Backspace, recebo um espaço.
Eu tenho tentado pesquisar esse problema no Google, mas não encontrei nada conclusivo.
stty
comando?
Acabei de instalar o Cygwin e a funcionalidade BACKSPACE não existe, ou seja, quando pressiono a tecla Backspace, recebo um espaço.
Eu tenho tentado pesquisar esse problema no Google, mas não encontrei nada conclusivo.
stty
comando?
Respostas:
No meu caso, o backspace não estava funcionando depois de criar ~ / .vimrc em branco. Após a alteração, funcionou
Colocar:
set bs = 2
em .vimrc
Encontrei isso em http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html
Trabalhou para mim: No prompt de comando do Windows, digite
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
Isso o adicionará ao .bashrc
e tudo poderá funcionar bem!
TERM
variável de ambiente definida como msys
através das configurações de variável de ambiente do Windows, conforme sugerido no StackOverflow, para ajudar com git
problemas no Windows. Simplesmente redefini-lo para cygwin
in .bashrc
não ajudou, mas remover a TERM
entrada das configurações do Windows ajudou . Obrigado por me indicar a direção certa!
Encontrei uma solução para um problema que se apresentava como o descrito 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 "Manter" para cada um, clique nele para dizer "Reinstalar". Pode ser necessário marcar a caixa de seleção "Ocultar obsoleto" para term
aparecer na pesquisa.
Minha pasta terminfo estava totalmente ausente. Não faço ideia do porquê. Espero que isso ajude alguém.
Ao definir o tipo TERM, você está dizendo ao host qual TERMCAP usar para desenhar dentro da janela do terminal. A maioria dos hosts * NIX não sabe o que é um tipo de termo 'cygwin', portanto, não sabe como manipular caracteres na tela, como inserções, exclusões, rolagens, alterações de fonte etc.
Se você alterar a variável TERM no CYGWIN antes do telnet ou 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 conseguir que isso funcione e quase tudo funcione corretamente, exceto o backspace, poderá reprogramar "getty" no host ao qual você se conecta para reconhecer o que deseja, e veja como (este é o mais antigo, o mais comum e o mais universal) maneira de resolver problemas de retrocesso / exclusão):
Você ssh ou telnet para o seu host e no host você executa o comando stty. Se você pressionar a tecla "BACKSPACE" e ela não retroceder, é porque o terminal provavelmente está procurando um caractere diferente com base 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, conforme desejar, ou com base no sabor do * NIX que você é usando.
Portanto, se você pressionar ^ H (que é CONTROL-H) e a 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, fica assim:
stty erase \^?[ENTER]
O '\' informa 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 volte / exclua o que você digitou.
Você pode definir isso no seu shell.
Agora, se você ainda usa VI, às vezes a tradução não funciona e você precisa digitar ^ H no vi, mas tudo bem.
Você poderia ter dito:
stty apagar k [ENTER]
e literalmente teria traduzido 'k' no caractere apagar / excluir.
-D
Ok, eu tive esse problema ao atualizar manualmente uma instalação do Cygwin. Enfim, encontrei este post , o que me levou à solução para minha instalação.
O cygwin mais antigo tinha um arquivo /etc/terminfo/c/cygwin
, mas no cygwin mais novo esperava que o arquivo fosse /etc/terminfo/63/cygwin
.
Depois de copiar o arquivo "cygwin" para esse local, a tecla backspace do bash shell funcionou bem, assim como tab e outras.
Alterar a TERM
variável cygwin
e adicionar SET TERM=cygwin
ao .bat
arquivo não funcionou para mim, mas eu a corrigi. Aqui o que eu fiz: No gerenciador de pacotes, devido à instalação, eu escolhi instalar xterm: X11 terminal emulator
, após a instalação eu adicionei SET TERM=xterm
ao .bat
arquivo (como proposto acima), iniciei o terminal e em Opções -> Menu Terminal selecionado Type=xterm
, depois reiniciei o terminal. Backspace começou a funcionar corretamente!
Nota: se você já instalou o cygwin - basta executar o instalador novamente e adicionar o pacote xterm.
Estou correndo:
Eu concordo com todas as respostas aqui. Mas há uma maneira muito mais simples encontrada aqui: http://lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html
Depois de passar 2 dias lendo coisas online. Eu encontrei este que funcionou para mim. Não sei se esse caso corresponde a todos. Mas funcionou como um encanto para mim, graças a Yuksel
O problema estava nos arquivos 'termInfo', etapas que ele sugeriu
confirme se o problema está relacionado ao terminal digitando o CygWin Terminal, isso deve ocorrer (ignore o aviso)
less my_session.log
AVISO: o terminal não está totalmente funcional
Obtenha as informações do 'TermCap' a que caminho ou diretório ele está relacionado, digitando o código abaixo no Terminal CygWin
infocmp -C
você deveria obter
infocmp: não foi possível abrir o arquivo terminfo / usr / share / terminfo / 63 / cygwin
Ou você também pode obter algo começando com o texto como "Reconstruído via infocmp ..."
Execute o código abaixo no CygWin Terminal para executar o diagnóstico e obter detalhes adicionais sobre o caminho em que os arquivos são salvos
cygcheck -s
que deve responder você semelhante ao texto abaixo
Cygwin Configuration Diagnostics
...
C: / cygwin / sistema binário, noacl
C: / cygwin / bin / usr / bin system binário, noacl
C: / cygwin / lib / usr / lib sistema binário, noacl
C: \ cygwin \ etc \ terminfo / usr / share / terminfo sistema binário, noacl
prefixo do cygdrive / usuário do cygdrive binário, noacl, posix = 0, automático
...
C: \ cygwin \ etc \ terminfo / usr / share / terminfo sistema binário, noacl
da saída, você obteve o terceiro passo. agora copie todos os arquivos e pastas existentes dentro de / usr / share / terminfo para a pasta C: \ cygwin \ etc \ terminfo - NOTA: essa pasta pode ser diferente da sua, dependendo da instalação
Por favor, siga a imagem abaixo
options
Keys
guiaBackarrow sends ^H
Essa é a única coisa que funcionou para mim, especialmente porque, se você precisar fazer o SSH em um servidor (nem todas as correções funcionarão), eu adicionava stty erase ^?
ao meu .bashrc, mas isso corrigia o problema 80% do tempo.
Nunca experimentou seu problema. Tente instalar o Emulador de Terminal Mintty ( http://code.google.com/p/mintty/ ).
Está disponível no instalador do Cygwin. Melhor terminal para cygwin.