NeoVim a Fresh Modal Editor

neovim screenshot

Vim

Vim is a classic command line text editor. When you learn vim you feel like you know Kung-Fu. You realize that there is a superior way to edit text. Vim is an editor, but also mnemonic method of loci. It takes common tasks like changing a word and makes it trivial through mnemonic logic. Vim and vi introduced many system administrators and programmers on Unix and Unix like systems to the light speed conventions of the vi motions, commands, and modes. Vi comes from a different era when text processing was a more intensive task. Vi was a modal version of ed with normal mode insert mode and command mode. Ed and vi originally ran on teletype Unix terminals that wrote standard output to paper. The limited terminals of that era created problems in text processing that may have never been considered otherwise. Vi created a hyper efficient system of manipulating and navigating text that is still relevant today.

NeoVim

As a modern extended fork of vim neovim is an editor with an esteemed pedigree. Vim is an improved version of the vi editor, and vi was an improvement on ex a superset of ed. Vim and neovim frequently come near to feature parody with one another. The differences are largely insignificant for most users. For a long time vim has been the standard for modal text editors expanding on the conventions set forth by vi. However, vim has a few idiosyncrasies. Vimscript is a language that was developed specifically to accommodate extensions to vim. Vimscript is a capable language and it has nurtured an entire ecosystem of plugins. However, there are other tools that might be preferable for the job.

In lieu of Vimscript neovim has opted for Lua. Lua is a language independent of neovim. Many people have experience wit Lua because it is often embedded in popular applications. For example, videogame extensions are sometimes written with Lua. For me this is my favorite feature of neovim. Configuring neovim in Lua was a pleasure. Lua is a very conventional language compared to vimscript or emacs lisp. Everything in the configuration of neovim is very modular and sensible. The Ecosystem of Lua plugins is fresh, and its exciting to see the amount of active development on new projects. Admittedly, this is partially a duplication of effort. However, sometimes you can significantly improve on something when you start from scratch and have an example to meet and exceed.

My NeoVim

My neovim config is a lightweight configuration for quick edits. It mirrors my Emacs/Spacemacs configuration with its theme and key bindings. My neovim config uses the Gruvbox color theme, and uses space for a leader key. It has a custom dashboard created using the Alpha dashboard plugin. The dashboard has shortcuts for fuzzy finding recent files updating packages and other common tasks. My neovim config also has some nice features for editing code like syntax highlighting, auto completion, and auto pairs for brackets, parenthesis, tags, etc. You can check it out here.