aretext 0.7 release, thinking about 1.0
The 0.7 release of aretext is now available! Aretext is a minimalist, terminal-based text editor with vim-compatible key bindings. In this post, I’ll highlight some of the main changes and reflect on the direction of the project.
Additional vim commands
This release adds support for several vim commands:
- Search for word You can now use star (
*
) and pound (#
) in normal mode to search forward/backward for the word under the cursor. - Matching brace/bracket/parenthesis: The percent (
%
) command moves the cursor to the matching brace ([]
), bracket ({}
), or parenthesis (()
). - Code block movements: You can now use
[{
and]}
to move the cursor to the prev/next unmatched brace, which is helpful for navigating large blocks of code in C-like languages. - Scroll up/down full page: The ctrl-f and ctrl-b are now implemented, allowing you to scroll up/down by a full screen.
Additionally, word motions and word objects have been completely rewritten to support “count” parameters. Commands such as 2dw
, d2w
, and 2daw
are (finally!) recognized.
Syntax highlighting for Go templates
A new syntax language was added for parsing Go templates. Here’s what it looks like:
Go templates don’t have a standard file extension, so you’ll need to add rules to your aretext configuration based on your project’s directory structure. For example, the Hugo HTML templates for this blog are stored in the “layouts” directory, so I added this rule to my config:
# Use "gotemplate" syntax highlighting for Hugo HTML templates in my blog
- name: dev-nonsense-template
pattern: "**/dev-nonsense-blog/**/layouts/**/*.html"
config:
syntaxLanguage: gotemplate
Menu commands to change the working directory
When working on a large project, I often want to jump in and out of specific directories. Previously, this would require exiting aretext, cd
‘ing to a new directory, and relaunching the editor. In version 0.7, it’s now possible to change the working directory within aretext using two new menu commands: “child directory” and “parent directory”. The screencast below shows these in action:
Towards the 1.0 release
This release marks an important personal milestone: aretext now has everything I want in an editor. The main features have been stable for the last six months, and I’ve been using it as my primary editor for nearly two years.
Moving forward, I anticipate my work transitioning from new development to ongoing maintenance. This is consistent with the goals of the project. If I kept building new features, aretext would eventually cease to be a minimalist text editor.
For these reasons, the next release will be version 1.0.
Of course, there will always be more vim commands to implement, syntax languages to parse, and dependencies to update. I plan to actively maintain aretext indefinitely and will continue to welcome open source contributions. If you want to help out, please let me know!