Vim after Bram: a core maintainer on how they've kept it going

228 points
1/21/1970
a year ago
by MilnerRoute

Comments


picafrost

I've been using vim for 20+ years and it's been fantastically stable software for me. I have never cared about what version I am using because I've never needed to. An exception to this is that I'm now accustomed to using `:term` which came with vim 8.0 (2016?).

I think it's silly when colleagues point out that VS Code has vim bindings. The bindings are what I know and enjoy, but they're only half the point. I like to work with the machine, in the terminal. I don't like my text editor being a browser that pings M$, and will end up doing so again, eventually, even after I have to search up(!) how to disable it.

There's a lot of value in moving slow and not breaking things. I'm glad there are maintainers willing to carry that spirit forward.

a year ago

arp242

Few years ago I reported that I can't put a character in the most bottom-right corner when setting my own statusline. Bram responded that this was intentional, as some (presumably already ancient) terminal emulators had problems with this.

I can probably take the vimrc and workflow I had for Vim 6 back in ~2000 and use it in the latest Vim without any changes or problems.

And look, if VS Code or whatever works better for some people: great! Fantastic that works for you! But for me, the dedication to compatibility and not breaking existing use cases is something I've really come to appreciate, even though it's a slight annoyance at times.

a year ago

0x0203

I'm right there with you on using :term. I also do a lot of work on console only tty's without X or gui environments and splitting between code/text and term is very handy.

a year ago

_JamesA_

Wow thanks for that tip! I wasn't aware of :term before but that's great. I have always used :!sh or ^z.

a year ago

hiAndrewQuinn

I only notice vim 9.0 because it highlights as you search. Otherwise I'm in total agreement.

a year ago

_fat_santa

I have to say as someone in tech, one of my "personal embarrassments" is that I still only know how to use vim on a basic level. I often see my coworkers flying through our codebases in their custom vim/nvim setups and I gotta say I get a bit jealous.

But every time I think about learning vim I always go back to the argument that it's just a tool to get a job done and right now, I'm very good with one particular tool (vscode) and between my dayjob and other responsibilities I just can't justify the time sink to learn vim to a level where I can be "professionally productive". For now I mainly use it for git and the occasional markdown document I need to create on the fly

But beyond that I really admire vim and nvmim. The fact that my coworkers can use a 30 year old text editor and extend it to support the latest and greatest LLM's and language servers is just mental to me.

I hope Bram is up in heaven right now, teaching god how to quit vim.

a year ago

lukaslalinsky

I'm similarly embarrassed about only knowing vim on a basic level, but I've actually been using it as my main editor for programming for close to 20 years. I still navigate using arrow keys, for example. After years of tweaking, I now use nvim with the default config and I'm pretty happy with the minimalism. Despite only having very basic knowledge, I'm still more comfortable in vim than most other editors. Only the recent wave of AI assistants is getting me to use it less often.

a year ago

jaimebuelta

For anyone that wants to learn Vim I really recommend “practical Vim” [1] .

It’s a fantastic book that really gets into developing the right mindset to use it. It´s great once you “get it”, but it’s a different concept from the rest of text editors. Once you learn the basics, you’ll do great advancements in little time.

To me, it’s the best tech book that’s I’ve read. It’s really that good.

[1] https://pragprog.com/titles/dnvim2/practical-vim-second-edit...

a year ago

kombine

As someone who used VS Code for many years and before that PyCharm, it only took me a couple of weeks to regain full "professional productivity" after switching to Neovim. But it will take me years to master Vim.

a year ago

skydhash

I learned both Emacs and Vim (VIM for its speed, and emacs for its versatility). As a commenter pointed out, it’s all about freeing the mind. When you’re sure that an action is going to get a specific result, you can just do it and not think about doing it. While I can do most basic actions in whatever editor, there are workflows that are only possible in Vim/Emacs. One example is switching effortlessly between writing code, testing it, fixing it, managing the files, versionning them. Not a speed boost, but a flow boost.

a year ago

iLemming

> every time I think about learning vim I always go back to the argument that it's just a tool to get a job done

Tools are tools; their value is not so much with the features they carry but with our abilities to utilize them with joy. If someone perfects their workflows using notepad.exe, telling them something is wrong with that is like forcing a grown-up to "eat properly" even though they've been holding their spoon since childhood in their left hand, like a pencil.

If you try, however, to focus not on the tools themselves but the big ideas they convey, that might change your perspective on many things. At some point, after many cycles of frustration, amazement, inspiration, and awe, you will learn to appreciate certain ideas.

You are right to admire Vim - its main idea of modality is a wonderful, beautiful, powerful, and pragmatic model. I, for example, even though these days rarely use Neovim itself, consider myself "a diehard vimmer". I use that model everywhere - in my terminal, my editor, my browser, system-wide - with my window manager. For example, I control the volume, playback, and speed of my videos and my music with home-row keys. The incredible instinct and dexterity one can build over time can be mind-blowing. It's not about "building a discipline to not touch the mouse or arrow keys"; it's about realization that you can do without them - "do not try to bend the spoon...", etc.

