문제

나는 ncurses에 일부 정보를 표시하고 vim을 여는 프로그램을 만들고 있습니다. system) 사용자가 파일을 편집할 수 있도록 합니다.그러나 vim이 종료된 후에는 ncurses 화면이 다시 그려지지 않습니다. refresh 그리고 wrefresh 아무 것도 하지 않으면 내 아름다운 메뉴가 완전히 망가지는 결과를 낳게 됩니다.

그래서 명령줄로 다시 보내집니다.메뉴 항목으로 이동하면 메뉴 항목이 다시 그려집니다.조금 이동하면 다음과 같은 결과가 나타납니다.

Tragedy

보시다시피, 저는 더 이상 예쁜 ncurses 환경에 있지 않습니다.

ncurses를 완전히 제거하고 다시 설정할 수 있지만 메뉴 위치와 같은 일부 항목은 유지되지 않습니다.

이 작업을 올바르게 수행하려면 어떻게 해야 합니까?일부 외부 프로그램을 호출하고 여기로 정상적으로 돌아올 수 있는 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

나는 저주를 완전히 다시 시작할 필요가 없었습니다.

네가 이런 짓을 하면 어떡하지?

def_prog_mode() 그 다음에엔드윈()

시스템 호출 실행

그리고 새로고침()은 그것을 복원해야 합니다

다른 팁

프로그램 상태를 저주 상태와 분리하세요.

내가 아는 유일한 깨끗한 방법은 저주를 완전히 중지했다가 다시 시작하는 것입니다.프로그램이 내부 상태에 대한 명확한 개념을 갖고 있다면(필요한 대로), 동일한 위치로 돌아가는 것이 쉬울 것입니다.

행운을 빌어요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top