Il mio problema è che la shell Bash smette di mostrare i caratteri che scrivo al suo interno. Legge i comandi però.
Ho riscontrato questo problema parecchie volte e non capisco cosa lo causi. So come risolverlo, ma davvero non mi piace quando sto "voodooing" il mio modo di risolvere i problemi.
Descriverò i due modi in cui ho riscontrato questo problema:
Sto eseguendo un certo processo, http://pythonpaste.org/script/ e talvolta quando lo interrompo o si rompe il controllo viene restituito alla shell. Quando poi vado e digito i comandi nella shell, i caratteri che scrivo non vengono visualizzati. Quando premo invio vengono inviati i comandi . Quindi per esempio:
- Digito "ls"
- Vedo solo un prompt vuoto e nient'altro
- Premo invio e mi viene fornito un elenco dei file, in altre parole: il comando viene eseguito
- quando do il comando "reset" la shell ricomincia a funzionare normalmente
Il secondo modo in cui ciò accade è quando do un comando come questo:
$ grep foo * -l | xargs vim
Uso grep per trovare file che hanno un certo schema e quindi voglio aprire tutti i file risultanti da grep. Funziona come un incantesimo (anche se non così veloce come speravo). Ma quando esco da Vim la mia shell smette di mostrare i personaggi che scrivo. Un comando di ripristino risolve il problema.
La mia ipotesi è che entrambi i problemi abbiano una ragione di fondo, ma sono un po 'perplesso su come o quale sia quella ragione.
La ricerca di questo problema è di per sé problematica perché la descrizione è piuttosto vaga e non ha termini di ricerca difficili.
modificare
Dare il
stty --all
il comando secondo la richiesta di John S. Gruber forniva il seguente output (spazi bianchi modificati per la leggibilità)
speed 0 baud;
rows 53;
columns 186;
line = 0;
intr = <undef>;
quit = <undef>;
erase = <undef>;
kill = <undef>;
eof = <undef>;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = <undef>;
stop = <undef>;
susp = <undef>;
rprnt = <undef>;
werase = <undef>;
lnext = <undef>;
flush = <undef>;
min = 0;
time = 0;
-parenb
-parodd cs8
-hupcl
-cstopb cread
-clocal
-crtscts
-ignbrk
-brkint
-ignpar
-parmrk
-inpck
-istrip
-inlcr
-igncr
-icrnl
-ixon
-ixoff
-iuclc
-ixany
-imaxbel
-iutf8
-opost
-olcuc
-ocrnl
-onlcr
-onocr
-onlret
-ofill
-ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig
-icanon
-iexten
-echo
-echoe
-echok
-echonl
-noflsh
-xcase
-tostop
-echoprt
-echoctl
-echoke
stty --all
alla mia domanda. Grazie in anticipo!
stty --all
e inserisci i risultati nella tua domanda. L'eco è una caratteristica tty che viene disattivata. Vim lo farà mentre è in esecuzione e metterà anche il terminale in modalità raw. Quando si chiude dovrebbe ripristinare le impostazioni del terminale stesso. Quando vim è in esecuzione, non si desidera echeggiare ili
comando che mette l'editor in modalità di inserimento, ad esempio. Queste impostazioni indicano al dispositivo tty come dovrebbe elaborare ciò che si digita. Mentre vim è in esecuzione, si occupa dell'eco di ciò che dovrebbe essere ripetuto, ecc.