Some other tools also exhibit the use of great ideas. Emacs builds on the cornerstone of a different, yet incredibly powerful idea - the idea of practical notation for lambda calculus, which is known as Lisp. Lisp probably can be crowned as one of the most important ideas in computer science. Understanding it makes it hard to think of anything more influential than Lisp. Any programmer who dismisses the idea of Lisp based on one concrete implementation of it is misguided.

VSCode carries the idea of an editor built on top of a browser, which turns out to be not so bad of an idea, after all. Cursor - the idea of tight LLMs integration, etc. And it's not just the editors and IDEs; take any of these and you find some beautiful ideas behind them - Unix, Git, Make, Jupyter, React, Docker, SQLite, Org-mode, etc. Each of these tools embodies a fundamental idea that has proven influential and valuable in computing.

Borrow good ideas, try them, practice them, implement them into your life, expand upon them. Understanding the core of the ideas is empowering. And often it liberates you from the burden of specific implementations - i.e., you don't have to use Neovim to appreciate the idea of Vim.

a year ago

yjftsjthsd-h

Eh. I use vim. I like vim. But what matters is that you have a tool that works. If that's vscode, and you're okay with that being your tool[0] then there's nothing wrong with that.

[0] I personally wouldn't like to be tied to a tool that phones home to and is by Microsoft, but plenty of people don't care; so long as it's an informed choice that's completely legitimate.

a year ago

et1337

I highly recommend the VSVim extension for VSCode. There’s no need to dive into the overwhelming world of customizing vim. You can get all the benefits of modal editing in your existing editor. In fact VSCode is even better with its built-in multi-cursor support.

a year ago

randotheenedFl

[dead]

a year ago

ggm

There is often an implied criticism of "if its not under active development for features, its not good" - which I don't agree with (and obviously neither do the VIM maintainers I think)

Maintenance mode is a good place to be IMO. I don't think anyone looking at a codebase with this maturity should feel "why aren't there significant new feature updates".

Wayland, ok I can see there are things which need 'bring into the modern era' but I don't think either Wayland, or XDG represents a massive about-face or fork moment. (I don't use graphically aided editors either vi or emacs, I live in terminal emulated space)

The moment of fear is when it ceases to be brought into current packaging by the distributions which re-factor it. I don't see any sign of that happening either.

a year ago

MisterKent

Definitely true, probably of almost everything.

Rarely the case, and rarely acknowledged, but almost everything is a tool. If everything followed the Unix principle rather than trying to constantly grow and pivot, we would have a lot more solutions that just work.

The more often people think about things as tools under the Unix principle, the (generally) less user hostile they are.

a year ago

meitham

I love vim and I’m happy Chris stepped in to save the project, his vim CSV plugin is something I use daily. Though I really hope vim and neovim merge, I don’t see a reason for the two projects to stay separate.

a year ago

mkozlows

Given what he's saying here -- that Vim is in "maintenance mode" -- I don't think you'll need any formal merge. Neovim is just where all new development is done, and it'll slowly replace traditional Vim over time.

a year ago

freedomben

I have had similar thoughts, and have even theorized that the two would merge at some point. But that said, The goals of the two projects are still pretty different. It sounds like Vim proper is going to start receiving More new features, but overall it still has a significant focus on stability. I do wonder if that will shift as the new maintainers get more and more confident and capable in the code base. Once that occurs, I suspect that neovim will start to look really good, even perhaps including to the vim proper maintainers.

What might be a big difference though and a big enough stumbling block to prevent merging is the fact that neovim code base has been refactored extensively and updated. Having worked in a big project that was refactored without me, and then returned, it is actually worse than a new code base because you feel like you should know where things are, but they aren't there. It continually misleads you and wastes your time. I could see that frustration being enough to keep the them proper people from merging or moving to neovim.

a year ago

3eb7988a1663

I do not believe that is possible without compromising the goals of one of the two projects.

Vim is expected to continue to work everywhere, even on some bank's circa 1980 mainframe. NeoVIM has become an effort to revitalize the project. Support for ancient systems was tossed almost immediately (eg no more 8.3 filename support code). NeoVIM also included some much improved default configuration values.

a year ago

umbs

"... vim and neovim merge,..."

This seems very unlikely. In neovim help docs there's a paragraph in file `nvim.txt`

   Nvim is emphatically a fork of Vim, not a clone:
   compatibility with Vim (especially editor and Vimscript
   features) is maintained where possible. See |vim
   differences| for the complete reference of differencesfrom
   Vim.
nvim maintainers believe the project diverged and compatibility is best effort at this stage. Essentially, there's no plan to merge the two projects at this stage and the benefits are not evident.
a year ago

glaucon

> Though I really hope vim and neovim merge

I hope that if they do merge that the connection to ICCF Holland is maintained.

Every time you start vim (without specifying a file) you see the message "Help poor children in Uganda!". It's been a salutary thing over the years to see Bram building something as amazing as vim and maintaining the commitment to helping orphaned kids in Uganda, I would be sad if that disappeared under the neovim bus.

