I love vim, and I'm always happy to read interviews with the developers who make and manage the tools I use or like. However, I find this article to be somewhat of a mishmash with an uncertain audience. From the title, I had expected this to be a transcript of an interview. But it's not.
Thank you for the link.
The article also heavily implies that Bram is the sole and only developer, and mentions that vim has had four updates since 2006. Both of these are true only up to extremely narrow interpretation, and not what I would expect from an article purporting to interview and describe a project maintainer and the project.
Has Bram Moolenaar ever publicly acknowledged the influence of Neovim on Vim 8? At the very least, Neovim provided the market research to show that async was worth doing.
I've not seen anything which is disappointing, the NeoVim team have done a fantastic job at modernising Vim. I've not followed Vim development very closely but the whole async thing did give me a chuckle when I read about it after years of not accepting async patches. A real shame he made it incompatible with the NeoVim async with no real reason.
Neovim is Vim for me and many other users. Vim is irrelevant to me now. The community is rallying behind Neovim and it shows great potential. It just needs to be bundled by major distros so it can be installed on servers with 1 command and that'll be the end of old Vim. Bram has done a tremendous job with Vim but it's time to move on to the Vim of the future.
Good point. A recent upvoted post From Reddit's Vim sub [1]:
"I am super surprised that everybody talks about Vim 8 but almost nobody mentions that...
- Bram Moolenaar did the last major version ten years ago
- The recent years of Vim's development were almost stalling
- Bram publicly questioned the Neovim team's efforts creating a fork and bringing new essential stuff like async to Vim—he even made kind of fun of them
After Neovim came out and has been developed at fast pace, Bram surprisingly presents Vim 8 with the stuff we wanted which before he decided against—all the stuff Neovim did and of course incompatible to the fork.
Bram's decision on being incompatible should be challenged and discussed, would love to hear his thoughts. Since no money is involved, his decision feels even more awkward, why not welcome competition or potential contributors, being a team player, work together or merge? Or is it Bram's injured pride, the fear of getting irrelevant with some piece of ancient software?
Whatever 'meaningful reasons' Bram chose not to support a fork, now we are left with incompatible Vim variants which damage the entire Vim ecosystem. I guess that most distributions will package Vim 8 with their distributions, just because not everybody has followed all the happenings, and Vim 8 sounds like a solid choice, like going with the mainstream. So, Vim 8 might get the next standard and an awesome fork could die which I find sad. The Neovim team has been disrupting, they went ahead and it's a community developed software which is a huge differentiator to Bram's work and codebase of controversial quality.
What are your thoughts? Should we support both versions and should we write plugins for both or focus on one? Or is competition good and the Neovim team will deliver more and prove that still a community developed Neovim will outperform Vim in the long run?
Don't get me wrong, this isn't a rant, Bram created with Vim an fantastic piece of software—this is about the question how we should keep competition which helps the entire ecosystem so we don't end up with a dying fork and original Vim's development slowing down again for the next ten years.
One idea is that all distributions should either still package old Vim 7.x only to let people decide themselves or always package both Vim 8 and Neovim together. But how should we get there?"
I think that so long as the primary rhetoric from the NeoVim camp is "vim is dead, long live NeoVim", with a dash of disrespect for Bram and his goals of continued platform compatibility and coding style... I personally don't expect such acknowledgement.
Doing so might make Bram the 'better person', but I wouldn't blame him if it makes him a bit resentful.
I was surprised to learn that vim started out on the Amiga. Back in those days I was using DME, by a certain Matt Dillon (of Dragonfly BSD fame, not the actor ;-) ). At the time it was the only editor that could drag me away from Emacs. Ironic that Vim later seduced me away from Emacs again...
Well, I've been using Vim on iTerm 2 for a long time and have been trying neovim recently, but everything through command line, since it fits better with tmux
I use/have used neovim-dot-app, it's pretty nice. It's not quite as polished as MacVim, mostly little things like not having dock menu entries for creating/switching windows. I had to compile from HEAD fairly regularly to fix bugs and keep up with neovim releases. I mostly switched back to MacVim once vim 8 came out.
I've been very happy with neovim.app but recently switched to VimR. VimR switched to neovim some time ago. Haven't noticed any issues as compared to neovim.app. Both work pretty much the same for me as I don't use VimR's features.
I've been meaning to try neovim, but I'm so in love with evil-mode spacemacs. I only switched to evil-mode recently, but I can already tell that there's no going back from modal editing for me. Can anybody speak for benefits of using neovim over spacemacs?
I don't know if I am too old or just think differently than vim enthusiasts, but I somehow couldn't bring myself to like vim. Of course that's might be since I can't find motivation to dig into it further. As a developer I use it almost daily when doing something on the server, like editing some config etc., but I somehow always prefer a software, where you do things intuitively without needing to first learn a shortcut for everything. I just prefer Visual Studio or Visual Studio Code from Microsoft when developing code, accepting that I must use mouse and the editing process might take slightly longer. Also, as awkward as it might sound, visually vim looks a bit ugly to me and I never could get fully over it. :-)
> I don't know if I am too old or just think differently than vim enthusiasts
You make it sound like vim is a new thing. It's 25 years old. And vi is 40 years old. If you've been writing code for longer than that, then damn. I'm impressed.
> prefer a software, where you do things intuitively without needing to first learn a shortcut for everything.
Like what? ctrl + c or ctrl + v? I doubt anyone has every figured those out by themselves. They either read the documentation, or someone showed them. Or do you mean intuitive as in right click on selected text, and then click the copy option? to each their own, but I couldn't stand wasting that much time every time I want to copy or paste something.
> accepting that I must use mouse and the editing process might take slightly longer.
Kind of answers my previous question. But for me, it's not that using the mouse wastes an extra second here and there. But it breaks the constant flow of typing on the keyboard. I don't like that constant start/stop of switching between the keyboard and mouse. But you don't mind it, and that's fine. (I'm just explaining from my perspective, why people would prefer something like vim)
> visually vim looks a bit ugly to me
Everyone's tastes are different, but I don't understand this. It's just a cursor, the text you are working with, and a small bar at the bottom with some info. How is that ugly? I mean you can change the font to whatever you like.
> but I somehow always prefer a software, where you do things intuitively without needing to first learn a shortcut for everything.
As the quote goes, "The only "intuitive" interface is the nipple. After that it's all learned."
The word you're looking for is "different". Vim (and Emacs) have different shortcuts than what you're used to from Windows. That's because they're much older. Vi and Emacs actually predate those "intuitive" shortcuts of yours.
And like with many things our industry standardized on these days, just because it's popular, doesn't mean it's not utter shit.
First off, there's a lot of good reasons to use V.S. OK, Now that that's out of the way...
The one thing I see people cite the most when they talk about not learning vim is "shortcuts". Vim's main editing interface is not "shortcuts". It's an editing language. There's a huge difference:
(not trying to flame or boast or anything, just trying to honestly communicate my feelings here, but) Anytime I use an editor that doesn't have a similar model, it feels like trying to carve wood with a coffee mug. If that simile sounds weird and doesn't make sense, that's how it feels.
The second argument I hear is plugin/ide functionality.
You can get syntax highlighting, linting, VCS integration, anything from the shell, C-Tags, plugins, in vim but a lot of the refactor type IDE stuff isn't up to snuff. I have a theory about this. In a regular IDE, refactoring manually is a pain point. This means the auto-refactor tools are more polished in IDEs. I do as many refactors that could be automated as any other programmer, but its not a pain point because manually refactoring in vim takes only marginally more thought/input than automatically refactoring in an IDE.
Not saying that IDE refactoring isn't better (it is), but it isn't a big enough productivity improvement for me to fix that versus, say, refining my vim mappings, or practicing using the git plugin vs always using CLI git, or finally integrating the tmux plugin, etc.
Now... THAT said. The onboarding process for vim is pretty awful. You either start with an austere text editor and piece by piece build it into an amazing IDE/text editor, or you start with a premade blackbox config that you are unequiped to tweak.
IMO, the problem is that we've tried to use Vim as an IDE. Vim's power is modal editing and the composable grammar. I think Vim should be in competition with the text editor widget that sits inside VSCode, Atom, Xcode, Intellij or any other IDE instead of the IDE itself. Fortunately, with neovim this will be possible.
People can use IDEs of their choice but use real Vim for all text operations or just stick to vim like me :)
I'd argue Vim is actually the intuitive choice because its commands allow motion/editing across boundaries that make sense, without (in my opinion) awkward mouse/cursor motions. For example % at a function call will edit/select the whole call if the cursor is at the beginning of the function name.
Once you have the muscle memory, you use little thought on how to mechanically accomplish editing tasks, so the intent-to-accomplishment pathway is quite direct. In the end though this may not be the case for you, even if you earnestly dove into it.
I think the main difficulty with learning Vim is that its commands are like minimal "combinators" attached to arbitrary keys, and they take exploration/use to experientially bubble up these combinators to reach "comfort parity" with standard editors. In this way Vim is like the Lisp of editors.
About the ugliness, I agree. That's why I usually use a GUI version if I can. Plus it must be reiterated that Vim is more just a text editor, not an IDE like Visual Studio. If I could use VS+VsVim for everything, I would.
In terms of doing things intuitively -- I think (maybe incorrectly) that you mean seeing icons that you can click on to perform a certain action rather than the keyboard command that does the same. If so, that is easy to fix by adding buttons. The problem with this approach is that mouse-driven commands are almost never "mouse-only" -- you still need to move the hands back and forth between keyboard and the mouse (e.g., after you click "save as" you need to type the file name to save to) and this wastes quite a bit of time.
But people are different, some prefer it this way and some not. Even on the keyboard-driven side there is a clear divide between those who like single-mode interface of Emacs and those who love Vim and hate the pianist training of Emacs multi-finger actions.
I've been using Emacs for years now but since I got introduced to PHPStorm I must say I won't ever use Emacs for PHP again. It's features are so addicting that I don't mind not having the shortcuts I'm used to.
I was never an IDE guy but PHPStorm is just too good, so much time saved.
It can vary with time and context. I had a long period where mangling text in high prowess was important to me. Because I was somehow in love with programs, and doing lots of things with my fingers felt good and worthy. Also because I was using Java, very verbose as everybody knows.
Some people will love Java and accept its verbosity, I cannot.
Now I found out about lisps, ml, or even ruby and suddenly verbosity decreased.. you need less text edition.
And even more than that, focusing on algorithms and conceptual structures makes you forget about editing, formatting, or even live check etc. You often think deep beforehand. Then type a few things, because the design is more balanced.
There are really good vim plugins for visual studio so it's not an either or proposition. Vim keybindings are simply a much faster way to edit code.
What's less intuitive? caw stands for change a word. This selects the word and deletes it leaving you in insert mode to type something new.
Or: ctrl left arrow, shift, ctrl right arrow, delete key.
cit stands for change inside tag (html tag) or ci" for change inside the double quotes. dit and di" work just the same and vim can be thought of as a language to work on text.
If you have a few min to spare to see why it's so powerful and not that hard to learn you can google "you don't grok vim" to get a good stackoverflow response on it.
> Bram admitted to using other editors on rare occasions, and said he always misses the dot (.) command, which repeats a change several times in different positions, and the ability to record and replay a sequence of commands.
> “Just a simple ‘change this text into that text’ can be very laborious without a repeat command,” he said. “I haven’t seen another editor that provides this feature.”
Note that emacs has had the repeat command since version 20.3, released 19 August 1998[2]. I suppose that means he's not used it since then …
Have you used vim? . is much closer to running a keyboard macro than it is to C-x z - only you don't have to record anything ahead of time, nor necessarily even realise until afterwards that you might want to reuse what you've just done. There's no precise equivalent in emacs. It's described here: http://vim.wikia.com/wiki/Repeat_last_change
C-x z is lame by comparison. Like, suppose you just typed in M-d h e l l o, and you press C-x z. It repeats the last command: self-insert-command. So you get an additional o. Thanks, Emacs!
More comedy: after you move the cursor, perhaps planning to use C-x z to insert another o elsewhere in the document, C-x z now replays the last cursor movement command.
(None of this is illogical, it's simply that C-x z is not, probably, very useful for editing text.)
With vim, on the other hand, pressing . would replay the word deletion, followed by the insertion of "hello". And you can use other motion commands to move about the file before repeating it again, allowing you to perform this operation in multiple places.
> Releasing version 8.0 and getting close to the 25th birthday inspired the writing of this article. It contains links to relevant info and can be used to convince a friend to start using Vim. (Bram Moolenaar)
There is an answer in the video at 1:06:11. "In some way it's actually nice to have competitor [he is speaking about Neovim] and Emacs has disappeared, so.. [I think, he smiles at this point]".
Why is it bad? Competition is always a good thing, and I'm glad that Neovim urged Braam to improve Vim as well.
Personally, I'll rather use Vim as it focuses on stability and long-term compatibility. I have a huge respect for Braam for maintaining the project for so long. On the other hand, some of the Neovim's promises are just that, big dreams. Development on Neovim has slowed down and if you look at their git history, you'll see most of their commits are actually upstream patches taken from Vim.
I also see a lot of hate towards Vim source code and code styling, which is not that bad and I actually prefer it to Neovim's two spaces per indentation style.
We've banned this serial troll account. Please don't create accounts to violate the guidelines like this. We detached this subthread from https://news.ycombinator.com/item?id=13237170 and marked it off-topic.
[+] [-] mixedmath|9 years ago|reply
The article also heavily implies that Bram is the sole and only developer, and mentions that vim has had four updates since 2006. Both of these are true only up to extremely narrow interpretation, and not what I would expect from an article purporting to interview and describe a project maintainer and the project.
[+] [-] Exuma|9 years ago|reply
[+] [-] akkartik|9 years ago|reply
[+] [-] deadbunny|9 years ago|reply
[+] [-] owaislone|9 years ago|reply
[+] [-] tsul|9 years ago|reply
[+] [-] greenspot|9 years ago|reply
"I am super surprised that everybody talks about Vim 8 but almost nobody mentions that...
- Bram Moolenaar did the last major version ten years ago
- The recent years of Vim's development were almost stalling
- Bram publicly questioned the Neovim team's efforts creating a fork and bringing new essential stuff like async to Vim—he even made kind of fun of them
After Neovim came out and has been developed at fast pace, Bram surprisingly presents Vim 8 with the stuff we wanted which before he decided against—all the stuff Neovim did and of course incompatible to the fork.
Bram's decision on being incompatible should be challenged and discussed, would love to hear his thoughts. Since no money is involved, his decision feels even more awkward, why not welcome competition or potential contributors, being a team player, work together or merge? Or is it Bram's injured pride, the fear of getting irrelevant with some piece of ancient software?
Whatever 'meaningful reasons' Bram chose not to support a fork, now we are left with incompatible Vim variants which damage the entire Vim ecosystem. I guess that most distributions will package Vim 8 with their distributions, just because not everybody has followed all the happenings, and Vim 8 sounds like a solid choice, like going with the mainstream. So, Vim 8 might get the next standard and an awesome fork could die which I find sad. The Neovim team has been disrupting, they went ahead and it's a community developed software which is a huge differentiator to Bram's work and codebase of controversial quality.
What are your thoughts? Should we support both versions and should we write plugins for both or focus on one? Or is competition good and the Neovim team will deliver more and prove that still a community developed Neovim will outperform Vim in the long run?
Don't get me wrong, this isn't a rant, Bram created with Vim an fantastic piece of software—this is about the question how we should keep competition which helps the entire ecosystem so we don't end up with a dying fork and original Vim's development slowing down again for the next ten years. One idea is that all distributions should either still package old Vim 7.x only to let people decide themselves or always package both Vim 8 and Neovim together. But how should we get there?"
[1] https://www.reddit.com/r/vim/comments/52q4ul/about_vim_8_and...
[+] [-] falcolas|9 years ago|reply
Doing so might make Bram the 'better person', but I wouldn't blame him if it makes him a bit resentful.
[+] [-] manaskarekar|9 years ago|reply
[+] [-] mikekchar|9 years ago|reply
[+] [-] pawadu|9 years ago|reply
http://www.guidebookgallery.org/screenshots/amigaos204
Suffice to say, I have been a very happy emacs user since then ;)
[+] [-] mkonecny|9 years ago|reply
[+] [-] bagrow|9 years ago|reply
[1] https://github.com/rogual/neovim-dot-app
[2] https://github.com/macvim-dev/macvim
[+] [-] forbidden404|9 years ago|reply
[+] [-] tomku|9 years ago|reply
[+] [-] owaislone|9 years ago|reply
[+] [-] molloy|9 years ago|reply
[+] [-] desireco42|9 years ago|reply
[+] [-] greyman|9 years ago|reply
[+] [-] executesorder66|9 years ago|reply
You make it sound like vim is a new thing. It's 25 years old. And vi is 40 years old. If you've been writing code for longer than that, then damn. I'm impressed.
> prefer a software, where you do things intuitively without needing to first learn a shortcut for everything.
Like what? ctrl + c or ctrl + v? I doubt anyone has every figured those out by themselves. They either read the documentation, or someone showed them. Or do you mean intuitive as in right click on selected text, and then click the copy option? to each their own, but I couldn't stand wasting that much time every time I want to copy or paste something.
> accepting that I must use mouse and the editing process might take slightly longer.
Kind of answers my previous question. But for me, it's not that using the mouse wastes an extra second here and there. But it breaks the constant flow of typing on the keyboard. I don't like that constant start/stop of switching between the keyboard and mouse. But you don't mind it, and that's fine. (I'm just explaining from my perspective, why people would prefer something like vim)
> visually vim looks a bit ugly to me
Everyone's tastes are different, but I don't understand this. It's just a cursor, the text you are working with, and a small bar at the bottom with some info. How is that ugly? I mean you can change the font to whatever you like.
[+] [-] TeMPOraL|9 years ago|reply
As the quote goes, "The only "intuitive" interface is the nipple. After that it's all learned."
The word you're looking for is "different". Vim (and Emacs) have different shortcuts than what you're used to from Windows. That's because they're much older. Vi and Emacs actually predate those "intuitive" shortcuts of yours.
And like with many things our industry standardized on these days, just because it's popular, doesn't mean it's not utter shit.
[+] [-] hxegon|9 years ago|reply
The one thing I see people cite the most when they talk about not learning vim is "shortcuts". Vim's main editing interface is not "shortcuts". It's an editing language. There's a huge difference:
https://www.youtube.com/watch?v=ZdC2ysrP-XA
(not trying to flame or boast or anything, just trying to honestly communicate my feelings here, but) Anytime I use an editor that doesn't have a similar model, it feels like trying to carve wood with a coffee mug. If that simile sounds weird and doesn't make sense, that's how it feels.
The second argument I hear is plugin/ide functionality. You can get syntax highlighting, linting, VCS integration, anything from the shell, C-Tags, plugins, in vim but a lot of the refactor type IDE stuff isn't up to snuff. I have a theory about this. In a regular IDE, refactoring manually is a pain point. This means the auto-refactor tools are more polished in IDEs. I do as many refactors that could be automated as any other programmer, but its not a pain point because manually refactoring in vim takes only marginally more thought/input than automatically refactoring in an IDE.
Not saying that IDE refactoring isn't better (it is), but it isn't a big enough productivity improvement for me to fix that versus, say, refining my vim mappings, or practicing using the git plugin vs always using CLI git, or finally integrating the tmux plugin, etc.
Now... THAT said. The onboarding process for vim is pretty awful. You either start with an austere text editor and piece by piece build it into an amazing IDE/text editor, or you start with a premade blackbox config that you are unequiped to tweak.
[+] [-] owaislone|9 years ago|reply
People can use IDEs of their choice but use real Vim for all text operations or just stick to vim like me :)
[+] [-] rubenv|9 years ago|reply
That doesn't even apply for an IDE. As a vim user I always feel lost in those at first.
Any tool with a bit of power will require familiarization. You won't get the most out of that IDE unless you learn it.
[+] [-] tokipin|9 years ago|reply
Once you have the muscle memory, you use little thought on how to mechanically accomplish editing tasks, so the intent-to-accomplishment pathway is quite direct. In the end though this may not be the case for you, even if you earnestly dove into it.
I think the main difficulty with learning Vim is that its commands are like minimal "combinators" attached to arbitrary keys, and they take exploration/use to experientially bubble up these combinators to reach "comfort parity" with standard editors. In this way Vim is like the Lisp of editors.
About the ugliness, I agree. That's why I usually use a GUI version if I can. Plus it must be reiterated that Vim is more just a text editor, not an IDE like Visual Studio. If I could use VS+VsVim for everything, I would.
[+] [-] ptero|9 years ago|reply
But people are different, some prefer it this way and some not. Even on the keyboard-driven side there is a clear divide between those who like single-mode interface of Emacs and those who love Vim and hate the pianist training of Emacs multi-finger actions.
[+] [-] skuzye|9 years ago|reply
I was never an IDE guy but PHPStorm is just too good, so much time saved.
[+] [-] agumonkey|9 years ago|reply
Some people will love Java and accept its verbosity, I cannot.
Now I found out about lisps, ml, or even ruby and suddenly verbosity decreased.. you need less text edition.
And even more than that, focusing on algorithms and conceptual structures makes you forget about editing, formatting, or even live check etc. You often think deep beforehand. Then type a few things, because the design is more balanced.
[+] [-] weaksauce|9 years ago|reply
What's less intuitive? caw stands for change a word. This selects the word and deletes it leaving you in insert mode to type something new.
Or: ctrl left arrow, shift, ctrl right arrow, delete key.
cit stands for change inside tag (html tag) or ci" for change inside the double quotes. dit and di" work just the same and vim can be thought of as a language to work on text.
If you have a few min to spare to see why it's so powerful and not that hard to learn you can google "you don't grok vim" to get a good stackoverflow response on it.
[+] [-] dominotw|9 years ago|reply
you can learn that intuition easily by learning 'vim language' , there are no shortcuts.
[+] [-] neppo|9 years ago|reply
[+] [-] NegativeLatency|9 years ago|reply
[+] [-] proussea|9 years ago|reply
[+] [-] zeveb|9 years ago|reply
> “Just a simple ‘change this text into that text’ can be very laborious without a repeat command,” he said. “I haven’t seen another editor that provides this feature.”
Note that emacs has had the repeat command since version 20.3, released 19 August 1998[2]. I suppose that means he's not used it since then …
[1] https://www.gnu.org/software/emacs/manual/html_mono/efaq.htm...
[2] https://www.emacswiki.org/emacs/EmacsReleaseDates
[+] [-] to3m|9 years ago|reply
C-x z is lame by comparison. Like, suppose you just typed in M-d h e l l o, and you press C-x z. It repeats the last command: self-insert-command. So you get an additional o. Thanks, Emacs!
More comedy: after you move the cursor, perhaps planning to use C-x z to insert another o elsewhere in the document, C-x z now replays the last cursor movement command.
(None of this is illogical, it's simply that C-x z is not, probably, very useful for editing text.)
With vim, on the other hand, pressing . would replay the word deletion, followed by the insertion of "hello". And you can use other motion commands to move about the file before repeating it again, allowing you to perform this operation in multiple places.
[+] [-] clishem|9 years ago|reply
[+] [-] laktak|9 years ago|reply
> Nice article about Vim on hostingadvice.com
> Releasing version 8.0 and getting close to the 25th birthday inspired the writing of this article. It contains links to relevant info and can be used to convince a friend to start using Vim. (Bram Moolenaar)
[+] [-] throwaw12ay|9 years ago|reply
[+] [-] chappi42|9 years ago|reply
[+] [-] ghostly_s|9 years ago|reply
[+] [-] ward|9 years ago|reply
[+] [-] data_hope|9 years ago|reply
[+] [-] red2awn|9 years ago|reply
[+] [-] kerny|9 years ago|reply
Personally, I'll rather use Vim as it focuses on stability and long-term compatibility. I have a huge respect for Braam for maintaining the project for so long. On the other hand, some of the Neovim's promises are just that, big dreams. Development on Neovim has slowed down and if you look at their git history, you'll see most of their commits are actually upstream patches taken from Vim.
I also see a lot of hate towards Vim source code and code styling, which is not that bad and I actually prefer it to Neovim's two spaces per indentation style.
[+] [-] censored_again|9 years ago|reply
[+] [-] sctb|9 years ago|reply
https://news.ycombinator.com/newsguidelines.html
[+] [-] owaislone|9 years ago|reply
Neovim: https://github.com/neovim/neovim/pulse/monthly
Vim: https://github.com/vim/vim/pulse/monthly
I don't know why people feel emotional about Vim. Neovim is just Vim with a breath of fresh air.
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] LukeLaPira|9 years ago|reply
[deleted]