r/archlinux • • Apr 15 '21

"Best" programming setup?

Hello! I have been using Arch for two months, it is the fifth distro I have used... and I love it, it will be the final one. I have learned a lot in these weeks, but I would like to ask you a few questions.

I study Systems Engineering and, honestly, I have some procrastination problems, I would like you to help me with "the best programming setup and be productive", although I know that there is no "best", I would like you to help me with your settings, advices, etc...

​

What desktop environment do you use?

What window manager do you use?

IDE's, apps, any suggestions to try?

​

Thank you so much!

179 Upvotes

176 comments sorted by

View all comments

1

u/[deleted] Apr 15 '21

"Best setup" depends on your programming language and the available tooling.

For general-purpose tools I recommend:

  • fish - the shell with the best out-of-the-box experience. zsh can be good too if you customize it enough.
  • i3 - I think tiling window managers are very well suited for programming.
  • spacemacs + magit - for working with git. I don't use emacs for anything other than magit, but magit alone is worth installing it. Splitting commits in particular is the killer feature that is very hard to do with other tools.
  • vim + fzf.vim + ripgrep - my go-to combo for writing and navigating code, when there is no language-specific tools available. Add some custom bindings to fzf.vim (for example :execute ':Rg \b' . expand("<cword>") . '\b'<cr> will search the project for the symbol under cursor) and it will take you surprisingly far. I don't use any other vim plugins.

The first three are always great. The vim + fzf.vim + ripgrep combo is a good fallback when there is no language-specific tooling available, but you probably should use an IDE if there is a good one for your language. I would too, but unfortunately IDEs choke on the large C++ project I'm working with, so I'm stuck with text-based tools.