5 ms·
I will add some of my own opinions: My feeling is that real value of Vim is its novel approach to modal text manipulation, and you shouldn't let the fact that
by gepoch 10y ago
I will add some of my own opinions:
My feeling is that real value of Vim is its novel approach to modal text manipulation, and you shouldn't let the fact that it has a standalone lightweight reference implementation usefully installed on almost every machine that you use confuse you.
Vim script is not a great plugin language, and the vim runtime itself is not fantastic at doing things beyond the text editing. I think the activity around NeoVim is good evidence for this. The community recognizes the constraints of Vim, and seeks better plugin and runtime tooling to meet their needs.
My issue is: there are loads of great text editors that support the Vim interface. Emacs, Atom, Sublime, whatever, all have very good Vim interfaces and far superior languages and platforms for doing complex plugin work that you need to support IDE-ish environments. NeoVim seems like a bit of a waste to me, because I think it misses the point. Vim is not a platform. It's a unique modal editing paradigm. Why make yet another Vim-binding-having platform?
I guess what I mean is that vim should be left as vim. There are superior platforms that implement the same interface, should you feel the need to expand your tools. Vim does best as a portable minimal editor that you can use everywhere. If you need something with more power, pick a better platform, and run the Vim editing paradigm as an interface.
- Lio 10y ago> There are superior platforms that implement the same interface I guess that depends on how well you know Vim. All of the Vi/Vim plugins and emulators I've tried fell in the "uncanny valley" where they were only superficially like Vim but sooner or latter departed from the expected behaviour.
- gepoch 10y agoYeah, fair enough. That's a very good way of putting it, and I know exactly what you mean. I think the hardest part about implementing the Vim keybindings is that they're intrinsically linked to the way that Vim models text and operations. Commands are really statements about this internal model. Without the model, it gets difficult to reproduce the full palette of vim commands with very high fidelity. You kind of inevitably have to build your own vim-like text model to handle the keystrokes, and map it back into the platform that you're on (which is often a dumb buffer object for most text editors.) It's certainly much deeper than a keybinding. I called it an interface, but that's still not really deep enough. Well, anyways maybe NeoVim is good after all.
- Philipp__ 10y agoI encourage you to try NeoVim. I did. And I never looked back. After 6 months of Emacs, looks like I'll be back to NeoVim, and I am happy about it.
- weaksauce 10y agoyou might want to give spacemacs a go... it's quite good after you translate whatever vim config to emacs config. out of the box it's actually quite great and this is coming from a hardcore vim user that can't stand using a text editor without vi bindings and proper macro support etc. Everything is done pretty well and there isn't anything that I have found dealbreakingly lacking so far. https://www.youtube.com/watch?v=HKF41ivkBb0 https://www.youtube.com/watch?v=HKF41ivkBb0 it's also under active development so if that's your thing check it out. https://github.com/syl20bnr/spacemacs/ https://github.com/syl20bnr/spacemacs/
- Philipp__ 10y agoI know about spacemacs, and don't like the idea of core editor. Tried it and ended up using not emacs, not vim, but mix of both, and commands from both. And I do not like that.
- Veen 10y agoI had the same experience. I love the idea of the space leader and the mnemonic keymappings, but too much of Emacs leaked through. I've taken the lessons learned from Spacemacs and applied them to vim, remapping the leader to space and using mnemonics for remapping of some commands — all the markdown based commands are under space m, for example.
- weaksauce 10y agoI had my leader set to spacebar in vim and used mneumonics for the bindings already, but the main thing other than the discovery of forggoten leader keybindings(how many can you really remember even with mneumonics?) that I dislike about vim is how almost every extension just feels broken and hacked together. there are some that work well but a lot of them are just crap and I attribute that directly to extension authors wanting to use viml as much as possible to keep maximum compatibility and reduce external dependencies. Lisp is a good language that is self documenting as well as being usable. viml is a terribly hacky language that is awkward at best and counterproductive at worst. I still love vim but vim needs a better language around it. perhaps when neovim picks up steam the lua backend will lure people to write good plugins in it.(lua is a pretty good language overall). just depends on who wins the war now between vim and neovim now that vim has better async support.
- justinmk 10y ago> NeoVim seems like a bit of a waste to me, because I think it misses the point. Vim is not a platform. Neovim is designed to be hosted (embedded). Embedding Neovim in a IDE (platform) allows Neovim to be the editor while exposing the IDE as "the platform". It's also a guiding principle of Neovim to not dictate what applications are built with it, so yes, you can leverage its API as a platform. But that's not the singular purpose. > I guess what I mean is that vim should be left as vim. There are superior platforms that implement the same interface, There are no applications that implement Vim (except Neovim, which passes Vim's test suite).
- weaksauce 10y agoWhat's the process of embedding neovim into something like xcode? the thing that always got me confused is how the IDE would handle the text changing on an open file like that. What's the flow expected to be?
- hderms 10y agoI'm guessing some kind of event system out of band that the IDE can hook into. Using the OS for that is probably too low level to provide the experience people expect. https://neovim.io/doc/user/msgpack_rpc.html https://neovim.io/doc/user/msgpack_rpc.html
- flukus 10y agoI'd disagree that vim script is not a great plugin language, it's php like in it's simplicity and has a few novel features (like scopes) that are ideal for text editors and wouldn't fit into the variable scoping rules of other languages. Now it finally has a thread/process model too, making it better than ever. Creating a user specific script in vim is an order of magnitude simpler than atom.
- mreiland 10y agoI've never found a vim emulator in another editor that felt right. It's always a second class citizen and there's always something that breaks the illusion due to the way the vim keybindings interact with some other part of the editor. I prefer to not use vim emulators in non-vim software specifically for that reason.