Im considering spending some serious time learning one of the above. Two principle engineers I work with exclusively use them, and watching them work is incredible, the speed they move and get things done is pure wizadry. Can anyone learn this skill? For what it’s worth, the alternative is learning VScode. I’ve exclusive used Android Studio in my career.

  • It is really a good idea to learn vim. It’s everywhere, particularly useful when connecting to remote servers.

    In order to use it for all your development needs, you’ll probably resort to multiple plugins. The advantage: wizardry, the disadvantage: you get used to it, and won’t work on vanilla remote installations.

    I like to use vim for every day scripts and remote text editing, while using helix as main code editor.

    Helix is not yet as popular, but it comes with batteries included. Many of the plugins that you’d install in vim come as a feature in helix. It is also a modal editor, and it varies slightly in it’s use, but a nice addon to your toolbelt.

    • Seconding the recommendation for Helix.

      As you noted, it’s batteries-included. For me, the hard part of using vim/Neovim is choosing and configuring all of the plugins that you need to have an IDE-like experience. Helix doesn’t have a plugin system, so it’s not as powerful or flexible as Neovim, but it gives you 90% of the features of a fully-configured Neovim setup with 10% of the work.

      I also like Helix’s approach to modal editing. It’s a little more intuitive to use motions and then actions (e.g. select the next 3 words, delete them) than the other way around.

      • I use tmux instead of a bunch of vim plugins. What I can’t do inside the editor, I hop over to the other half of the terminal to do with tools in bash. The great part is that tmux can run in just about all the places vim can, and you also run ssh within it instead of the reverse. Whereas getting all your vim plugins onto each server you want to work in is a major PITA.

        You can get a similar experience with a split vim screen and the :term command, but tmux offers more versatility IMX.