If you're a vim user and you'd like to support Bram's vision, here's the link https://iccf-holland.org/donate.html .

a year ago

zargon

Related: The State of Vim, 200 comments https://news.ycombinator.com/item?id=42810176

a year ago

xyst

Didn’t know “the” core maintainer of vim has passed. But very nice to hear community has rallied to keep the project alive despite losing such a key person.

In the race to incorporate AI in everything, it has turned me away from tools such as VSCode, IntelliJ. Instead have reverted to use of vim/nvim, setting up my own development environment, customizing it to my liking with desired mappings, and enhancing with plugins on an as needed basis.

Even with all of my customizations, code completion is still snappy (since it’s lazily loaded), and I do feel more productive compared to GUI editors.

Only downside is collaboration with coworkers that have always learned to use a GUI editors. In those cases I just open up whatever text editor corp uses (most cases it’s just vscode).

Although for co-workers I dislike, I do love to see them struggle to use vim.

a year ago

theonething

The last sentence is savage and as a fellow long time vim user, I like it. :)

a year ago

OJFord

Fwiw: 'Bram Moolenaar has died', https://news.ycombinator.com/item?id=37011324

a year ago

realo

A long time ago I used an editor called Origami. It had really great folding.

After trying to replicate that exact folding method in many editors, the only editor that did it is vim with the kent extensions.

So... Thank you Bram and thank you to those who made the kent extensions.

https://github.com/vim-scripts/Kent-Vim-Extensions

a year ago

dismalaf

Hate to say it but when Bram died all the energy seemed to go to Neovim. It seemed for years Neovim was just the weird fork, now it actually feels like the new Vim. And Neovim is really nice, especially with stuff like Treesitter, Mason, and the distros (I use Lazyvim myself).

a year ago

bhasi

https://lwn.net/Articles/1002342/

LWN coverage of what I'm guessing is the same talk.

a year ago

cassepipe

My usual comment on any thread touching vim, as an answer to all hypothetical comments talking about how vim never clicked :

Remap the Escape key to CapsLock else you will never like vim (provided you are a normal person)

It's the most important key and you should punctuate all your inserts with it. So it'd better not be the key that's the furthest away from your fingers. The reason that's the case is an historical accident.

Don't be a victim. Remap.

P.S : Yes, I know about people using Ctrl+[, or Ctrl+C, I know you got used to it but one gets used to anything, it does not mean it's good. A weird combination isn't great and Ctrl + C has some quirks --> https://vi.stackexchange.com/questions/25764/use-control-c-i...

P.P.S : Yes, I know about `jk` it's clever ok but my mapping is system-wide and now I enjoy Escape being at the right spot for bash, zsh, fish, gdb, firenvim vim modes at no configuration cost.

a year ago

w0m

As a Caps -> Ctrl lifer - i feel personally attacked.

As an aside; if you do the mapping system wide - it's useful everywhere - caps lock is useless everywhere, and Escape is marginally usefull in general desktop usage. I do ctrl-a-ctrl-a tmux 100x/day to swap panes; and ctrl-u in terminal countless times. Minimizing finger movement on all the little things is valuable. That said; I've also become a fan of home row mods also.

a year ago

mariogreymist

This project is just like the program: people can't seem to quit.

a year ago

[deleted]
a year ago

skirge

Neuralink or something is needed to make keybindings unnecessary. Computer, delete this paragraph. computer move to next function. Computer replace this word.

a year ago

kazinator

> Maintaining VIM turned out to be a full time job, though the community has stepped in to help.

I think if you sneakily put me on Vim 7.5, I might not notice.

a year ago

synergy20

recently started to use vscode a bit due to ai stuff, vim's copilot works but vscode is better in that regard,now i use both

a year ago

lemonwaterlime

vim is stable and consistent. I vendor what plugins I do use with git submodules and everything just works for years and years.

LSP integration works as well as a given language engine has implemented it. I’ve got an autocmd group that automatically binds keys if that language’s corresponding LSP compiler is on my system. So with something like Rust or Go, I open the file and just go (no pun intended).

When I am trying out a new language, I just add a few configuration lines to my vimrc and all the bindings work automatically.

For non-LSP langs (or those with heavy servers) I use good ol’ ctags and grep, which is my preference anyway.

vim has been rock-solid for a while now and I can count on it not to break (or to break my configs!). I think very carefully about my workflows over time and deliberately configure the editor for exactly how I actually use it.

a year ago

compiler_queen

Anyone who doesn't use Vim is just evil in my eyes, I mean, come on! It's the best thing ever.

a year ago

cassepipe

Reaching for the escape key with your left pinkie while trying to keep your fingers on the home row hundreds of times a day in order not to have to dislocate your right pinkie to reach the arrows is is the idea of the century

Snark apart, praising vim without mentioning escape key remapping is criminal imho

a year ago

iLemming

> Anyone who doesn't use Vim is just evil in my eye

Hehe. Evil users are vimmers. Evil stands for - Extensible vi layer for Emacs. Try Emacs for a while, and you may realize - Emacs can vim better than Neovim.

a year ago