46
submitted 11 months ago by throwawayish@lemmy.ml to c/linux@lemmy.ml

cross-posted from: https://lemmy.ml/post/9648279

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:
you are viewing a single comment's thread
view the rest of the comments
[-] shmanio@lemmy.world 3 points 11 months ago

I'm a bit surprised that no-one mentioned ALE. If you want to turn vim into an IDE it goes a long way.

Having the compiler warnings/errors inside the buffer is already really useful, but then you can also add LSPs and there isn't really much missing. I've recently developed a Java program entirely in vim using Eclipse's LSP.

[-] throwawayish@lemmy.ml 1 points 11 months ago

I’m a bit surprised that no-one mentioned ALE. If you want to turn vim into an IDE it goes a long way.

That's very useful! Thank you for mentioning that!

I’ve recently developed a Java program entirely in vim using Eclipse’s LSP.

Very interesting! I'd assume one would have to be relatively fluent in Vimscript to pull that off. Would you mind sharing your thoughts regarding Vimscript? I especially feel the need to ask as a lot of other users so far have been championing Neovim with some of them being particularly vocal regarding their dislike towards Vimscript. And would you also be so kind to share your thoughts regarding Neovim?

[-] shmanio@lemmy.world 2 points 11 months ago

have to be relatively fluent in Vimscript to pull that off

I don't think so, using ALE just requires to install the plugin and the external programs that it will interrogate. I know almost nothing about Vimscript.

thoughts regarding Vimscript

From what I've seen it's a scripting language like any other, but one that is extremely specific to vim. The syntax is also quite different from anything else, so I never felt the need to learn it.

Neovim

As a general concept, it seems a good idea, I also know Lua so it would seem to be a logical switch for me.

However, during these years every time I tried it it had some slight differences from vim that made using it somewhat annoying. Moreover, it never seemed to provide such a better experience that made me switch permanently. I'd like to like it, but I never had a reason to.

[-] throwawayish@lemmy.ml 1 points 11 months ago

I know almost nothing about Vimscript.

This is actually good news as it means I shouldn't have to learn a new language to engage with it.

However, during these years every time I tried it it had some slight differences from vim that made using it somewhat annoying.

Interesting. Would you mind elaborating upon those differences?

[-] shmanio@lemmy.world 2 points 11 months ago

Honestly, I don't even remember. It was something to do with minor differences in the cursor movements of specific commands.

Anyway, it's been years, anything may have changed in the meantime. I should probably give it another go, those were simple nitpicks that I was too impatient to tolerate.

[-] throwawayish@lemmy.ml 1 points 11 months ago

Thank you for sharing your thoughts and experiences. Cheers, mate.

load more comments (1 replies)
load more comments (1 replies)
load more comments (1 replies)
this post was submitted on 23 Dec 2023
46 points (91.1% liked)

Linux

48349 readers
444 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS