7 ms·
I have been using Vim as my primary editor for many years and am happy with it. People I know who use developer editors are split between Vim and Emacs. Neovim
by ptero 10y ago
I have been using Vim as my primary editor for many years and am happy with it. People I know who use developer editors are split between Vim and Emacs. Neovim usage is minimal. Why? It is an honest question.
I see developers of the editor happy, which is a good thing, but IMO to get more users NV must show why it is better from a user perspective -- have several demos on the powerful things easily achieved with NV that are painful with Vim (via plugins is OK).
If NV devs can do this, it will go far. If not, then the case for an upgrade hasn't been made yet for most users. My 2c.
- fao_ 10y agoHonestly for me the main reason was that it finally has builtin `:terminal`. The plugins for use with vim have always been slightly buggy for me.
- 101km 10y agoCan you please elaborate how you make use of the built in terminal emulation of neovim? Whenever I see a mention I think "neat" but have yet to integrate it into my workflow.
- has2k1 10y agoNot parent, but I use Neovim and Ranger [1] filemanager and I have a shortcut to open Ranger in a split or full window from which I can browse and open a file. You can do this only because Neovim has a built-in terminal. This may end up replacing vinegar [2] as my in-VIM filemanager. [1] https://github.com/ranger/ranger https://github.com/ranger/ranger [2] https://github.com/tpope/vim-vinegar https://github.com/tpope/vim-vinegar
- cschneid 10y agoSo the nesting you have is Shell -> Nvim -> Ranger, so ranger is contained inside of a vim split? Mind sharing some docs on how to do that?
- Tarean 10y agoLazy version would be `:vsplit | lcd %:h | term ranger<cr>`. `vsplit` splits the window vertically. `lcd` sets the bufferlocal working directory which is a new feature in neovim. `term ranger` launches the terminal emulator. If you wanted to be fancy you could add a toggle that reuses the same ranger instance which'd add an additional ~10 loc.
- has2k1 10y agoI use a plugin ranger.vim [1]. Although it works for plain VIM, it is very clunky, since ranger is opened with a !command you get a blocking terminal. The nesting really is tmux -> Shell -> Nvim -> Ranger. https://github.com/francoiscabrol/ranger.vim https://github.com/francoiscabrol/ranger.vim
- soraminazuki 10y agoStuff like fzf (https://github.com/junegunn/fzf https://github.com/junegunn/fzf) works nicer with terminal emulation.
- nat 10y agoI use it a lot when doing exploratory SQL work or writing queries. I can tinker with my query in one pane and send it over to the `psql` repl in the other. I do use psql's `\e` command to open the previous query in your `$EDITOR`, but that only lets me get the single previous query, and throws out any comments.
- nolliebs180 10y agoLike a lot of other IDEs, it is convenient to have a console to focus over to then run ad-hoc cmdline stuff or run tests for the currently active project. This is what I use :terminal for the most. It was helpful for me to setup the below keybingds for focusing back/forth between a :terminal split and my "editing" splits: tnoremap <C-h> <c-\><c-n><c-w>h tnoremap <C-j> <C-\><C-n><C-w>j tnoremap <C-k> <C-\><C-n><C-w>k tnoremap <C-l> <C-\><C-n><C-w>l nnoremap <C-h> <c-w>h nnoremap <C-j> <c-w>j nnoremap <C-k> <c-w>k nnoremap <C-l> <c-w>l
- fao_ 10y agoI use it to either run microservices for testing, or for testing code in the erlang shell. It's MUCH easier to copy and paste inside vim and be able to copy logs out into a buffer to run sed expressions on it, than if I were using another terminal.
- gkya 10y agoI'm an Emacs user and that's because the Unix way doesn't quite work out well in practice: composition is hard, requires textual transformation with many possible edge cases as glue which is hard to build and maintain and is bug-prone, and interfaces are cryptic, only partly portable and inconsistent. Elisp on the other hand is a nicer primitive for building my day-to-day tools: Uniform data format everywhere; buffers and processes are nicer primitives as an interface to other programs in the system; single, extensible programming language (with lexical-scope added and threads coming in, Elisp is quite pleasant to program in in fact). NeoVim seems to bring these qualities into Vim sphere, giving the users and extension developers (in Emacs many extensions are apps themselves) better primitives to develop tools and applications, and allow to abstract-away Unix userland which is way too low-level and as I said above, not that friendly and helpful environment to live in. It holds on to what makes Vim interesting (modal editing, the range-command-object-movement style editing commands, ex mode) while adding a better API (VimL is...).
- cygned 10y agoI used vim and neovim for quite some time and eventually switched back to Emacs. The "you do not have to leave your environment" is actually quite nice. magit and org-mode are awesome. Color scheming is actually easier. Still having trouble with identation, though. vim is just smarter ...
- gkya 10y agoFWIW, I disable electric-indent globally and use C-j instead of RET which indents after new-line (it's bound to electric-newline-and-maybe-indent, I believe it's the default binding): C-j runs the command electric-newline-and-maybe-indent (found in global-map), which is an interactive compiled Lisp function in ‘electric.el’. It is bound to C-j. (electric-newline-and-maybe-indent) Insert a newline. If ‘electric-indent-mode’ is enabled, that’s that, but if it is disabled then additionally indent according to major mode. Indentation is done using the value of ‘indent-line-function’. In programming language modes, this is the same as TAB. In some text modes, where TAB inserts a tab, this command indents to the column specified by the function ‘current-left-margin’.
- 10y ago
- Longhanks 10y agoWithout neovim, vim wouldn't have gotten the async features. The fact that it's a community driven project and not dictated by one single BDFL makes it a lot more sympathetic for me.
- mundanevoice 10y agoVim is also community driven. Having a BDFL doesn't mean that the model is bad. Python, Linux all have BDFLs and they are blossoming. Also, saying that Vim wouldn't have gotten the async features without Neovim is wrong. It would have come in sooner or later, Neovim sure made it a priority.
- executesorder66 10y agoThe main reason NeoVim exists at all is because Bram Moolenaar refused to accept any patches for async support. People already did the work for him and he didn't want it. So they decided to write their own text editor that supported async plugins. Bram got butthurt and didn't want to lose a large portion of his user base, so he added async support. NeoVim's first public release (version 0.1) was released in December 2015. [0] And you can see that Vim development really picked up in early 2016. [1] Coincidence? Anyway, both text editors are awesome, and Vim is better off now that it has competition. The async features would never have come without the competition of a rival project. [0] https://neovim.io/news/2015/december/ https://neovim.io/news/2015/december/ [1] https://github.com/vim/vim/graphs/contributors https://github.com/vim/vim/graphs/contributors
- baldfat 10y agoI found the fork / refactor of VIM by NeoVIM to be very hostile and even naming itself "New Vim" made me not want to support NeoVIM. I have been using VIM since it was on my Amiga in the mid 90s. VIM has been a stellar project that is due a lot of respect. Even the funding for VIM is reflected back to giving to Uganda children charity. > NeoVim exists at all is because Bram Moolenaar refused to accept any patches for async support. People already did the work for him and he didn't want it. Untrue: "It's going to be an awful lot of work, with the result that not all systems will be supported, new bugs introduced and what's the gain for the end user exactly? Total refactoring is not a solution. It's much better to improve what we have. Perhaps with some small refactorings specifically aimed at making Vim work better for users." Brian Moolenaar https://groups.google.com/forum/m/#!topic/vim_dev/x0BF9Y0Uby8 https://groups.google.com/forum/m/#!topic/vim_dev/x0BF9Y0Uby... NeoVIM kind of said that VIM was just a mess and it would be impossible to grown past where it is. To me this was worst then Ubuntu having it's own Unity and Mir. This was just drama and seemed over the top disrespectful to Brian.
- jamesrcole 10y ago> Neovim usage is minimal. I don't know how much it is used, but what are you basing that claim on?
- quasiverse 10y agoIt's clear from the context that he's talking about people he knows, not usage in general.
- ptero 10y agoAs I said -- just personal observations of software developers and engineers I cross paths with.
- empath75 10y agoThe simple answer is probably the correct one. It's not included by default in any distributions.
- cosarara97 10y agoSome distros do have it in the official repos https://github.com/neovim/neovim/wiki/Installing-Neovim https://github.com/neovim/neovim/wiki/Installing-Neovim
- executesorder66 10y agoYes, but it is not installed as the default text editor. Unlike vi/vim/nano
- cosarara97 10y agoThe default is usually vi or nano, not full vim. So installing vim or neovim should take about the same effort.
- vopi 10y agoIn what distros? Ubuntu comes with vim.
- cryptarch 10y agoDebian Stable (without a DE) only comes with nano AFAIK.
- jimktrains2 10y agoI'd bet good money both ed and vi are there as they are specified by POSIX iirc.
- gh02t 10y agoIt has vi in the base system, specifically `vim-tiny`. Vi is mandated by POSIX, so pretty much every distro includes some minimal version of it in the base system. `nvi` is also used sometimes instead.
- StevePerkins 10y agoI use Vim with a customized `.vimfile`, but rarely if ever do I tinker with a lot of plugins. If I'm doing "development", then usually I'm using a JetBrains IDE product with the IdeaVim plugin. If I'm in vanilla Vim, then it's because I'm just doing text editing from a shell, and have no need for a lot of plugins. This is anecdotal speculation, but I imagine that most Vim users are in a similar boat. I talk to so many lifelong Vim users who have never even heard of "pathogen" or other plugin management systems. I'm pretty sure that heavy plugin users are the minority. Most people who seem excited about NeoVim (or even talk about it at all), fall into three categories: 1) Heavy plugin users, who want plugins with some feature not well-supported by Vim. 2) Developers who would like to embed Vim within their own applications, but find the classic Vim codebase or license unsuitable for this. 3) "Ideologues". People who don't like Bram Moolenaar. People who wish he would have accepted a pull request that he declined or ignored. People who wish he would release Vim more frequently, make it more trendy, or bloat it up with this or that new feature. People who just don't like the way that the Vim project is run, ideologically speaking. (EDIT: i.e. the brigade crowd who's downvoting every comment that isn't unqualified praise and support for NeoVim.) So like I said, I'm pretty sure that the overwhelming majority of Vim users do not fall into category #1. And the other two categories are tiny subsets of that first one. So to turn the question around... why WOULD people go out of their way to abandon the default, and flock to something else which might drift away from compatibility over time?
- soperj 10y agoCompetition brings the best out of people. New ideas should be accepted even if it makes things drift away from compatibility. BSD started w/ unix code and eventually refactored all that old code out, doesn't make it a bad project simply because it's no longer a drop in replacement for unix. It serves other purposes.
- nolliebs180 10y agoI am a developer using vim & neovim daily. My setup before VM/container popularity was mostly ssh into a remote dev box, then tmux+vim there on the remote host. Tmux mostly for its split-pane feature which I like better than vim splits. Now since I can do most of my work locally, neovim's terminal support has, for me, completely replaced my use of tmux splits. Having moved all my split usage out of tmux into neovim has simplified my setup and keybindings. And I grok and am more comfortable now with vim/neovim splits.
- lmm 10y agoI set up a new machine a couple of days ago. Looked for neovim in FreeBSD ports. It wasn't there. Shrugged and installed vim. I'd happily have switched if only for the code quality reputation. But it needs to be easy - no, that's too weak a word, it needs to be trivial - to install in the usual way I install things.
- SyrupThinker 10y agoThis is incorrect, neovim is available in the FreeBSD ports. [1] [https://svnweb.freebsd.org/ports/head/editors/neovim/ https://svnweb.freebsd.org/ports/head/editors/neovim/]