I want to create a WYSIWYG editor for markdown, and I want it to be keyboard-driven with vim editing philosophy.

I want the editor to have rich formatting, rather than the equally spaced cells of characters in the terminal. This would enable rows having different text sizes, usage of non-monospaced fonts, editing RTL languages such as arabic or hebrew, and bypass other terminal limitations.

Embedding neovim would be nice in theory, enabling all compatible vim features. But it seems to come with great difficulties, since I am forgoing the entire rendering philosophy that neovim depends on (equally spaced cells of the terminal).

SO I am thinking it would be better to emulate the vim features I want, starting with basic keybindings and motions, and go from there. But I am worried that I might end up regret this choice? It seems that embedding neovim is too monumental of a task for what I want to do. Am I mistaken?

  • bjornsno@lemm.ee
    link
    fedilink
    arrow-up
    3
    ·
    4 days ago

    There are plugins for other editors that use neovim as a headless server, which is how I’d do what you want here. You just pass all input events straight through to neovim, read the buffer back and render it as you want. At least that’s how I imagine it would work, I’ve never done it myself.