kilo
kilo copied to clipboard
Use smcup and rmcup to save/restore screen buffer
Vim and others appear to do this. It also has the added benefit of fixing Page Up
and Page Down
on MacOS using Terminal.app.
void initEditor() {
write(STDOUT_FILENO, "\033[?47h", 6); // New (smcup)
EditorConfig.cursor.x = 0;
EditorConfig.cursor.y = 0;
if (getWindowSize(&EditorConfig.screenRows, &EditorConfig.screenCols) == -1) die("getWindowSize");
terminalClearScreen();
}
// ...
void disableRawMode() {
write(STDOUT_FILENO, "\033[?47l", 6); // New (rmcup)
tcsetattr(STDIN_FILENO, TCSAFLUSH, &EditorConfig.orig_termios);
}
More info here.
For what it's worth - some people don't like the fact that programs use smcup and rmcup.