During my switch to OpenBSD, I also switched from using the vis editor (not to be confused with
vis(1)) to vi(1). The primary difference between vis and vi is that vis is
extensible. vis's full Lua API allows you to extend the editor however you want,
writing custom commands, integrating it with other programs, et cetera. In vi,
you get what you're given, and you suck it up and use it. That's not to say
that vi is an inflexible editor, and most of functionality that I implemented
myself via lua in vis are available right in the editor. How, you ask? By using
not just vi, but by using the whole UNIX environment, and the tools provided by
vi to access it! The most common function I use is "!
Vi also does certain other things differently than vim, or vim-inspired editors, such as macros, and the lack of visual* modes. Macros are done via creating a named buffer, with the contents of the macro, and then executing it with the "@" key. It is a bit less convenient than recording macros with "q", however there is much less magic happening behind the scenes. Do you know how your macros are recorded and stored in vim?
Vi certainly has a learning curve, however like most learning curves, the result is worth it. At times I do miss the plugin infrastructure and endless flexibility of editors like vim and vis, but anything that I can do in those heavy editors, I can do in vi. For comparison, a dynamically linked vim binary is about 30MB. Vi on the other hand is 384k. That alone makes the trade-off worth making for me
This page was inspired by this post by june.
Last updated on 2021-08-10.