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?

1 point

I use intellij too. And I learn helix since few weeks.

I feel that not the same usage and I can imagine that I could use both of them for what they are good for.

permalink
report
reply
1 point

Thank you all for your time and valuable input ! I’ll be trying out vim and learn a few key bindings then move on to emacs and see what I can do. I’ll then try out premade configs like doom and spacemacs and see or the neovim ones and settle on one that has the stuff i want.

permalink
report
reply
0 points

The problem with IDEs is that they are less than the sum of their parts.

There are no old Emacs users on the internet because their fingers are no longer capable of typing. Unfortunately, most other text editors use keybindings reminscent of emacs.

Neovim doesn’t offer much value over classic vim, and is much more prone to being outdated on some random system you might use.

Don’t put too much in your .vimrc, since then you’ll have trouble when you move to another computer. I can survive with just 3 lines in my .vimrc (easy to memorize), with a 4th likely:

" because I hate default <Esc> location and behavior
set virtualedit=onemore
nnoremap <CR> i<CR>
inoremap <CR> <C-O>:stopinsert<CR>
" If you press it fast enough, don't break undo.
inoremap <CR><CR> <CR>

That’s not all I end up with if I use vim extensively on a single system, but the other stuff can be added as I get bothered (line numbering, tab behavior, TTY title, backups, undos, modeline, mouse, search, wrapping)

(admittedly I don’t bother with LSP integration; if you rely on that you probably need more)

permalink
report
reply
1 point
*

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.

permalink
report
reply
2 points

Good points ! Thanks !

permalink
report
parent
reply
1 point

I’ve spent most of my career bouncing between vim and emacs, but also trying out the new thing as it came out along the way (sublime, atom, IntelliJ and the variants, vscode, even eclipse for a while).

In general, the out of the box IDEs are powerful but walled in and I’ve always felt that it was a trade off that didn’t fit for me.

Emacs was my main for a long time because it’s not really a text editor, it’s a Lisp REPL; meaning you could modify it in place to do basically anything you could ever want. I have an emacs config large enough that it has its own repo now.

That said, I think that the recent introduction of Language Server Protocols (LSPs) have really changed the game. They basically provide much of the power from the walled in IDEs and give it to any editor willing to write an LSP interface API.

Providing your editor supports LSPs, I think ergonomics of editing is more important than ever. Find something comfortable and just stick with it. Today I’m using helix-editor because I love the editing model and LSP support is giving me the vast majority of what my old emacs config was intended to do.

permalink
report
reply
1 point

Thanks for the advice !

permalink
report
parent
reply

Text Editors

!text_editors@programming.dev

Create post

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

Community stats

  • 1

    Monthly active users

  • 16

    Posts

  • 90

    Comments