this is one of the official Vim logos
07 Nov '26, maschinenraum

brochure (left) and CT memorandum (right) from the Computer History Museum’s collection
hello
and “Expensive Planetarium” a.k.a. “Spacewar!”, one of the first computer games ever
further reading: Dennis Ritchie, “An incomplete history of the QED Text Editor”
*READ FROM /bee.txt/.
81 WORDS.
*=3
*1/
According to all known laws of aviation, there is no way a bee should be able to fly.
*1,$SUBSTITUTE /cat/ FOR /bee/.
3
*2SUBSTITUTE /paws/ FOR /wings/.
1
*WRITE ON /bee_fixed.txt/.
81 WORDS.
*FINISHED.
Our new text file contains:
According to all known laws of aviation, there is no way a cat should be able to fly.
Its paws are too small to get its fat little body off the ground.
The cat, of course, flies anyway because cats don't care what humans think is impossible.
*1,$S/cat/bee/. and *2S/paws/wings/. 👀* is the prompt, . confirms a command
![]()
| “I explained that ‘em’ was an extension of ‘ed’ that gave key-stroke level interaction for editing within a single line, displaying the up-to-date line on the screen […]” |
| “By the way, ‘em’ stands for ‘editor for mortals’ - I christened it that after Ken Thompson visited our lab at QMC while I was developing it and said something like: ‘yeah, I’ve seen editors like that, but I don’t feel a need for them, I don’t want to see the state of the file when I’m editing’.” |
read more here
![]()
earlier this year, AmigaOS support was patched back in
this probably says something about the state of vim’s codebase…
see also Neovim installation docs
Linux:
yay -S neovim or sudo apt install neovim or sudo apk add neovim
…
mac:
brew install neovim
windows:
winget install Neovim.Neovim
alternatively, download a binary from the releases page
nice to have: append alias vim=nvim to your shell’s rc, e.g.,
echo "alias vim=nvim" >> ~/.bashrc
i’ve prepared an abridged version of vim-tutor:
git clone https://mae.rs/git/vim # or download https://mae.rs/git/vim.zip
cd vim
./tutor/run

i’ve prepared a very simple config. install it as follows:
mkdir -p ~/.config/nvim
mv init.lua ~/.config/nvim/
let’s look at it!
vim ~/.config/nvim/init.vim

init.lua:
vim.cmd([[
call plug#begin()
Plug 'mason-org/mason.nvim'
Plug 'WhoIsSethDaniel/mason-tool-installer.nvim'
Plug 'neovim/nvim-lspconfig'
call plug#end()
]])
:PlugInstall and Enter~/.config/nvim/lua/lsp.lua:
require("mason").setup()
require("mason-tool-installer").setup({
ensure_installed = {
"pyright",
},
})
vim.lsp.enable("pyright")
require("lsp") to your init.lua, somewhere after plugin
installationlsp.luainit.nvim
Plug 'saghen/blink.lib' " plugin section
Plug 'saghen/blink.cmp' " plugin section
require("blink") " further below
advanced-config/lua/blink.lua
to ~/.config/nvim/lua/blink.lua::PlugInstall
:lua require('blink.cmp').build():pwait()
Plug 'junegunn/fzf.vim'
""" FZF
nnoremap <silent> <leader>f :GFiles<CR>
nnoremap <silent> <leader>F :Files<CR>
note: you can switch tabs with gt and gT in normal mode
~/.config/xmodmap and load with xmodmap ~/.config/xmodmapD
from randomly appearing in your shell):
bindkey "^[[1;2C" forward-word
bindkey "^[[1;2D" backward-word
