A volte uso vim per modificare rapidamente un file di testo e spesso inserisco erroneamente la sequenza C-x C-s di Emacs per salvarlo, dopodiché il mio vim non risponde scrivendo ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
nella riga di stato. C'è forse un modo per rendere ancora una volta vim reattivo, perché davvero infastidisce dover uccidere il terminale e poi ricominciare tutto da capo?Vim non risponde dopo una sequenza C-x C
risposta
Provare a digitare ^Q.
^S e ^Q sono i "stop" di default e "start" caratteri nelle impostazioni TTY.
(vim dovrebbe essere manipolare le impostazioni TTY così il controllo-S non si ferma in uscita, ma ho visto i sistemi in cui non. Sì, è fastidioso.)
Si tratta di un antico Unixism che consente di interrompere l'output di un programma con ^S
e avviarlo di nuovo con ^Q
, dal giorno in cui lo schermo si aggiornava abbastanza lentamente che una cosa del genere sarebbe stata utile. Consideralo come una versione estremamente arcaica di less
o more
.
È possibile digitare ^Q
per avviare di nuovo il programma di uscita, oppure disattivare questo meccanismo ormai quasi-inutile con l'aggiunta di questo alla vostra ~/.bashrc
:
# Are we on a terminal?
if [ -t 0 ];
then
stty sane
stty stop ''
stty start ''
stty werase ''
fi
'.bashrc' aggiornato. Grazie. – Maputo
Ho 'stop' e' start' impostato su '^ S' e'^Q', rispettivamente, ma posso ancora scrivere '^ S' in vim senza fermare l'output, quindi i comandi suggeriti' stty' non sembrano essere necessario Ma penso di aver avuto problemi simili sul mio sistema Debian 6.0.6 al lavoro. Cercherò di capire qual è la differenza. –
Ha fatto il lavoro. Grazie. – Maputo