I would like to premise this with the following:

  • The best approach is probably just testing out each and every editor that interests me until I’ve found what works best for me.
    • However, I wonder to what degree a test as such would be representative when the likes of Emacs and (Neo)Vim are considered; both of which are known for being a life time learning process.
  • I don’t literally expect Emacs or (Neo)Vim to be drop-in replacements for any IDE. Some of the most basic IDE-functions are absent by default and some (perhaps more advanced) functionality might simply not be attainable at all.
  • I am not interested in anything that remotely resembles a flame war. The community at Lemmy has so far been very kind to me; let’s keep it that way 😜.

Motivation

I’ve had experiences with Atom, VS Code and some of Jetbrains’ IDEs like Pycharm and Rider. While I’ve been generally content with all of them, it leaves a bad taste in my mouth whenever I’m forced to switch IDEs because their lifetimes and/or lack of extensibility doesn’t allow me to responsibly continue using them. As such, I’m interested in a long time investment that will grow as I will. Both Emacs and (Neo)Vim have passed the test of time and I honestly don’t think they’ll cease to exist in the upcoming decades, that’s why I would love to start using either one of them.

Furthermore, Vi(m) keybindings seem to be somewhat ubiquitous and almost any IDE offers some support. As such, improving my Vi(m)-game should only net-positive my productivity (at least eventually). Also, fluency will benefit me whenever I’m remote accessing any random server as they will always have Vi(m) installed. Thankfully, this doesn’t force me to use Vi(m) (or Neovim) just yet, because Emacs offers with Evil perhaps the single best Vi(m) implementation; outside of native Vi(m)*.

My setup:

  • I’m on a custom image of uBlue using their startingpoint as template. For those unaware; an oversimplification would be that it is Fedora Silverblue with some extras.
  • As such, I would like to have my developer environments local and have used Distrobox to that extent using steps similar to the ones outlined over here. But I’m not married to that specific way of utilizing local containers. So please feel free to recommend me something that’s at least as good.
  • If I go for Emacs, then I will definitely rely on Evil.
  • If possible, I would like to use it for C#, Python and Rust. Furthermore, I engage in editing Bash scripts, Dockerfiles, Linux config files, texts written in Latex and/or Markdown and other files written in Nix or JSON. As both are very extensible, I don’t expect any issues, but I might be wrong.

Questions:

  • First of all, does it make sense for me to only consider these two?
  • Can the split between Vim and Neovim be interpreted as the first schism and as such be a forebode for what’s yet to come?
  • Google Trends suggests that Neo(Vim) is ever-popular. On the other hand; not only is Emacs relatively less popular, but its popularity seems to be slightly declining. Should this worry me regarding their long-time future? Especially considering that a thriving community is literally the lifeline for both of them.
  • For those that have used both extensively, which one do you prefer (if any) and why?
  • While I understand that the power of both of them lies primarily in how one can literally make them behave however suits their workflow best. Therefore, the use of premade configs and/or starter kits/distributions should (ideally) only be used either temporary or as a starting point. However, at this point, they provide a decent showcase of what each ‘platform’ has to offer. So:
    • throwawayishOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      11 months ago

      Have you used Spacemacs as well? If so, would you mind offering some more insight regarding either one of them and specifically whatever made you like Doom Emacs?

      • aldalire@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        11 months ago

        I think Crazazy had a good take about Doom in regards to customization. I’ll add that there’s some preconfigured plugins for most popular languages in Doom (complete with LSP) that makes it a breeze to go from install to feeling like home. You just have to uncomment them in the config file and reload emacs.

        And one advantage is that, these plugins aren’t pre-installed, so they don’t load when you start emacs! Which makes doom emacs quite lean and the startup times are way faster.

        • throwawayishOP
          link
          fedilink
          arrow-up
          1
          ·
          11 months ago

          I’ll add that there’s some preconfigured plugins for most popular languages in Doom (complete with LSP) that makes it a breeze to go from install to feeling like home. You just have to uncomment them in the config file and reload emacs.

          That’s actually really cool! Thank you for that tip!

          • aldalire@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            2
            ·
            11 months ago

            You’re welcome! I’m not much of a programmer but I’m very obsessive about my text editors. I’ve tried so many (Sublime, Atom, PyCharm, Jetbrains stuff, Eclipse ((ew)), Visual Studio code, and neovim) but none of them scratches the itch that Doom scratches. I feel like with Doom i’ve concluded my search for the “best” text editor and settled for a highly extensible but also highly intuitive text editor that works right out of the box and can work flawlessly for projects in a lot of the popular languages (I’ve personally used Rust, Haskell, Python and markdown and HTML editing with it). Something I can use forever without succumbing to the enshittification that inevitably lies for most proprietary solutions (end of open source dogma rant)

            Also, pro tip is, when you’re in a project and want to search for a keyword in one of the files in your project, type <space> then slash (/). Super useful and it’s really fast. Welcome to Doom 😊

            • throwawayishOP
              link
              fedilink
              arrow-up
              1
              ·
              11 months ago

              I’ve tried so many (Sublime, Atom, PyCharm, Jetbrains stuff, Eclipse ((ew)), Visual Studio code, and neovim)

              Hehe, that’s for sure a long list 😜. I’m very curious to learn how your experiences with Neovim went in particular and what ultimately led you to prefer Doom Emacs over it.

              I feel like with Doom i’ve concluded my search for the “best” text editor and settled for a highly extensible but also highly intuitive text editor that works right out of the box and can work flawlessly for projects in a lot of the popular languages (I’ve personally used Rust, Haskell, Python and markdown and HTML editing with it). Something I can use forever without succumbing to the enshittification that inevitably lies for most proprietary solutions (end of open source dogma rant)

              Honestly, I think you’ve done a great job at vocalizing my ambitions related to Emacs. From, what I’ve seen so far, I can’t envision any other editor that has as much potential to become my ‘endgame’. Though, I’d have to admit that Neovim’s advancements seem very promising. And I can definitely envision some use for it alongside Emacs.

              Also, pro tip is, when you’re in a project and want to search for a keyword in one of the files in your project, type <space> then slash (/). Super useful and it’s really fast. Welcome to Doom 😊

              Hehe, thanks for the tip! And thank you for welcoming me to Doom 😊!

              • aldalire@lemmy.dbzer0.com
                link
                fedilink
                English
                arrow-up
                2
                ·
                11 months ago

                I still use neovim (mostly vim) for server administration. Basically just a glorified notepad for me, although i am aware of its potential. I’m usually too lazy to set up a dotfile for it so i just use vanilla vim for my home lab when i SSH in :)