Sto creando un programma che visualizza alcune informazioni in ncurses e quindi apre vim (utilizzando system
) per consentire all'utente di modificare un file. Dopo che si è uscito vim, la schermata ncurses non si ridisegnerà. refresh
e wrefresh
non fare nulla, con conseguente cestinazione completa del mio bellissimo menu.C - passando da ncurses ui a programma esterno e ritorno
Quindi, torno alla riga di comando. Le voci del menu si ridisegnano quando mi sposto. Muoversi un po 'i risultati in qualcosa che assomiglia a questo:
Come potete vedere, non sono più nel mio ambiente piuttosto ncurses ,.
Potrei abbattere completamente ncurses e impostare di nuovo le cose, ma poi alcune cose (come la posizione del menu) non sono conservate.
Come si esegue questa operazione correttamente? C'è un modo migliore per chiamare un programma esterno e tornare qui con garbo?
Grazie! Questo sembra funzionare, ma ogni tanto riesco a tornare all'interfaccia utente di curses e nessuno dei miei tasti registrati. Quindi devo uccidere il programma. Qualche idea? –
come si inizia ncurses? initscr();/* inizializza la libreria curses */ tastiera (stdscr, TRUE);/* abilita mappatura tastiera */ nonl();/* dire a curses di non eseguire NL-> CR/NL su output */ cbreak();/* prendere i caratteri di input uno alla volta, senza attendere per \ n */ noecho();/* input non echo */ Qualcosa sta cambiando il metodo di input? si può chiamare cbreak() quando si restituisce – Tree77
Sto facendo tutto quanto sopra, ancora sfortunatamente sfortunatamente. –