Jim is a lightweight Vim-clone written in C++ with manual memory management. Jim offers basic text editing functionalities. While it’s still a proof-of-concept with some rough edges, it explores the balance between low-level control and performance.
- Manual memory management (expect some rough edges).
- A combination of C and C++ coding conventions (An unholy combo of classes, templates and
malloc()). - Basic text editing features with a focus on speed and efficiency.
- WRITE and QUIT commands!! (This took a while)
Note: This is a proof-of-concept/exploratory project, it’s not intended for production use yet (and will clear your files on save if you mistreat it).
- C++ compiler
- ncurses
- zsh (Bash is not welcome here)
$ chmod +x build.zsh
$ ./build.zsh./jim YOUR_FILE_NAMEI wanted to explore the efficiency gains and challenges of manual memory management (and the usefulness of abstractions that remove the need for it) in a practical project. This text editor helped me learn about the inner workings of C++ and Vim.
and also
I was left unattended with a C++ compiler and a terminal emulator.
