Text editing has never been more fun. [F]ancy V[im] is a semi-ironic graphical text editor for the postmodern era. Fim combines playful colors and eyecandy with the familiar navigation of Vi/m. While not meant to be used seriously (unless you really want to), Fim aims to (eventually) support advanced text editing features such as syntax highlighting and regex search. While other text editors aim to boost your productivity and workflow, Fim prioritizes something more important --- dopamine.
Note, Fim is currently in pre-alpha and is more of a tech demo than anything. It can't even write to the file system yet (so don't be afraid to test it).
An expanding list of cool features:
- Resolution independent GPU text rendering using bezier curves (credit for algorithm and shader code)
- Built-in Vi/m navigation (WIP)
- Lazy font loading using system fonts
- Semi-support for Unicode characters (support for individual characters, not grapheme clusters)
- Semi-support for some IME's (tested CJK + Thai)
- Neovide-like cursor trail
Fim uses a patched version of freetype-rs
which can be found here. You will need to clone this, and the patched freetype library, then modify Cargo.toml
accordingly to build. Aside from the patch, just run:
$ git clone https://github.com/mxple/fim
$ cd fim
$ cargo r --release
If you get errors regarding SDL2, refer to rust-sdl2 docs.
If errors persist, please open an issue. I want Fim to work cross platform and be easy to use :)
*Note for Mac users: Fim uses OpenGL 4.3 which is not natively supported on Mac. However, you may "emulate" gl 4.6 using Mesa + MoltenVK to translate gl -> Vulkan -> Metal calls. More detailed instructions to come after I get to testing on Mac hardware.
If you find bugs, first check to see if the bug has already been noted in todo.md. Otherwise, please open an issue describing the bug.
Pull requests are appreciated! Especailly those that check off the todolist.