Я делаю программу, которая отображает некоторую информацию в ncurses, а затем открывает vim (используя system
), чтобы разрешить пользователю редактировать файл. Однако после выхода vim экран ncurses не будет перерисовываться. refresh
и wrefresh
ничего не делают, что приводит к полному разрушению моего прекрасного меню.C - переход от ncurses ui к внешней программе и обратно
Итак, я возвращаюсь обратно в командную строку. Элементы меню перерисовываются, когда я перехожу к ним. Перемещение вокруг немного результатов в чем-то, что выглядит следующим образом:
Как вы можете видеть, что я больше не нахожусь в моей красивой среде Ncurses ,.
Я мог полностью снести ncurses и снова установить вещи, но затем некоторые вещи (например, положение меню) не сохранились.
Как это сделать правильно? Есть ли лучший способ вызвать некоторую внешнюю программу и вернуться сюда изящно?
Спасибо! Кажется, это работает, но время от времени я возвращаюсь к своему пользовательскому интерфейсу curses, и ни один из моих ключей не регистрируется. Поэтому я должен убить программу. Есть идеи? –
как вы начинаете ncurses? initscr();/* инициализировать библиотеку curses */ клавиатура (stdscr, TRUE);/* включить отображение клавиатуры */ nonl();/* сказать проклятиям не делать NL-> CR/NL на выходе */ cbreak();/* принимать входные символы по одному, не ждать \ n */ noecho();/* не echo input */ Что-то меняет метод ввода? вы можете вызвать cbreak(), когда вы вернетесь – Tree77
Я делаю все выше, до сих пор не повезло. –