Writing a Programmers Editor (Terminal I/O & Raw Mode) - Part 5
Draft — not yet published.
In Part 4 we built a line management layer and a simple viewport renderer. But our renderer just returns strings — it does not actually paint them on a screen. To do that, we need to talk to the terminal.
This part covers:
- How terminals actually work (the teletype heritage).
- Switching from cooked mode to raw mode via termios.
- Reading keystrokes one at a time instead of line-buffered.
- Writing escape sequences to move the cursor, clear the screen, and set colours.
- Foreign function interface (FFI) in Scheme to call C library functions like
tcsetattr.
The terminal is the editor's canvas. Understanding it deeply is essential — every screen update, every keystroke, every colour change flows through it.
Watchout for this assay when it is published, till then.
Shorel'aran
Article Series
Writing a Programmer's Editor
A series of assays on building a programmable text editor from scratch in Scheme — exploring the balance of power between the C runtime and the scripting language, data structures, terminal I/O, and extensibility.
← Previous
Writing a Programmers Editor (Lines & Display) - Part 4
5 / 12
Next →
Writing a Programmers Editor (Keymaps & Input Handling) - Part 6
- 1 Writing a Programmers Editor - Part 1 2018-08-06
- 2 Writing a Programmers Editor (DS/Gapbuffer) - Part 2 2018-08-11
- 3 Writing a Programmers Editor (Gap Buffer in Scheme) - Part 3 Draft 2018-08-18
- 4 Writing a Programmers Editor (Lines & Display) - Part 4 Draft 2018-08-25
- 5 Writing a Programmers Editor (Terminal I/O & Raw Mode) - Part 5 Here 2018-09-01
- 6 Writing a Programmers Editor (Keymaps & Input Handling) - Part 6 Draft 2018-09-08
- 7 Writing a Programmers Editor (Rendering & Redisplay) - Part 7 Draft 2018-09-15
- 8 Writing a Programmers Editor (Search & Replace) - Part 8 Draft 2018-09-22
- 9 Writing a Programmers Editor (Syntax Highlighting) - Part 9 Draft 2018-09-29
- 10 Writing a Programmers Editor (Undo/Redo & Command Log) - Part 10 Draft 2018-10-06
- 11 Writing a Programmers Editor (Modes & Extensibility) - Part 11 Draft 2018-10-13
- 12 Writing a Programmers Editor (Reflections & Lessons) - Part 12 Draft 2018-10-20
2 of 12 articles published
Responses