I am new to emacs (I made a commitment to getting used to linux) & currently intimidated Can you help me out here?
Has anyone here configured Emacs for:
- Shell-scripting
- Markdown
- HTML+CSS
- Rust
Don’t know where to start (I do know the bare-min basics on using Emacs as a text-editor)
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! 😄
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
Shell-scripting
Isn’t
shell-script-mode
available in vanilla installation? For me it automatically gets enabled when I open.sh
fileMarkdown
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.htmlEglot + various system lsps
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.