I’m relatively new to programming, I’ve been learning C on linux using nano and it’s been very fun. I’ve recently fallen into the emacs/vim rabbithole and I’ve been watching videos about emacs, Doom, spacemacs, neovim and reading comments about people switching from this or that to another config or editor, and I’ve been a bit lost on what to do. Then I realised that I haven’t done any coding and spent all of my time focusing on editors. So here is my question (which has probably been asked many times) : what is the point of investing so much time learning all of this when there are some IDEs that are preconfigured with all the functionality a programmer would need ? Does learning neovim or emacs actually save time in the long run? I know that they’re much more lightweight than IDEs and I’ve been really enjoying using the terminal much more than my time on IntelliJ, but having an easy out of the box visual debugger, refactoring and jump into functions can be really helpful in the long run I think, especially when starting to write actual large programs. Nano is fun, but not a time saver. Why did you chose your editor?

  • MrJay@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Like some others have mentioned the biggest part of emacs and vim is the Vim Keybinds/Motions this is something you can take to almost every editor since most editors have the majority of keybinds/Motions.

    (you mentioned you use Nano so you may already find this to be true with Nano as well)

    The Second biggest thing you learn from Emacs/Vim is how to use the terminal better, when I started out using intellij I didnt realize the command prompt was a command prompt, when I switched to notepad++ and used the terminal I began understanding how the terminal actually worked and it has helped me a lot, I find myself using the fd utility to find documents and ripgrep to search through config files even when I am not programming and it makes me way faster than my coworkers (I work as an artist) when we are searching through some of are more intense config files I find stuff first. I switched to Emacs/Vim to unify my workflow because I was using Notepad++ and the Terminal, now I understand Intellij better because I actually started looking things up, Emacs/Vim for better or worse force you to learn. now if I ever want to try out a language it does not matter if it has a language server I can use a small set of universal tools to get done what needs to be done.

    I would say a full IDE is probably faster however Vim Motions can save a lot of time, because with Vim Motions worse case scenario you use the mouse which is what you would have done anyway if you didnt know them, so it can only save you time.

    I will say the biggest danger is tinkering too much and wasting time on your Emacs/Vim config files, for me I havent really touched my config files in over a year, only thing I have done is add some languages too it and changed the theme.

    I sometimes do some Java development but its very rare so I dont know the language well enough to use Emacs or Vim to program Java I normally just use IntelliJ with Vim Motions. but for my main dev projects I use Emacs.

    Third benefit is a Very customizable Editor; for work and for side projects I use languages that are not very common so they dont have great support in IDE’s so if I ever want a feature I can make it myself. a common feature is structural editing.