Hacker News new | ask | show | jobs
by goblinfoblin 4670 days ago
The starter packages like prelude and emacs-starter-kit are more like a learning to walk with a crutch when you have perfectly working legs. They offer an easy way to start but once you start using them you'll find it hard to do it the normal way (like when you need to modify your emacs config or add some new elisp that isn't included).

It is better just to start emacs do C-h t and start learning, then add and configure when needed. You'll need to start out rough but after a while you'll learn how emacs works and be a better emacs user because of it.

Though if you don't invest in emacs and just need it to finish your thesis or because a professor won't let you use anything else then the starter kits could be fine as they are pre-configured.

2 comments

I might be biased (I'm the author), but I don't think that emacs-starter-kit prevents you from doing things the normal way. You can still modify your emacs config and include vendor elisp, and ESK doesn't make it more difficult.

And with the tutorial - I have a pretty low opinion of it. I mean, it starts out talking about how to navigate up and down one screen - who cares about that when they're starting to learn a new editor? Who? Emacs already has a reputation for being obscure and difficult, and the tutorial does not help.

This frustration isn't directed at you, of course - I appreciate the comment. In general, though, I think that Emacs instructions would be better if they had a little more empathy for the learner. As a new person, I don't care about hearing all this magical stuff about emacs right off the bat - I can't even make sense of it because I have no context. Just show me how to actually do real work.

Yes, original tutorial and Emacs configuration is a bit obscure, for historical reasons. That's understandable.

Another thing I struggled with was some hints how to actually write and structure your own configuration files. For example, is it good to use the configuration inside Emacs? Where this section should go into the config? I had issues figuring out how to load packages etc. In what order should configuration be specified? What if I use multiple computers, can I share parts of configuration? Etc.

Similar for keybindings. What keybinding can I use for my private stuff that are unlikely to conflict with other things?

That was kind of my point about the rough start, you won't get emacs to do the real work without putting time into figuring out how to get it to go.

The tutorial is more of a get you started and make sure you can actually edit text in emacs.

The most important parts of the tutorial are the how to save (which most people get to) and getting more help which is probably what people don't get to or understand. It isn't the best thing but it is okay if people make it through the end.

But you're right if you don't want to mess with your editor and `learn` emacs go for a starter kit or go for another editor with bells and whistles included.

"That was kind of my point about the rough start, you won't get emacs to do the real work without putting time into figuring out how to get it to go."

I disagree. It's not true for most IDEs, why should it hold for Emacs? This argument was also raised about Linux, but then Ubuntu came along and proved it was wrong. This seems to me like a religious stupidity - you have to use it for everything or it won't work at all.

My main motivation to use Emacs is org-mode and Common Lisp. That's already real work; although I try to use Emacs for everything, but using it for just one of these things would be perfectly valid use case for many people.

It's not that I wouldn't like to mess with the editor either; in fact I did a lot. But it still was not enough for it to work decently. I will have to try one of the starter packages yet (probably Prelude), though.

I don't have problem with Elisp. That's actually lot easier than what IDEs offer as a way of customization (Java?), and that's one reason I am interested in Emacs :-). What I don't like is the transition period where I am not set up properly. It doesn't quite feel like learning, but rather reinventing the wheel.

And I don't have big requirements either - I just need some sort of project management (being able to work with multiple files), grep, diff, syntax highlight, ability to indent/unindent and comment/uncomment block on a hotkey, more sane undo and maybe a little bit of completion and language documentation integration.

I can program in Notepad++ and be happy. So if it would be configured to do what that is doing out of the box, great.

Another problem I have, when I want to rebind a key, how do I figure out what keys are used and in what modes? Is there a way for the system to give me a suggestion for a key?

Invoking the help system by typing C-h b (the command "describe-bindings") will open a new buffer showing all the keybindings in effect in the current buffer. Picking an unused binding to your liking is a matter of scanning the list.

The Emacs help system is a marvel and an astonishment. It's the second thing to explore after running the built-in tutorial. And it's the first thing to master.

Don't neglect the hyperlinked, highly navigable Info Manuals, which you read right within Emacs. They are among the most literate technical documentation I've ever read.

Yes, I am aware of all that. Still, there can be various modes in effect, so it would be nice to have a function that would do a pick (that would work in all modes) instead of me scanning the list all the times.

Also, it would be nice if I could easily remap all keys with the given prefix. Maybe someone wrote library for these things already, I don't know.

C-h b - describe the key bindings for the current binding

C-h f - describe a function

C-h k - describe a key binding

The help system in Emacs is wonderful.

> The help system in Emacs is wonderful.

Agreed. Plus the often maligned GNU info is actually good when you're browsing from within emacs.

More good help:

C-h i - Browse GNU info

C-h m - "describe-mode": Gives keybindings and help for the current major mode and all the active minor modes.