Normal Mode

@normalmode
277 Followers
64 Following
836 Posts
Don't Stop BelieVim
Websitehttps://normalmo.de
Conway’s Game of Life Vim Macrohttps://normalmo.de/vimlife/
Fibonacci Vim Macrohttps://normalmo.de/posts/recursive-macro/
Pluginshttps://normalmo.de/plugins/
FGA: The gen on the family of 'vi' clones

@jpmens

I recently wrote http://jdebp.info/FGA/original-vi.html and was thinking of doing something like this, to augment it; because Sven Guckes's list (https://guckes.net/vi/clones.html) is definitely dated and incomplete, nowadays.

It does not have #NeoVIM (for obvious reasons). Most lists of clones miss that there are several forks of Bostic #nvi, not least the two forks that are in #FreeBSD and #NetBSD base. Similarly, #DragonFlyBSD has forked nvi2.

@lpar

#vi #VIM #elvis #STEVIE

FGA: You are vanishingly unlikely to be using 'original vi'.

"There are now many vi clones and derivatives to choose from, and I couldn’t find a good comprehensive list of all of them with links, so here’s mine."

https://lpar.ath0.com/posts/2026/05/the-vi-family/

#unix #linux #editing

(and I hold my breath for @ed1conf to release a good comprehensive list of all ed(1) releases with links 😜)

The vi family

The last text editor you’ll ever need to learn.

LPAR
y'>p works too I guess!

RE: https://pouet.chapril.org/@sroccaserra/116566214460290854

For the ex-averse, you can also do this by jumping to the start of the yanked text:

yP'<

or to the end of the putted text (which I think matches the ex-command’s behaviour more precisely):

yP']

What's the lore (if any) behind #Emacs using "yank" for the paste operation and #Vi #Vim using the same word for copy?
@heygarrett @blinry @nurkiewicz Yours is fewer if you remove the space!
@thomy2000 Let me tell you about awful Vim macros…

@nwcs I don’t use it myself, but if you have specific questions you could perhaps try getting in touch with Martin Tournoij (author of the gopher.vim plugin) https://www.arp242.net/

If his account on the Vim Stack Exchange is anything to go by, he loves answering questions!

arp242.net

@jimgar If you’re interested in workarounds, and not just venting, you can MAKE it a command with :cabbrev:

```
:cabbrev <expr> W (getcmdtype() == ':' && getcmdpos() == 2) ? 'w' : 'W'
```