EdimCoder was originally an experiment to learn how to create a simple text editor in C without using any libraries (including readline). With a line editor, I could start simple and only work with the terminal. Then I had read online about how some people still use Ed as their preferred text editor (I currently know someone who also has this preference). EdimCoder then became an experiment to see how I could make a line editor that was almost as efficient as editing with a screen-oriented text editor.
Eventually, I joined a public-access unix system with (intentionally) low memory and resources, circumlunar.space. Text editors needed to be very lightweight. I ended up having a legitimate use for EdimCoder. I actively use EdimCoder for it's development and for writing.
Goals and Inspiration
During the evolution of EdimCoder, the goals changed. First, I wanted to make a simple text editor. Then, I decided trying to get as much efficiency as possible out of a line editor was an interesting challenge. Once I started using EdimCoder for various things, I realized that this can be a program that can be useful in many cases, whether that be from quickly editing a file, having a distraction free linear text editing experience, or editing on a constrained system (whether that be for fun or not).
Ed is the "standard" text editor for Unix Systems and many text editors stem from it, so I took a lot of inspiration from it. One of the main goals is to make an alternative to Ed that is more user-friendly.
Taking inspiration from 4Coder, I wanted EdimCoder to have functions geared towards code editing including being language-aware.
EdimCoder is a low-memory low-resource line editor geared towards editing code by providing language-aware features that try to increase the efficiency of editing code with a line editor in a way that's more user friendly and utilizes some of the advancements of the speed of the cli. EdimCoder should also be as portable and customizable as possible.
Current State and Roadmap
EdimCoder currently has many features that try to make code editing with a line editor quicker and easier:
- Context and Helpful Output/Prompt
- Line Ranges - refer to a range of lines
- Bookmarks - gives a name to a range of lines. All commands that accept lines and line ranges will accept bookmarks.
- Outlines - outline of a code file, including auto-generating bookmarks
- Find and Replace string
- Preview mode - like pg or less/more unix programs
- Multiple Open Buffers - allows you to switch between different files easily
- The section bookmark - a default bookmark that always represents the range of lines of another bookmark that the current line is within the bounds of. I have found this very useful for seeing the code of a function periodically as I'm editing it.
Here's what on the roadmap so far:
- UTF-8 Support
- Support ranges in more commands
- Quick command mode - ability to temporarily suspend current editing operation to run a different command, then return where you left off
- More language-specific features
- Projects and Project Settings
- Chaining Commands