Domanda

Sto facendo un programma che visualizza alcune informazioni in Ncurses, quindi Apre Vim (utilizzando system) per consentire all'utente di modificare un file.Dopo che Vim è uscito, tuttavia, la schermata Ncurses non si ridisegna.refresh e wrefresh Non fare nulla, con conseguente completa cestino del mio bellissimo menu.

Allora, mi viene inviato alla riga di comando.Le voci del menu ridisegna quando mi trasferisco.Spostarsi intorno a un po 'risultati in qualcosa che sembra questo:

tragedia

Come puoi vedere, non sono più nel mio grazioso ambiente Ncurses,.

Potrei abbattere completamente Ncurses e impostare di nuovo le cose, ma poi alcune cose (come la posizione del menu) non è conservata.

Come lo faccio correttamente?C'è un modo migliore per chiamare un programma esterno e tornare qui con grazia?

È stato utile?

Soluzione

Non ho mai dovuto riavviare i cursi interamente.

Cosa succede se fai qualcosa come

def_prog_mode () allora Endwin ()

Esegui la chiamata di sistema

e Aggiorna () dovrebbe ripristinarlo

Altri suggerimenti

Separa il tuo stato del programma dallo stato delle cursire.

L'unico modo pulito che conosco è fermare e riavviare i cursi interamente.Se il tuo programma ha una nozione pulita del suo stato interno (come dovrebbe), dovrebbe essere facile tornare alla stessa posizione.

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top