Как VIM отображается на терминале, а затем возвращает его обратно? - PullRequest
7 голосов
/ 23 декабря 2010

Как получается, что VIM (при работе) может отображать содержимое файла на терминал, а затем (при закрытии) может принимать то, что было отображено обратно?Было сделано несколько приложений, в которых я хотел бы реализовать эту функциональность ... например, при создании программы с терминальной графикой, когда весь экран обычно должен обновляться при перемещении одного «объекта».

1 Ответ

10 голосов
/ 23 декабря 2010

Ваш терминал хранит старый буфер, а не Vim.

Если вы используете эмуляцию XTerm, Vim при запуске переключается на «альтернативный» экран терминала. При выходе Vim возвращается к обычному экрану.

Строки Terminfo при запуске:

\E7 saves the cursor's position 
\E[?47h switches to the alternate screen 

Строки Terminfo на выходе:

\E[2J clears the screen (assumed to be the alternate screen) 
\E[?47l switches back to the normal screen 
\E8 restores the cursor's position. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...