Text editors are for coders, not for writers. If you are a writer, you need a word processor rather than a text editor. A good minimal terminal-based word processor is Wordgrinder.
The difference between a text editor and a word processor is attention to the formatting of paragraphs. In terms of typesetting, a paragraph of human-language text flows, whereas in text editor terms, the paragraph is a single line of text.
Elements of code in text editors are mostly a single line too, but the lines are strictly nested (somewhat depending on the coding language) in order to speak to each other hierarchically. Also, coding languages need special explicit markup to indicate the beginning and ending of larger objects, such as curly brackets to mark the beginning and ending of objects across many lines.
In a human-language text, the same structuring function is served by uniform whitespace separating the paragraphs and some occasional special lines called headings. Mostly the text consists of paragraphs that, in typesetting terms, have a flat relationship with each other – only sequence, no hierarchy.
The author describes Wordgrinder as follows:
WordGrinder is a word processor for processing words. It is not WYSIWYG. It is not point and click. It is not a desktop publisher. It is not a text editor. It does not do fonts and it barely does styles. What it does do is words. It’s designed for writing text.
Its default file format ends in .wg and contains multiple “documents” (called buffers in text editors) in a single file. This is advanced enough to let you write novels, but the default formatting does not quite allow for technical writing with footnotes, indexes, tables or graphs, and whatnot.
Yet, by being basic, Wordgrinder is also close enough to a text editor, so you can write in a markup language of your choosing to enable all the most advanced elements of publishing. Export and import for plain text, ODT, HTML, Markdown, LaTeX, and Troff is inbuilt.
Navigation in documents is Word-like, menu-based and with familiar keybinds. The keybinds are reassignable during live session.