Eglot + various system lsps
Emacs
Our infinitely powerful editor.
Shell-scripting
Isn't shell-script-mode
available in vanilla installation? For me it automatically gets enabled when I open .sh
file
Markdown
https://www.emacswiki.org/emacs/MarkdownMode
HTML+CSS
Haven't written these in a while, but I expect there will be modes for them
Rust
https://github.com/rust-lang/rust-mode?tab=readme-ov-file#melpa
And in general:
https://www.emacswiki.org/emacs/InstallingPackages
and
https://www.gnu.org/software/emacs/manual/html_node/emacs/Customization-Groups.html
I use org mode for everything. org-babel let's you embed code and execute it in the document or tangle code blocks into external scripts.
Spacemacs
I second looking at System Crafters' resources. One thing that helped me was their emacs from scratch video series.
And as a heavy Markdown user, I initially built my config around Markdown. But several years later I've found I now use org-mode almost exclusively instead. They both fill the same niche in my workflow, but org-mode can do a lot more.
Base Emacs 29 will do a lot for you in those areas, especially with rust-ts-mode (Treesitter powered Rust mode), Markdown mode, Company (a completion tool), and Eglot (lsp server client). I also recommend adding Which-Key to help figure out the bindings in different modes. Built-in eshell is great for scripting / terminal needs.
For a kickstarter config, System Crafters' is pretty nice and will mostly keep you to built ins with good documentation of why they chose things. https://github.com/SystemCrafters/crafted-emacs/ and they have a Rust example config using their modules in their examples.
Doom Emacs and Space Emacs are cool too to show some possibilities and get a full featured ide earlier, but there those setups due add their own learning steps.
I used to maintain my own Emacs config, but I switched to Doom years ago and never looked back. I appreciate the community aspect that lets it be better integrated and tested than I had time to manage on my own.
I use it as my primary environment for everything you mentioned and its excellent. The initial setup is fairly easy too.
And because it's Emacs, if there's something you don't like, you can change it! 😄
Hmmmm, I'll give it a shot😅 After a long while with DoomEmacs, I'll probably attempt at creating my own configs & share it here in this community.
Now that we're here, how about Spacemacs ?
Cool! Give it a go! Do you know about the Emacs Wiki? It was a pretty good resource many years ago when I had my own config. Not sure how it is these days though, but you might find some useful stuff there.
As for Spacemacs, I never got into it. At the time I found it more complicated than my own setup and a bit more confusing. I know a lot of people liked it though, and it was the first starter kit I'm aware of that really took off, so it might be worth a look!
Hello! Welcome to Emacs!
Contrary to the other commenters, I would suggest starting with an out-of-the-box Emacs and only adding the things you need, as you need them.
As for your question, could you provide more detail about your expectations?
In the absence of it, I'll give you some generic responses:
- Shell-scripting: Emacs should support this out of the box
- Markdown: There is a popular package that provides a major mode
markdown-mode
: https://github.com/jrblevin/markdown-mode - HTML+CSS: There is a major mode
html-mode
that is included by out of the box: https://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html - For language support, the response will depend on your needs/expectations. If all you want is highlighting, it will probably work out of the box. For advanced features, you'll need to look at Eglot or something like lsp-mode
If you're new(ish) to Emacs, I would strongly suggest using a kit like Doom Emacs. It sets up some modern defaults, and makes it far, far simpler to set up a good environment for whatever languages you want. And the wonderful thing is that you can keep using Doom!
Are you sure a newbie-like me should be using doom-emacs ?
Yes. It makes configuring Emacs a whole lot simpler than vanilla Emacs.
Yes, you should absolutely go with DOOM Emacs.
I'm also an Emacs newb (been using it for 1 year). DOOM made getting into Emacs actually approachable.
Good luck on your journey!