Ho appena installato Cygwin e la funzionalità BACKSPACE non è presente, ovvero quando premo il tasto Backspace, ottengo uno spazio.
Ho cercato di cercare questo problema su Google, ma non ho trovato nulla di conclusivo.
stty
comando?
Ho appena installato Cygwin e la funzionalità BACKSPACE non è presente, ovvero quando premo il tasto Backspace, ottengo uno spazio.
Ho cercato di cercare questo problema su Google, ma non ho trovato nulla di conclusivo.
stty
comando?
Risposte:
Nel mio caso il backspace non funzionava affatto dopo aver creato il vuoto ~ / .vimrc. In seguito al cambiamento ha funzionato
Mettere:
impostare bs = 2
in .vimrc
L'ho trovato su http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html
Ha funzionato per me: nel prompt dei comandi di Windows, digitare
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
Questo lo aggiungerà al .bashrc
e tutto potrebbe funzionare bene!
TERM
impostato la variabile di ambiente msys
tramite le impostazioni della variabile di ambiente di Windows come suggerito su StackOverflow per aiutare con git
problemi su Windows. La semplice reimpostazione su cygwin
in .bashrc
non ha aiutato, ma ha rimosso la TERM
voce dalle impostazioni di Windows. Grazie per avermi indicato nella giusta direzione!
Ho trovato una soluzione a un problema che si presentava come quello sopra.
Basta eseguire nuovamente l'installazione di Cygwin e reinstallare termcap
e terminfo
. Se si utilizza la casella di ricerca, è possibile trovarli rapidamente. Invece di dire "Mantieni" per ciascuno, fai clic per farlo dire "Reinstalla". Potrebbe essere necessario selezionare la casella di controllo "Nascondi obsoleto" per term
apparire nella ricerca.
La mia cartella terminfo era completamente mancante. Non ho idea del perché. Spero che questo aiuti qualcuno.
Quando si imposta il tipo TERM, si indica all'host quale TERMCAP utilizzare per disegnare nella finestra del terminale. La maggior parte degli host * NIX non sa cosa sia un termine "cygwin", quindi non sa come manipolare i caratteri sullo schermo come inserti, eliminazioni, pergamene, cambi di carattere, ecc.
Se cambi la variabile TERM in CYGWIN prima di telnet o SSH in un host otterrai risultati molto migliori:
In 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
$_
L'host ora sa che hai un tipo di terminale ANSI e può usare il suo file TERMCAP ANSI per dirgli come comunicare.
Se non riesci a farlo funzionare e quasi tutto funziona correttamente tranne il backspace, puoi riprogrammare "getty" sull'host a cui ti connetti per riconoscere ciò che vuoi, ed ecco come (questo è il più vecchio, il più comune e il più universale modo di risolvere backspace / eliminare problemi):
Si ssh o telnet al proprio host e nell'host si esegue il comando stty. Se si preme il tasto "BACKSPACE" e non si torna indietro è perché il terminale sta probabilmente cercando un carattere diverso in base al tipo TERM. Invece di esaminare tutto ciò, puoi impostare manualmente la definizione di backspace nella CLI o nel tuo file .profile, .bashrc o .bash-profile nella tua directory $ HOME come desideri o in base al sapore di * NIX che sei utilizzando.
Quindi se premi ^ H (che è CONTROL-H) e il tuo tasto esegue il backup ma premi il tasto BACKSPACE e non prova a usare stty come segue:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
Il più delle volte sembrerà così:
stty erase \^?[ENTER]
"\" Dice che il prossimo personaggio sarà un personaggio di controllo non stampabile e lo accetterà, non "interpretandolo".
Dopo aver premuto [INVIO] dovresti essere in grado di premere il tasto [BACKSPACE] e farlo tornare indietro / cancellare qualunque cosa tu abbia digitato.
Puoi impostarlo nella tua shell.
Ora, se usi ancora VI, a volte la traduzione non funziona e devi effettivamente digitare ^ H in vi, ma va bene.
Avresti potuto dire:
stty erase k [INVIO]
e avrebbe letteralmente tradotto 'k' nel carattere di cancellazione / cancellazione ..
-D
Ok, ho avuto questo problema con l'aggiornamento manuale di un'installazione Cygwin. Comunque ho trovato questo post , che mi ha portato alla soluzione per la mia installazione.
Il cygwin più vecchio aveva un file /etc/terminfo/c/cygwin
, ma nel cygwin più recente si aspettava che fosse il file /etc/terminfo/63/cygwin
.
Una volta copiato il file "cygwin" in questa posizione, il tasto backspace della shell bash ha funzionato bene, così come tab e altri.
La modifica della TERM
variabile in cygwin
e l'aggiunta SET TERM=cygwin
al .bat
file non ha funzionato per me, ma l'ho risolto. Ecco cosa ho fatto: In Gestione pacchetti a causa dell'installazione ho scelto di installare xterm: X11 terminal emulator
, dopo l'installazione ho aggiunto SET TERM=xterm
il .bat
file (come proposto sopra), ho lanciato il terminale e in Opzioni -> Menu Terminale selezionato Type=xterm
, quindi ho riavviato il terminale. Backspace ha iniziato a funzionare correttamente!
Nota: se hai già installato Cygwin, esegui di nuovo il programma di installazione e aggiungi il pacchetto xterm.
Sto correndo:
Sono d'accordo con tutte le risposte qui. Ma c'è un modo molto più semplice trovato qui: http://lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html
Dopo aver trascorso 2 giorni a leggere materiale online. Ho trovato questo che ha funzionato per me. Non so se questo caso corrisponda a tutti. Ma ha funzionato come un incantesimo per me grazie a Yuksel
Il problema era con i file 'termInfo', passaggi che ha suggerito
confermare se il problema è correlato al terminale digitando CygWin Terminal, questo dovrebbe dare (ignorare l'avvertimento)
less my_session.log
ATTENZIONE: il terminale non è completamente funzionante
Ottieni le informazioni di 'TermCap' a quale percorso o directory è correlato digitando il codice seguente nel Terminale CygWin
infocmp -C
dovresti o prendere
infocmp: impossibile aprire il file terminfo / usr / share / terminfo / 63 / cygwin
Oppure potresti anche ottenere qualcosa che inizia con un testo come "Ricostruito tramite infocmp ..."
Eseguire il codice seguente in CygWin Terminal per eseguire la diagnostica per ottenere ulteriori dettagli sul percorso in cui vengono salvati i file
cygcheck -s
che dovrebbe risponderti in modo simile al testo seguente
Diagnostica configurazione Cygwin
...
C: / cygwin / system binary, noacl
C: / cygwin / bin / usr / bin system binario, noacl
C: binario di sistema / cygwin / lib / usr / lib, noacl
C: \ cygwin \ etc \ terminfo / usr / share / terminfo system binary, noacl
prefisso cygdrive / binario utente cygdrive, noacl, posix = 0, auto
...
C: \ cygwin \ etc \ terminfo / usr / share / terminfo system binary, noacl
dall'output, hai ottenuto dal 3 ° passaggio. ora copia tutti i file e le cartelle presenti in / usr / share / terminfo nella cartella C: \ cygwin \ etc \ terminfo - NOTA: questa cartella potrebbe essere diversa dalla tua a seconda dell'installazione
Si prega di seguire l'immagine qui sotto
options
Keys
schedaBackarrow sends ^H
Questa è l'unica cosa che ha funzionato per me, soprattutto perché se devi SSH su un server (non tutte le correzioni funzioneranno), aggiungevo stty erase ^?
al mio .bashrc, ma questo risolveva il problema solo l'80% delle volte.
Non ho mai avuto problemi. Prova a installare Terminal Emulator Mintty ( http://code.google.com/p/mintty/ ).
È disponibile tramite il programma di installazione di Cygwin. Il miglior terminale per Cygwin.