1. 38

  2. 9

    NeoVim looks interesting, but I don’t plan on giving it a try. When it was announced it boasted asynchronous job control and native terminals, but those features have been added to the Vim core. If there’s a killer reason for using it, let me know.

    I’d say there are two fundamental differences between Neovim and Vim:

    1. Vim is much more conservative than Neovim is. New features in Neovim inspire ‘backports’ to Vim. While Bram and the Neovim team have a, erm, strained relationship, it’s hard to deny that Neovim inspired async and terminal support in Vim. It proves that there exists a community need and a possible implementation for the given feature.*
    2. Neovim is more modular and can be embedded in other clients. For example, actualvim is a sublime plugin that lets you use Neovim inside Sublime. In contrast, most “vim” plugins just emulate a few features; actualvim gives you access to your vimrc and the entire vim ecosystem.

    *One sore point in the Neovim community is that Vim8’s async system is incompatible with the neovim one.

    1. 1

      That’s a great summary. Thank you.

    2. 5

      I hate to be that guy but come on, the author says that he finds buffers to be a much better option than tabs, that he has installed quite a lot of plugins, and he does not mention Emacs in the section about other editors? M-x cry.

      Great article nonetheless, super interesting to see how other people configure their workflows. Also I didn’t know that now Vim core has support for async processes.

      1. 2

        As of now, tmux is my daily fullscreen working environment, and Vim usually takes up one of the tmux panes. This lets me use Vim while keeping a few other shells open – usually a server and one or two other utility panes.

        I don’t get it. Why not use a tabbed terminal emulator like xfce4-terminal instead?

        I’ve tried using tabs but never found them useful. All tabs do is create an additional way of hiding information and they require you to memorize another keybinding or command to get at them. If you’re using tmux, it’s simply easier to open Vim in another pane.

        It makes much more sense to use Vim tabs instead of running separate Vim instances in tmux tabs. Simplifying Vim tab movement with custom key bindings is trivial: https://github.com/stefantalpalaru/dotfiles/blob/3493395f9ba70b4e99e8a085d430bd2a1402ae31/homedir/.vimrc#L28

        1. 5

          I’ve been using vim + tmux exclusively (except for when i jump into java stuff) for about 5 years.

          The big selling point for this setup for me personally:

          There is no difference in my workflow when switching operating systems. It allow me to jump from windows, linux, mac, raspberry pi with the exact same light weight development environment.

          1. 1

            I use tabs primarily and don’t work directly with buffers to much but I do get his point.

          2. 3

            I don’t get it. Why not use a tabbed terminal emulator like xfce4-terminal instead?

            I’m probably missing something here but I use tmux+vim in a similar way, and at least on macOS it’s really way better for me, because I can copy/paste with yank buffer inside vim sessions, with tmux scroll buffer across them and into pbcopy and friends when necessary, and all that before I even need to get near to highlighting with the mouse to use the macOS pasteboard via cmd keys.

            1. 3

              I don’t get it. Why not use a tabbed terminal emulator like xfce4-terminal instead?

              tmux lets you save your panes (tmux-resurrect plugin), has lots of keyboard shortcuts for things like temporarily “zooming” into one pane, switching layouts, rotating panes or moving them around, breaking off panes or joining them back together, grouping panes into sessions, and lets you copy/paste in the scrollback with only the keyboard (without inserting linebreaks in continued/wrapped lines!). And so much more. Even if you only use a couple of those features, that’s a couple features that most terminal emulators don’t have (and don’t need, since, well, tmux has them).