PitchHut logo
A minimalist, Emacs-style text editor for the terminal.
Pitch

Emil is a lightweight text editor designed for simplicity and efficiency in the terminal. It offers essential Emacs commands while maintaining a minimalist approach, free from complex configurations or plugins. Perfect for users who prioritize speed and clarity in their text editing workflow.

Description

emil is a minimalist, Emacs-style text editor designed specifically for terminal usage, making it lightweight and efficient for editing UTF-8 files. Written in standard C99, it is capable of running on any system that provides a minimal POSIX.1-2001 interface and a VT100-compatible terminal. This editor simplifies the text editing experience by avoiding common complexities such as scripting, plugins, configuration files, and auto-save functionalities.

Key Features

  • Visual Text Selection: Easily select text for editing.
  • Rectangular Text Editing: Modify rectangular regions of text seamlessly.
  • Kill Ring: Keep a history of clipboard actions.
  • Snippets: Store session-local registers for quick access to frequently used text.
  • Incremental Regex Search & Replace: Find and replace text using regular expressions in real-time.
  • Keystroke Macros: Record and replay sequences of keystrokes.
  • Shell Integration: Execute shell commands directly from the editor, enhancing productivity.
  • Word Wrap: Prevent horizontal scrolling by wrapping text intelligently.
  • Split Windows: View and edit multiple files or sections side by side.
  • Bookmarks: Mark and navigate to specific locations within your files.
  • Jump to Symbol Definition: Use Ctags for quick navigation in code files.

Getting Started

Launching emil is straightforward. Simply open a terminal and run:

emil file.txt

For a full list of commands and functionalities, refer to the man page using:

man emil

Shell Integration

emil supports shell commands embedded directly within its interface. This feature allows users to execute commands on selected text and manage the output efficiently. Common tasks include:

  • Fill a region using fmt: Ctrl-u Alt-|
  • Sort lines: Ctrl-u Alt-|
  • Number lines: Ctrl-u Alt-|
  • Word Count: Alt-|
  • Format JSON using jq: Alt-|

By leveraging shell commands within emil, users can streamline their workflow significantly. For instance, users can create custom scripts for dictionary lookup or translation tasks by integrating them with emil commands.

Development Status

While emil is feature complete, it is currently marked as unstable. Efforts are ongoing to refine the architecture, enhance maintainability, and address any bugs. Contributions to improve the codebase and enhance portability are welcome.

Contribution Guidelines

The project invites contributions for bug fixes, performance improvements, and general code quality through pull requests. For new feature proposals, users are encouraged to open an issue prior to submission, as the project prioritizes simplicity.

emil serves as a high-performance text editor that combines the core functionalities of Emacs with an elegant, terminal-based interface, catering to users who prefer a streamlined editing experience without unnecessary overhead.

0 comments

No comments yet.

Sign in to be the first to comment.