reddit / emacs
Trying to learn Emacs after using vim for almost 3 years
hands0m3dude · 2022-05-09 18:21
Hi! I've been using vim for editing my Linux config files and vim and vscode for writing code. But I'm disappointed in vscode not being FOSS and I don't like vim that much for developing bigger projects cause I think it can give you headaches. So now, I'm trying to learn Emacs and absorb enlightenment from the wisdom of Stallman and the light of Emacs. But the problem I have with Emacs is it not being minimal. Could I delete all those Tetris and doctor stuff? Why would I need them and why are they there anyways? Shouldn't they be considered bloatwares installed on top of Emacs?
Yeah I know you might think that I don't know what I'm talking about and I should inform you that I'm totally newbie in Emacs but can somebody help me to understand it please? I think you don't need many of the stuff that are there. Can I make it more minimal or maybe delete some of those stuff from it?
And another thing: It would be very kind of you to introduce me to a roadmap or a start point where I can begin my Emacs journey.
nv-elisp · 2022-05-09 18:32
> But the problem I have with Emacs is it not being minimal. Could I delete all those Tetris and doctor stuff? Why would I need them and why are they there anyways? Shouldn't they be considered bloatwares installed on top of Emacs?
None of that code is loaded unless you explicitly load it. It takes up a negligible amount of disk space. It currently ships with Emacs. You could take the time to delete it and suffer no ill effects, but it's really not worth the time.
As far as a roadmap for learning Emacs:
- Install Emacs
- Run through the tutorial several times
- Set a goal (Learn to use info to read the built in manuals? Install a package? Enable a mode? etc)
- Do some research to see how that is accomplished (not asking people to spoon-feed you the answer)
- If you're actually stuck after trying that, you'll be able to ask a much more pointed question
- Repeat as necessary.
Horrih · 2022-05-09 18:36
Vscode is not FOSS but Code-OSS is. Code-OSS is to vs code what chromium is to chrome.
You are right, emacs is bloated with features you don't need, and that's been joked about for 3 decades. But that's not the reason why so many users love it.
Reasons to switch :
- it's extensibility is unrivalled,if you're willing to learn a bit of elisp
- killer feature 1 : org mode, for notes, calendar, tasks and stuff
- killer feature 2 : magit, an amazing text git client
The package ecosystem is quite developed like vim's, but not as used as vscode's so the general experience needs you to delve a bit in each package.
I recommend to you the amazing emacs from scratch YouTube series from system's crafters
weevyl · 2022-05-09 19:05
i would just take it step by step. Start using it for editing your config files and take the time to become comfortable and familiar with its editing and windowing capabilities. Once you are comfortable with that, start using other features. Every time you leave Emacs to do something, see if you could have done it from inside Emacs.
The path I took (a long, long time ago) was:
1. file editing
2. window management.
3. file management (dired)
4. org mode for task management
5. org mode for note taking
followed by many, many specialized packages for different uses.
I would not recommend using Emacs as an IDE for a beginner. There's a lot of configuring to do in order to get it just right and frankly, I don't think that's worth the effort.
notperm · 2022-05-09 19:06
The entire /lisp/play directory, where doctor and tetris and all other 'fun' stuff that comes with emacs takes a whopping single megabyte of space, and that includes their elisp source and their respective byte-compiled files. You can delete it if you want but it's pointless except for saving that literally one megabyte of space. It's not like any of that runs unless you explicitly run it.
I want to say that there isn't a magic answer to learning how to use emacs but there absolutely is and it's already built into emacs - it's the emacs help system! Press C-h i in emacs and click on 'Emacs' under the heading 'Emacs' and read the manual. I suggest getting started in the 'Help' section. Emacs has an incredible help system and learning how to use it first will pay off huge dividends long term.
There are also three different Beginner's Guides to Emacs linked in the sidebar.
wrapitupandkeepit · 2022-05-09 20:03
I also just started using emacs and came from vim. Here are 2 things that really helped me right out the bat:
1. `M-x project-switch-project<CR>`
* When you first do the tutorial, it'll tell you to open a file with `C-c C-f` which is fine and well, but sometimes you want something like `:find` in vim which, combined with `set path+=**`, will just find files that you want to edit so conveniently.
* When you have a project set up in emacs, you can find files just like `:find` but also do things like use `grep` and look at your directory structure
2. Using the help docs: vim has `:help` and emacs has `C-h`. Now, because emacs has a lot of prefix commands, sometimes you want to know what options are available to you. Here were some very useful help commands for me:
* `C-h k`: command-describe-key by putting in a command sequence
* `C-h m`: will provide commands available in the major and minor mode that you are you. Super useful because what mode you're in will affect what commands are available to you.
* `<prefix>-?`: Try `C-x ?`; you'll see all of the commands that will start with `C-x`. This is helpful because sometimes you'll need 2+ Ctrl or Meta commands and it's so easy to forget. You'll remember some prefix but forget the rest. Type `?` to look at the options available to you
edit:formatting
DrPiwi · 2022-05-09 20:30
>I'm trying to learn Emacs and absorb enlightenment from the wisdom of
Stallman and the light of Emacs.
Learn Emacs, but always keep in mind that it is an editor, a tool. There is no enlightenment, not from the "wisdom of Stallman" and there is no "light of Emacs" It is a good editor but one that does things differently from what is considered normal, just like Vim.
>But the problem I have with Emacs is it
not being minimal.
It is not minimal, compared Vim, but it certainly is not a behemoth full of bloatware either. Those games are old and take what, two or three megabytes.
If u are used to using vim then use viper, it allows you use vim commands in Emacs and gradually switch over as you start knowing more and more native Emacs commands.
It is either that or just go cold turkey and stop using anything else and work yourself through the tutorial and learn to use it as fast as possible.
00-11 · 2022-05-09 20:51
> introduce me to a roadmap or a start point where I can begin my Emacs journey.
Start with Emacs Wiki, [Learning Emacs](https://www.emacswiki.org/emacs/SiteMap#LearningEmacs).
That in turn will introduce you to the Emacs built-in tutorial, help commands/keys, doc, etc.
BunnyLushington · 2022-05-09 20:51
>So now, I'm trying to learn Emacs and absorb enlightenment from the wisdom of Stallman and the light of Emacs. But the problem I have with Emacs is it not being minimal.
When the student is ready...
Minimal is not always what you want; sometimes monolithic programs are indicated. You might understand Emacs a little better after reading Gabriel's [The Rise of "Worse Is Better."](https://www.jwz.org/doc/worse-is-better.html)
straynrg · 2022-05-09 20:53
I think installing "doom emacs" instead of vanilla emacs is a good starting point. You can just activate the functionality you need and have an amazing development environment. I am mainly using it for python development, for writing my thesis, for debugging with realgud. And for mails atm. From there you can start digging deeper
akirakom · 2022-05-09 22:16
I switched to Emacs (via Spacemacs) after 6 years with Vim, and I am sure Emacs has advantages over Vim in some aspects. The biggest difference is probably mindset. People in the Emacs community are generally calm and not in a hurry, possibly because Emacs is designed to let you learn it for youself. On the other hand, Vim seems to be more popular among web developers, who like to do fancy things fast.
This does not mean people in the community are not hard-working. There are some people working hard to make it better, and there are decent learning resources (like from System Crafters). You can also use it for web development. It's just that Emacs allows more variance.
ThorstoneS · 2022-05-09 22:28
If I hear the word "bloatware" with respect to Linux (and Emacs in particular) one more time then I'm going to scream\*.
\*Or go out and have a robust word with some of them youtube influencers who think they are Linux experts because they installed 365 different Linux distributions in one year, or whatever their credentials may be.
ThorstoneS · 2022-05-09 22:38
Emacs is as minimal as you want it to be in your config. There is indeed a lot of stuff that comes with the main install, but that is not "bloatware", see it as demos what can be done.
Emacs is not an editor, it's a Lisp Engine, which is also a text editor. And some of the more excentric features were mere showcases what could be done. Being able to implement something like Tetris or Eliza (which is what the Doctor was based on, google Eliza and Artificial Intelligence MIT for a history lesson) in a freeform environment like Emacs was revolutionary at the time. See these features as demonstrations and tutorials, rather than serious features.
ThorstoneS · 2022-05-10 07:41
OP used the word "bloat" in the original post. I assume Doom Emacs will be anathema to their belief system /s
hands0m3dude · 2022-05-10 08:32
Thanks! But what is a lisp engine? (Yeah I have google it but found no answers)
hands0m3dude · 2022-05-10 08:35
So you mean after spending some time configuring Emacs, I wouldn't be able to comfortably write code in it and expecting it to work without worrying about re-configuring it again? What I'm expecting from it is to be a nice IDE which you can rely on and set it up yourself.
akirakom · 2022-05-10 08:53
Then you can try out Doom Emacs instead, as someone else mentioned. However, Vim does require some time configuring it as well.
hands0m3dude · 2022-05-10 09:11
So would you, as an experienced user, try to configure Emacs and use it as an IDE? I love it being so extensible and from what I have seen so far, if you configure it the right way, you'll have a pretty productive environment for doing most or all your coding stuff in there.
Hagge5 · 2022-05-10 09:47
He more or less means a fancy lisp (the language emacs uses) interpreter, with a text editor built on top of that. It doesn't have to be used as a text editor, it supports any glyph based UI with enough configuration, including, say, Tetris.
MrTinyToes · 2022-05-10 15:28
I use Emacs as my daily driver IDE, but setting it up isn't the first thing I'd recommend, as it can be a little confusing with all the packages.
Try and learn basic navigation within buffers, i.e. `C-p`, `C-n`, etc.
Practice copy/cut and pasting using yank and kill.
I found, when I started out with Emacs, that the key binds really improved my workflow; no more back and forth between the mouse and keyboard.
That being said, there are "easily" configurable packages that interact with language servers in order for syntax highlighting, error popups, etc to work. I use `eglot` because it is simple and integrates nicely into Emacs, but `lsp-mode` is another popular package. You can get auto completion with `company`, but you might need to config what backends it uses.
MrTinyToes · 2022-05-10 15:31
There's nothing stopping you from not updating packages, or even not updating Emacs at all. Just download and use it, create the environment you like, and it will stay that way unless you change it.
[deleted] · 2022-05-10 16:33
[deleted]
weevyl · 2022-05-10 17:10
It's something I approached very slowly. For several years it was text + org mode for most of my use. Whenever I was in full language programming mode I would switch to a full-fledged IDE.
Only recently did I start using it as an IDE (eventually got it supporting Scala and sbt) and even that was piece-wise. First I just wanted to be able to navigate and read code, then I wanted to compile, then I wanted syntax checking, etc. Until I got something that works well as an IDE.
Once you get there it is very nice, especially being able to switch to your other emacs applications easily. For me, for example, I like it that now I can switch from scala development to opening a terminal and creating/deleting directories without having to reach for a mouse, something I could not do with IntelliJ
hands0m3dude · 2022-05-10 18:14
WOW! So you switched from IntelliJ to emacs! That's a hell of a transition!