The Evolution of Vi and Vim
pikuma.com
pikuma.com
It might sound minor, but by placing the range first, Kakoune can give a preview of what will be changed. The longer or more complicated the command, the more this feature shines.
Strictly better as far as I know. A shame my muscle memory, and all default installations, are still stuck with Vim.
English swaps it around as convenient, so do common computer systems - you can verb(data) or data.verb() in the more popular languages and I think it's no coincidence that the popular languages have both or the languages which have both became more popular. If a choice is a toggle, one size nobody very well it fits.
It was interesting to me just how much Subject-Object-Verb (SOV) vs Object-Subject-Verb (OVS) along with all the other permutations of the 3 exist around the world.
So vim is verb-noun for simple things, but if you want, you can use visual mode if you’re doing something more complex or just want visual confirmation first.
Sometimes when I don't realize I'm in insert mode, I jump around the document and don't know what just happened. Visual cues in-between would have been nice, so I don't always feel as surprised as I do, lol.
Although I don't know if in that particular fiddly case it would have any benefit.
There are different solutions for it:
- Obsessively press escape so you're always in normal mode
- Style the statusline so it's very colorful when you're not in normal mode
- Have the cursor be "fat" when in normal mode and "thin" when in insert mode (isn't this the default?)
Even though I've been using Vim for 15 years or so I also enter visual mode for some commands. It's quite useful, but not necessary all the time (like di" for instance).
On both vim and nvim, updatetime is 4 seconds, so if you have 4 seconds of inactivity that autocommand will automatically put you back into normal mode.
However, recently I've repented my errors. Having discovered that insert mode <M-Key> functions as normal mode <Key> and moving away from the visual mode whenever possible, I realised that despite the touted simplicity of the selection-action model, there is much cognitive benefit to the vim-way, in making keys function as one bigger conceptual step, combining the motion and the verb into one inseparable unit.
Compared to using visual mode, I no longer wait to look at previews then continue, but simply keep typing away, one command after next, trusting that my machine will follow, it catching up the 'buffer' of my commands at its pace. This truly helps me feel much more connected with my work at hand, 'feeling' my text, not going back to seek at what I expect already, and forgetting about the details. Getting used to performing actions in just one step, albeit a bigger one, allows me to think more effectively about how I edit my text. Conversely, to allow only the expression of 'simple' text concepts does not reduce my cognitive burden, as I would need to, and be thinking of, how to use 'simple' text motions/selections to emulate more complex ones anyway.
On another note, I've finally found myself embracing vim's window management, terminal, buffer management... I'm in awe of the way that vim has gently paved for me, all along. Beyond minimalism, as a shell/terminal multiplexer, vim is great.
(also statements like these
> Deleting the current word, sentence, or parentheses block does not involve uncertainty
are obviously false, of course it does, there are different types of w/Words (and different separators, and those separators could also be conext-dependent), many nested blocks you might not be immediately aware of borders of, and also with sentences you might not know exactly where a period is, etc., so there is uncertainty in every such case, so again he's just saying there is no need when there is clearly one
And that uncertainty only grows with muliple selections
But if you're on a blank line, it will delete the next line, not the current line.
If you can figure out why this is, then you are close to understanding how kakoune manages the concept of "line" and "cursor" and "selection", but for me this is an abstraction gap too far. I can't make the conceptual leap. And once you understand the line/cursor/selection model, you see that this is unfixable.
Oh well, maybe Helix is the way.
as noted nearby, vim's visual mode provides a similar interface as standard
No, it wasn't, and hasn't been since the 90s (most of the gvim code was written by others back in the day, to give an example of a large body of code not written by Bram). There have been many people contributing, and some of them for years.
Yes, Bram was the BFDL and the only one committing patches, but don't confuse that with "one man show".
Bram didn't really record these things very well until quite recently (and even then, rather inconsistently) by just listing the author in the commit message rather than the git author field, so there's no easy way to check.
I love Vim, and although my usage is totally vanilla these days, I use Vim plugin for VSCode which is awesome (lack of :norm is the only downside I've found).
Vimium for Firefox is also a must-have https://addons.mozilla.org/en-CA/firefox/addon/vimium-ff/
Built-in multi cursors and autocomplete without fiddling with plugins is wonderful, and the in-editor discoverability and documentation is great.
It retains Vim's spirit of minimalism but cuts out a ton of cruft without constraining itself to any kind of backwards compatibility.
I use Kakoune as my $EDITOR and VS Code with Dance for software development. I think Dance does a great job of leveraging Kakoune and VS Code's strengths. I wish there was an equivalent for Intellij as well.
https://marketplace.visualstudio.com/items?itemName=gregoire...
True, until you need it. And you'll usually pull out ed when any other editor fails :D One example is an extremely slow ssh connection. For those who can recall, when SourceForge allowed ssh access, running vi/vim was a PITA if you wanted to edit something. But not with ed.
The second example of where ed is unmatched is scripting - it has the same "interface" for interactive editing and scripting (it uses the same commands and command sequence). Someone also mentioned (can't find source of the quote) that the same trick is helpful when you write a book because you can easily print ed command sequence readers can repeat and follow your examples, which isn't the case with any other visual editor. You can write unit tests to validate those things in case you want to ensure your book examples actually work.
I have been a VI user my whole life as a result (I worked for Manx in the late 80's, and their flavor of VI was my first real taste of text editing).