Vem Text Editor
Vem is an alternative command layout for the Vim text editor. It provides full keyboard control over the editor while trying to be as simple and intuitive as possible.
Description
Vem is a set of configuration files for the Vim text editor that changes how you interact with it. While Vim is extremely expressive and provides hundreds of commands with their own small grammar, Vem takes the opposite approach and defines a reduced, simplified set of commands that are executed, in most cases, immediately after a single key press. The commands are also distributed spatially across the keyboard, like in a map, optimizing their position according to their frequency:
The result is a different editor, strongly focused on the user experience, that strives to be as simple as possible while still giving you total control using just the keyboard. Since it uses actual Vim as base, you can also make use of its many advanced features.
Vem requires either Vim or Neovim to be installed in the system and supports the QWERTY, QWERTZ and AZERTY keyboard layouts.
Why Vem?
The Vi text editor —mostly in the form of its successor, Vim— remains as one of the most popular text editors among software developers and DevOps engineers to this day. Even though it was created in the 70s, is still as well-loved, if not more, than what it was back in the day when it was first released.
One of the reasons for that is that it provides a large amount of editing possibilities which you can control using just the keyboard. It is not necessarily the easiest text editor to learn, but once you develop some muscle memory it can change the way in which you write code given the speed and precision that it provides.
However, some of its core design decisions are still rooted in its origins. The reason why you can compose elaborated commands using several keystrokes (for example c3w, change 3 words or 9yy, copy next 9 lines) is that Vi was created in a Lear Siegler ADM-3A video terminal that communicated using a 300 baud modem. The screen would refresh slower than you could think, so the editor was optimized to send complex actions with a terse syntax. Also, the reason why Vi is completely controlled using the keyboard is that, well, the mouse was not invented until several years later.
Independently of which was the original reasoning behind those decisions, some of them still work very well in today's world. The fact that you can use Vi using only the keyboard is what actually gives it its main edge. Some others, maybe not so much. Being able to compose complex commands was introduced to improve the user experience in a context where the computer would take some time to answer. In that scenario, you wanted to pre-package your ideas in bigger chunks, so the computer could do more in each interaction. Nowadays, it is the computer the one that is waiting for you and that optimization may not be as useful as it used to be.
Vem is a text editor that tries to optimize the user experience in a computer that answers faster that you can think: it removes any command grammar, makes commands to answer instantaneously and distributes them spatially to optimize the use of both hands and to make the most frequent ones easier to type. Vem's goal is to give you a very advanced editor, which you can completely control using the keyboard, while still striving to be as simple and intuitive as it is possible.
Quickstart
To run Vem use:
vem [filename]
Vem, like Vim, is a modal editor with two main modes: command (or normal) and insert. When the editor is in command mode, each key press performs an action. When it is in insert mode, it behaves like most text editors and text gets inserted as you type on the keyboard. To start insert mode, press i. To go back to command mode to execute additional actions, press Ctrl-o.
Some basic actions in command mode are:
Modes
- i:
insert mode
- Ctrl-o:
command mode
File handling
- W:
open file
- s:
save file
- x:
close file/exit Vem
- t:
select next file
- T:
select previous file
Searching
- /:
search
- u:
find previous
- m:
find next
Movement
- h:
cursor left
- j:
cursor down
- k:
cursor up
- l:
cursor right
- ,:
beginning of line
- .:
end of line
- a:
beginning of document
- z:
end of document
Undo/Redo
- q:
undo
- Q:
redo
Modes
- i:
insert mode
- Ctrl-o:
command mode
File handling
- W:
open file
- s:
save file
- x:
close file/exit Vem
- t:
select next file
- T:
select previous file
Searching
- /:
search
- u:
find previous
- m:
find next
Movement
- h:
cursor left
- j:
cursor down
- k:
cursor up
- l:
cursor right
- ,:
beginning of line
- .:
end of line
- a:
beginning of document
- y:
end of document
Undo/Redo
- q:
undo
- Q:
redo
Modes
- i:
insert mode
- Ctrl-o:
command mode
File handling
- Z:
open file
- s:
save file
- x:
close file/exit Vem
- t:
select next file
- T:
select previous file
Searching
- /:
search
- u:
find previous
- m:
find next
Movement
- h:
cursor left
- j:
cursor down
- k:
cursor up
- l:
cursor right
- ,:
beginning of line
- ;:
end of line
- q:
beginning of document
- w:
end of document
Undo/Redo
- a:
undo
- A:
redo
These are the commands you need to know to be able to do a minimal edit to a file but, of course, there are many more. Check the Tutorial to learn Vem's essentials.
Note: By default, Vem is configured to map commands to the QWERTY keyboard layout. If you use QWERTZ or AZERTY, you need to configure your layout in Vem's settings file.
Screenshots
Features
Since Vem is just a configuration on top of Vim, you can enjoy many of the features that Vim offers:
Syntax highlighting for a crazy amount of file formats
Very fast and lightweight. A full-blown session takes tens of MB instead of hundreds
Both terminal and graphical interfaces available. Use your same editor both locally and through SSH
Extremelly configurable. Hundreds of configuration options and programmable using many languages
Large amount of plugins available
Plenty of documentation available
Credits
Vem makes use of some Vim plugins to power some of its features. Many thanks to the authors of the following great projects:
vim-pathogen by Tim Pope
vim-filebeagle by Jeet Sukumaran
vim-smartword by Kana Natsuno
vim-enhancedjumps by Ingo Karkat
wildfire.vim by Giacomo Comitti
vim-surround by Tim Pope
ctrlp.vim originally by @kien, maintained by @mattn
NERD Commenter by Martin Grenfell
vim-sayonara by Marco Hinz
License
Vem is open source and free. Vem is released under the MIT license.