Just to add: the built-in "Introduction to Programming in Emacs Lisp" is also really really great. I have been using emacs for a while, with one framework or another, but always hesitated actually learning lisp. I was too focused on learning the kinds of languages and systems that might get me a job, and it felt like too big of a venture in learning a whole language just for my development environment. Now, I have a given up on the employable thing, and have been enlightened by SICP and lispey languages, and in general, the simple beauty of Emacs itself, not just what I can make it do. It takes only a little time to get comfortable with the nested (), and weird vocabulary, and it just really will click with you at some point, how simple it all really is, how every function bears on the simple syntactic principles of the language as whole, its lists all the way down!
You can see the language work, by looking at the code.
It may not get me a fancy computer job, but I think I am happier on the whole anyway, giving myself to lisp. Something therapeutic about it.
> ... and have been enlightened by SICP and lispey languages,
Fun anecdote: I've got my copy of SICP signed by both authors for Sussman invited me to have tea in his office and when I arrived the next day, by sheer chance, Abelson was there too! They joked that had I been there 30 minutes early Sussman's wife, who proofread the book, would have signed it too! I've got a cool pic taken at that moment: me standing along these two legends and proudly holding the purple book... I'll post that pic and full story the day I have a blog.
Besides that I pretty much live inside Emacs. The occasional elisp (3000 lines of custom elisp hackery over the decades) and lots of Clojure/ClojureScript.
> had I been there 30 minutes early Sussman's wife, who proofread the book, would have signed it too!
I have thought that J Sussman not only proofread the book, but also came up with some of the problem sets and tested many of them: she worked through the book, not just a matter of spell-checking.
But I don't know.
In any event, SICP changed my world in a good way. Very cool that you got both authors to sign a copy!
Wow so cool! I have been working through it with just the HTML version, but recently resolved to get the physical book, its just one those I gotta have.. Then, one day when I have the money, I will get the full volumes of The Art of Computer Programming by Knuth.
>It may not get me a fancy computer job, but I think I am happier on the whole anyway, giving myself to lisp.
I am the same way. I have been using Emacs since 1995, but have never had a full-time programming/IT job (although my tech skills have always been integral to my career). Perhaps having the luxury of not having to write code for pay is what makes me want to instead slowly learn Elisp. I read email using VM on Emacs (also since 1995), and over the last few years I have broken out of just knowing enough to maintain Emacs' dotfiles to actually writing substantial routines that expand on/fix VM and Emacs's capabilities.
Don't use the quotes for the phrase, just type it verbatim. If that still doesn't work then either the info page isn't installed (weird) or something else is up. You can also, from the first info page at C-h i, type "C-s emacs lisp intro" which should bring you to it. And again, if it's not there then something is wonky with your install.
So the only thing I can find is that for emacs before emacs 21 it was not included (I didn't know that, I guess I installed it through my package manager or some other means back then and forgot). After that, it is included by default. But you can check to see if your package manager includes a separate `emacs-lisp-intro` or similar package. Short that, you'll have to download it from the site and install it manually to see it in emacs or just use the HTML version.
I found it on my Mac in the menu bar. Like the one at the top of the screen next to the Apple logo. Clicking with my mouse: Help > More Manuals > Introduction to Emacs Lisp.
I assume in Windows/Linux this would actually be attached to the window frame at the top.
Something must have clearly gone wrong with the install (or perhaps there is a minimal install version...?) If this were Gentoo, I would suggest that perhaps the "doc" USE flag was not enabled?
Another lesson I learned from almost 2+ decades of using Emacs:
Track your customizations in a version control. Using customize package and reading the diff in dot Emacs file has taught me quite a bit about certain aspects of the package.
Side note: It would be awesome if Emacs could do the versioning as part of saving the customizations - build Emacs with libgit2 and make it a native git client.
The customize interface is quite useful. It's probably more adequate if you don't have a huge intricate init. With time, custom.el (or init.el if you keep everything in the same file) can get difficult to manage. When that happen, a lot of people opt for something more readable and human friendly, like use-package or a distribution such as doom-emacs.
The author mentions that some things can be hard to do outside of the customize interface. That is true. When that happens, I just use the interface and then move the setting from custom.el to use-package. But that's rare, I can't remember the last time I did that.
Yes. Also, don't put your own stuff in init.el. Put your own stuff in another file, and load it with load-file from init.el. This massively decreases the chances that Emacs will make a mess when it adds or updates its own stuff.
You could probably write it. Emacs is able to track which settings you've _applied_ but not yet saved; that could serve as the linchpin for generating versioned changes.
for a reason I forgot my .emacs.d/ ("hidden" dir) is a symlink to emacsdotd/ (not hidden) and, yup, it's in git. Some are going to say: "why stop there!? version your entire user dir" and I can see the appeal (but haven't tried yet).
I'm one of those who track everything Emacs: including all the packages. When I upgrade packages, I first check that nothing broke then I commit "Bump avy to 20220114" or whatever. This way I can easily share the exact same config on several machines/several user accounts and I know I can easily roll back to a known fully working setup. YMMV.
It's because it was not a thing in Italy, so accepting it was seen as the sign of being out of touch with "real pizza" traditions. Sadly, a natural reaction of disgusted rejection by Italians has been adopted by snobs all over the world.
Nowadays you'll find it even in Italy, because tourists demand it and they pay hard cash, so fuck it all anyway.
I would take what a "Austrian-born Hindu monk and professor of Anthropology at Syracuse University" says on the history of a traditional staple of my own country's diet with a massive grain of salt.
Pizza existed before Italian migration to North America was even a thing. It gained tomatoes when they became more readily available and better known in the early XIX century, and that's about it. The explosion in Italian migration happened later, by then most of the traditional pizzas had long been codified.
I have tried to find the roots of this "pizza effect" myth, but all I could find is somebody making a point about mindfulness meditation and yoga, and I am not even sure how it holds up WRT yoga, because Indian yogis who do not-Western yoga are still a thing.
WRT pizza, it's clearly false. Pizza was a thing in Italy before World War II and it spread through Europe from Italy, not from the USA. You can trace the history of many pizzerias in Italy back far further than the "pizza effect" would have you believe, so you can easily de-bunk it by going to the web site of a pizza place in Napoli.
Agreed, it’s false. Pizza in Italy (and in the rest of Europe, for that matter) is very little like pizza in the US.
Amusingly, however, while it’s influence on the food itself is at the very least debatable, the influence of the US on how pizza is consumed is in fact very real: the fact that Italians nowadays drink beer with their pizza is something they learned from American GIs in WWII who brought the practice over from home.
Before that time, there was no overlap between Italians who drank beer (Northerners) and Italians who ate pizza (Southerners). Thanks the American soldiers Southerners learned to drink beer and Northerners learned about pizza.
People who discuss the pizza effect are well aware that it started in Italy. The interesting “effect” part is that the version that is popular now in Italy was heavily influenced by the development of pizza in, largely, New York, by Italian immigrants. It was re-imported back into Italy. It’s a cautionary tale for people who fret about cultural appropriation and a reminder that the idea of the “original” or “authentic“ version of something is often more complicated than we imagine.
One of the most popular if not the most popular versions of pizzas in Italy is the pizza margherita (and in fact a lot of pizzas are just margheritas with additional toppings).
Pizza margherita existed in the I̶X̶X̶ XIX century already in its modern form.
Thought so, but wasn’t sure. I was fond of the pizza effect story, and am holding on to the hope that it’s at least partly true. But you supply a powerful counter-fact.
I don't like fruit as part of a main course (i.e. not a dessert) or appetizer. That doesn't make me a snob, it just means I don't think fruit belongs there and don't appreciate when it is.
Not the person who said it first, but I dislike all of those things except lemon[1]. In addition, my wife likes cranberry preserves with poultry and applesauce with pork, both of which I find distasteful.
However pineapple with anything savory is by far the worst for me. I prefer to not even sit next to my wife and kids when they are eating pizza with pineapple on it because the smell from it is enough to throw the taste off.
1: Okay, there are some sauces that technically have some orange or orange juice in them, but have so many other ingredients that it really just adds the tiniest hint of tangyness. but e.g. duck a l'orange is too much orange for me.
This is the first I've heard as it being some kind of "it's not traditional" argument
Everyone I've ever talked to that has an issue with it just think it's gross. And they're usually people that are not very big risk-takers with their tastes, and order the exact same item at a restaurant every time they go. And only want either cheese pizza or pepperoni.
I fail to see the problem with this. Especially when it's products made from animals that eat the grass around that place. Or anything soil-dependant really. Wine is very different depending on where it comes from.
It's easy to poke fun, but DOP isn't just about region and it does matter, at least for many things.
I don't know that "you can't call it X" is the right approach, but there should be some really clear to consumers way of saying "X was made to a particular standard" vs "all bets are off with Y" - then let them decide.
Well in South Africa we have a sausage called boerewors. My understanding is that you can only label it boerewors if it has certain specific percentages of certain specific fillings. Anyone can make boerewors and call it boerewors, as long as they stick to those ingredients and percentages.
Things that fall out of those ranges are simply called wors. Similar to the difference between a pork sausage and a pork banger.
I feel like it's probably because a typical American pizza has savory toppings, and pineapple is unusual in that respect. At least, that's why people around me complain about it. The Italian pizza ship sailed a looong time ago.
There are lots of things which are non traditional but good on pizza.
Fish and chips for one.
Curry wurst.
Apple, persimmon, pine nut and blue cheese.
Halloumi, pea, and mint.
Mushroom, goat cheese and chipotle.
Cranberry and white pudding. (Or cranberry and goat cheese)
Christmas dinner. (Turkey, stuffing, ham, cranberry).
Pulled pork.
Roast pineapple and mint.
Bacon and egg.
Berry and cream cheese.
Salmon and cream cheese and wasabi.
I have been known to make specific dinners in order to have the leftovers to put on pizza.
My first job was a pizza place where we had "Pizza of the Month" deals which were unusual pizza's. Street taco pizza? Amazing. Thanksgiving pizza? Amazing. Spicy honey + fresh mozzarella? Amazing. Baked potato pizza? Amazing.
Just gotta remember to not use tomato sauce for some of those.
If you find yourself near Slade, KY, you might find Miguel's worth a visit[0]. Their list of toppings and sauces is extensive, in part reflecting that it's anything in the kitchen that might reasonably be a pizza topping, salad component, or breakfast burrito filling. Hell, they'll put rotini on your pizza if you want, since they have it on hand for people who prefer pasta to pizza as their dinner substrate.
I suspect you could experiment to your hearts content for a long while there.
[0] It's unlikely that you'll "find" yourself in Slade without already knowing about Miguel's.
There was a food truck at Cornell when I was there, Hot Truck, an institution on West Campus for late night food. They had a bunch of French bread pizzas, referred to in initial code. PMP (poor mans pizza), WGC(white garlic and cheese) and the always interesting WTF (chefs choice).
I feel that if it plausibly goes with bread and cheese, or if it’s street food, then it will probably work on a pizza.
Yeah, no tomato for most of mine. Though fresh sliced tomatoes are a common topping.
They honey pizza reminds me of a pizza I got from a vending machine in France a couple years back, I think honey and chevre. There was this vending machine outside a pizza joint that would cook a whole pizza for you in about 5 minutes, presumably from cold preprepared pizzas.
How often are the same people as vociferous about disliking pork chops & apple sauce, chinese bbq, etc. ?
It's seems a pretty silly thing to get worked up about. There are vastly more egregious slights to the good name of pizza in nearly every american frozen food aisle, after all.
I think that pineapple topping on the pizza meme is designed by pizza elitist to fool normal people from trying it out. Once you try pizza with pineapple toppings, it gives this extraordinary taste. Sweet, sour and salty. All at same time!
Just like a good salad, a pizza has 6 things: salt, crunch, fat (cheese), acid (tomatoes), sweet (pineapple/mango/fig or a stewed sweet tomato sauce) and umami (Parmigiano Reggiano/Grana Padano/etc or anchovy). But not all 6 in every bite.
Most Americans use a fairly sweet pizza sauce. Adding pineapple to that makes it too sweet. But I like my sauce with more tomato acid, so a little bit of fig or pineapple complements the flavours. The nice thing about pineapple is that you don't get it in every bite like you do with a sweet sauce.
Edit: and now I sound like the pizza snob. :) It should be 7 -- good pizza has both crisp and chew.
Most americans use a fairly sweet everything. God even their barbecue is full of sugar. I have the impression the whole country is sugar addicted. I'm from a culture where mixing salty and sweet stuff is considered abhorrent (south america), I could not find a single food I liked in the time I spent in the US (except desserts), and was soon forced to cook myself or I'd barely eat at all.
It gets added to pretty much every prepared food here whether you like it or not. Even "staples" like bread have sugar added even to the "healthy" brands. It's easy to get addicted when it's difficult to avoid unless you cook every meal at home from scratch. (And even then you have to be careful because some ingredients have sugar added to them.) There are many of us that don't like the situation but once you're addicted your tastes change and when everything around you keeps sneaking it in it's hard to eliminate from your diet.
Most people in Europe especially, and especially in Southern Europe (Eastern Europe as well, but that's less relevant to pizza), tend to dislike sweet-and-salty combinations, with some limited exceptions (such as carrots or peas).
To be fair when I push the meme I do it because I personally dislike Pineapple, I sincerely don't care what people put on their personal pizza, just don't put it on mine. Counter, I have enjoyed Brussel Sprouts on pizza and I feel that is a much bigger sin.
This meme is so popular because the overwhelming majority of people thinks pineapple on pizza is a disgusting abomination. I empathize with you, it's tough being the contrarian sometimes. I say that as someone who likes the Star Wars prequels :P
There is definitely a silent majority of people who love pineapple on their pizza. My local pizza guy tells me Hawaiian is one of his top selling pizzas.
Those that like pineapple on their pizza just don't speak up because they don't feel the need to be harassed over their pizza choices.
If think the joke is that author himself don't side with the (mostly pointless) debate about pizza and pineapple, so whatever your own opinion, you can see his point.
Hawaiian pizza (cheese, ham and pineapple) is normalized here in Canada. I'm not personally a fan, but I have always had a hard time finding it unusual.
I agree. when they added those things I immediately turned them off and never looked back. the author argues that they are just a couple lines..but they are a couple lines of useless noise
Maybe it's me, but starting out with Emacs the previous month, I tried using Doom Emacs the other week, and the number of packages it was being used frightened me. Building your own init.el is much much better, because you know your Emacs in and out, and dont have random keybindings triggering stuff. Maybe I'll never get the popularity of Doom
Some people like ready made Emacs distros, some people like hand coding their init.el (don't forget your early-init.el!) Some people like Arch, some people like Ubuntu. Some people like Linux From Scratch, some people like typewriters. Live your life, be free.
It sometimes seems to me that there's this idea that unless you're customising Emacs and gaining complete understanding and mastery of its primitives, there's no reason to use it over another editor. As if the core editing experience is so horrible, why would you go through all that if you're not going to use the superpowered bits? I think this is doing a big injustice to how good most of Emacs and the packaged up versions are, even without a line of elisp.
> ... don't have random keybindings triggering stuff.
As a long time Emacs user, I feel that this is slightly unfair. When I first started out, I found that my documents from Emacs were far more common than in other editors. It took me two years to realise that I was often bumping C-t where trying to hit C-r or C-y and silently transposing two characters. In over twenty years of Emacs usage, I have never once used C-t on purpose. I feel that this perfectly matches the "keybindings triggering random stuff" experience and it is fully there in vanilla Emacs.
With twenty years of experience, I have my own, esoteric init file that I would not recommend on any newbie. However, I personally feel that Emacs has succeeded despite its default keybindings.
> In over twenty years of Emacs usage, I have never once used C-t on purpose.
This is funny to me because, while I'm not an Emacs user, I'm a Mac user who's gotten used to the tiny subset of Emacs keybindings built into Cocoa text fields, and I use C-t fairly frequently! Apparently you do not make character transposition errors as often as I do.
That is really interesting. To be fair, I should have prefaced that I have cerebral palsy, so my typing patterns are likely different from most of the population.
I forget about the "control = by character, meta/escape = by word" idea because of that. (Maybe "smaller unit vs. bigger unit" is more accurate? I dunno.)
I don't know what I'd do with that if I were actually an Emacs user, though, since I use the Option key for typing certain characters a fair amount. Although I'm sure I could remap Emacs meta to virtually anything else, because Emacs.
I have my emacs config set up so that the left Alt key is meta, while the right one retains its original function. Think of it like AltGr on your typical PC keyboard. But I am using Mitsuharu Yamamoto’s Mac port. I don’t know if that is possible using vanilla GNU emacs, since I haven’t used it in years.
Honestly its a double edged sword here. Doom has so many built in convenience functions like `set-font!` and `set-repl!` that an experienced elisp programmer would probably love it for building their own configuration.
On the other hand it bundles so much that an inexperienced emacs user might be more keen to do the bare minimum and rely on the packages bundled with doom to give them all the cool stuff without much effort. After all, why "reinvent the wheel"? I personally don't agree with that sentiment, I think learning how to build and maintain a personal emacs config makes a person a better programmer generally, and makes them prone to reading and writing documentation rather than copying solutions.
I started off with doom and even though I don't use it anymore I still find myself reading its source to figure out how Henrik approached a solution. Love it or hate it, Doom is great in both very good and bad ways for emacs users.
> Doom has so many built in convenience functions like `set-font!` and `set-repl!` that an experienced elisp programmer would probably love it for building their own configuration.
Fair enough, I came from a background of JavaScript and Python, and Lisp was entirely foreign to me, let alone Elisp.
> After all, why "reinvent the wheel"?
I think its not of "reinvent the wheel", but let the other person do the decision making for you, including picking packages, setting up the modeline, so on and so forth. Starting out with a bare Emacs installation, you have to piece together the various packages that you would want to use, where as with Doom, you get everything out of the box. Also, maintaining your own init.el helps one learn Elisp
> I still find myself reading its source to figure out how Henrik approached a solution
For example the way fonts are implemented in doom is really clean and covers edge cases. I also borrowed the `set-repl` and some code to autoinsert some things. Doom's core modules have a lot of good ideas wrt making configuration easier.
I'd just like to point out that every single one of Doom's modules is optional, and you can install it without any external packages whatsoever (including Evil) if that's what you want.
Which is why I mentioned the convenience functions that come with doom. You're right of course but I wasn't trying to imply that doom couldn't be used as a framework.
Doom Emacs is excellent. I believe you were negatively impressed by the default install, but you can install it without any packages you don't wan't, or any package at all. You can even remove Evil altogether.
You can also easily remove anything afterwards.
Doom is essential for my sanity, and extremely flexible. I can do everything I want, just like on a barebones install. But I do it in a way that is way simpler, more practical, and performant. I'd use Doom even without any of its modules, just for the macros, the speed, and the sane configuration layout.
I tried the build your own route for 2 years, ended up with a huge messy init impossible to maintain. Doom removes a lot of complexity and provides extremely useful macros. The guy really knows what he's doing, and the optimizations that he uses are impressive.
I think doom is really good for inspiration. I used it for a while and it gave me a lot of good ideas on the kinds of things I could do with emacs and elisp.
I now use my own much simpler config, but I've borrowed heavily from the things I like about Doom.
Yes, this is exactly how I use Doom. When I first found it, I transplanted its startup optimizations into my existing config, but left everything else alone. When I look to do something new in Emacs, one of my first instincts is "well, let's see how Doom is doing it."
It's works well because I fall into the Evil+Use-package Emacs hegemony with my custom config.
I had a very similar experience when I decided to learn Emacs recently. The first thing I did was try Doom Emacs. It was nice but I felt that there is this big layer of stuff separating me from having complete control over my editor.
So I deleted my config. Went through the tutorial with vanilla setup. Then I continuously kept adding packages and tinkering with my config. After about two weeks, I felt that my productivity was on par with what it was previously in Neovim.
I've been using Emacs for a couple of months now and I'm happy I went this route. It is a tool I use almost daily and thus having a deep level of understanding and control is worth it.
This is what I did (after brief stint with Spacemacs), only what I did is gradually break apart doom-emacs from inside it, as in remove abstractions and stuff I didn't use until it was a plain (single file) emacs config, then went the other direction with modularisation.
This was very educative and I learned a lot about Emacs and Elisp.
The irony is after all of this I'm back to Vim and I don't feel like going back to Emacs (yet).
Yes, gradually building your own config is a much better approach on the long run. Start lean, learn the basics and add one thing at a time as you learn. Always have complete mastery of your .emacs and understand every line: why it is there, what exactly it does. Never blindly copy random stuff wholesale without understanding it.
I have to say I don't particularly see the wisdom of this (common) view.
It's acceptable to people to use the standard Elisp, and Emacs itself, without digesting that code, but somehow using a canned config is bad. I find the choice of where to draw the dividing line somewhat arbitrary.
If you have spent years writing your own config, you appreciate all the things doom brings to the table. I know I'd never end up writing such a good system from the ground up.
It follows a similar philosophy as the OP: Start by reading Emacs's built-in tutorial, and then my tutorial shows you how to leverage the built-in help system to figure out how to achieve what you want to do.
I'm the OP. That's a nice tutorial, and I agree with your sentiment that you should build on Emacs's ability to query it to figure out what to do. That's the main focus of my book, too, for the exact same reason.
I agree that the tool and menu bars are helpful for beginners. I disable mine to reclaim the vertical space (precious in a 16:9 world), to focus my attention on using the command keys, and because I'm a relatively experienced Emacs user! If keeping them helps you get your way around Emacs, by all means go nuts!
I do disable those things. But mostly out of aesthetics. That and I am easily distracted. I remember used to trying to find how to accommodate all items in the menu bar into my use.
Completely agree with this article, though. Happy with my purchase of this book a while back.
For those picking up emacs for lisp development, I'll add another piece of terrible advice: enabling paredit mode.
I think these all have a similar theme to them "I am more productive now since I have turned them on, so I wish I had switched sooner" but they ignore the fact that each of those things adds friction to learning the basics, and at some point people will just nope-out.
Feels like these problems mostly relate to the tech-wizard elitism theme. By all means use the help features and GUI menus if that's what you need. I believe when you run these commands via GUI you also get feedback explaining the equivalent keystroke sequence.
Reminds me of the old days of IRC posturing, newbie bashing and RTFMing. Today most info can be obtained by a well crafted search query.
I dunno, everything the menu does can be recreated in the minibuffer (and you have things like apropos if you're really lost). Personally I like to reclaim as much space as possible, so I turn off modelines too (I have a bit of status info written into the minibuffer, but I'd kill that too if you could).
I never leave it enabled any more. When I was a beginner it was helpful but as time goes on you learn more of the system and better ways of finding commands.
One thing I suggest is building emacs without dbus and using only Athena widgets. Both contribute to overall emacs stability.
The menu bar is pretty good for discovery, you'll have to rely more on naming convention and documentation without it.
The toolbar is pretty fungible though, few modes do anything with it and the core functionality you get from the standard chords you find in the tutorial, little bang for the pixels.
I suspect it's because so many Emacs tutorials out there cover the same material as the built-in tutorial. And so many pre-packaged Emacs configuration files disable the menu-bar for no good reason other than that's what everyone else seems to be doing.
Acessing manual, documentation, values, functions, and source code on Emacs is so easy that it would be hard to summarize all the ways you can do it. It's an integral part of your workflow, and literally unlike anything else. Unlike other programs, that really can and should be an integral part of your daily routine.
One thing I dislike about the manual is that it rarely presents examples, but commands like describe-variable and describe-function often help elucidate usage. Not to mention external packages that makes all that even easier.
You can see the language work, by looking at the code.
It may not get me a fancy computer job, but I think I am happier on the whole anyway, giving myself to lisp. Something therapeutic about it.
Fun anecdote: I've got my copy of SICP signed by both authors for Sussman invited me to have tea in his office and when I arrived the next day, by sheer chance, Abelson was there too! They joked that had I been there 30 minutes early Sussman's wife, who proofread the book, would have signed it too! I've got a cool pic taken at that moment: me standing along these two legends and proudly holding the purple book... I'll post that pic and full story the day I have a blog.
Besides that I pretty much live inside Emacs. The occasional elisp (3000 lines of custom elisp hackery over the decades) and lots of Clojure/ClojureScript.
I have thought that J Sussman not only proofread the book, but also came up with some of the problem sets and tested many of them: she worked through the book, not just a matter of spell-checking.
But I don't know.
In any event, SICP changed my world in a good way. Very cool that you got both authors to sign a copy!
I am the same way. I have been using Emacs since 1995, but have never had a full-time programming/IT job (although my tech skills have always been integral to my career). Perhaps having the luxury of not having to write code for pay is what makes me want to instead slowly learn Elisp. I read email using VM on Emacs (also since 1995), and over the last few years I have broken out of just knowing enough to maintain Emacs' dotfiles to actually writing substantial routines that expand on/fix VM and Emacs's capabilities.
Help menu --> More manuals --> Introduction to Emacs Lisp
You can find it online though:
https://www.emacswiki.org/emacs/EmacsLispIntro
Edit: I'm on an Ubuntu derived distro, so this may be the issue:
https://emacs.stackexchange.com/questions/48211/emacs-manual...
Edit2:
Yeah, at least for me that was the problem. This fixed it:
sudo apt-get -y install emacs-common-non-dfsg
https://www.gnu.org/software/emacs/manual/eintr.html
I assume in Windows/Linux this would actually be attached to the window frame at the top.
sudo apt-get -y install emacs-common-non-dfsg
If you have things remapped, try M-x info, then search for "Emacs List Intro" but it should be near the top anyway.
Track your customizations in a version control. Using customize package and reading the diff in dot Emacs file has taught me quite a bit about certain aspects of the package.
Side note: It would be awesome if Emacs could do the versioning as part of saving the customizations - build Emacs with libgit2 and make it a native git client.
The author mentions that some things can be hard to do outside of the customize interface. That is true. When that happens, I just use the interface and then move the setting from custom.el to use-package. But that's rare, I can't remember the last time I did that.
I'm one of those who track everything Emacs: including all the packages. When I upgrade packages, I first check that nothing broke then I commit "Bump avy to 20220114" or whatever. This way I can easily share the exact same config on several machines/several user accounts and I know I can easily roll back to a known fully working setup. YMMV.
Init a git repo in your $HOME, add a .gitignore that by default excludes everything then manually add just the files and folders you want to track.
Especially if you want to publish the repo, be careful, because it's <<extremely>> easy to accidentally expose confidential stuff.
Nowadays you'll find it even in Italy, because tourists demand it and they pay hard cash, so fuck it all anyway.
...by people who don’t know where what they think of as “Italian pizza” actually comes from. Look up “pizza effect.”
Pizza existed before Italian migration to North America was even a thing. It gained tomatoes when they became more readily available and better known in the early XIX century, and that's about it. The explosion in Italian migration happened later, by then most of the traditional pizzas had long been codified.
WRT pizza, it's clearly false. Pizza was a thing in Italy before World War II and it spread through Europe from Italy, not from the USA. You can trace the history of many pizzerias in Italy back far further than the "pizza effect" would have you believe, so you can easily de-bunk it by going to the web site of a pizza place in Napoli.
Amusingly, however, while it’s influence on the food itself is at the very least debatable, the influence of the US on how pizza is consumed is in fact very real: the fact that Italians nowadays drink beer with their pizza is something they learned from American GIs in WWII who brought the practice over from home.
Before that time, there was no overlap between Italians who drank beer (Northerners) and Italians who ate pizza (Southerners). Thanks the American soldiers Southerners learned to drink beer and Northerners learned about pizza.
Pizza margherita existed in the I̶X̶X̶ XIX century already in its modern form.
I don't like fruit as part of a main course (i.e. not a dessert) or appetizer. That doesn't make me a snob, it just means I don't think fruit belongs there and don't appreciate when it is.
However pineapple with anything savory is by far the worst for me. I prefer to not even sit next to my wife and kids when they are eating pizza with pineapple on it because the smell from it is enough to throw the taste off.
1: Okay, there are some sauces that technically have some orange or orange juice in them, but have so many other ingredients that it really just adds the tiniest hint of tangyness. but e.g. duck a l'orange is too much orange for me.
Everyone I've ever talked to that has an issue with it just think it's gross. And they're usually people that are not very big risk-takers with their tastes, and order the exact same item at a restaurant every time they go. And only want either cheese pizza or pepperoni.
I'm pretty sure even Tomatoes weren't. I hope this isn't the reason for the disdain.
I don't know that "you can't call it X" is the right approach, but there should be some really clear to consumers way of saying "X was made to a particular standard" vs "all bets are off with Y" - then let them decide.
Things that fall out of those ranges are simply called wors. Similar to the difference between a pork sausage and a pork banger.
I'm French, we invented this legal device, I know how it works and why it exists (and I think it's got every right to).
Fish and chips for one. Curry wurst. Apple, persimmon, pine nut and blue cheese. Halloumi, pea, and mint. Mushroom, goat cheese and chipotle. Cranberry and white pudding. (Or cranberry and goat cheese) Christmas dinner. (Turkey, stuffing, ham, cranberry). Pulled pork. Roast pineapple and mint. Bacon and egg. Berry and cream cheese. Salmon and cream cheese and wasabi.
I have been known to make specific dinners in order to have the leftovers to put on pizza.
My first job was a pizza place where we had "Pizza of the Month" deals which were unusual pizza's. Street taco pizza? Amazing. Thanksgiving pizza? Amazing. Spicy honey + fresh mozzarella? Amazing. Baked potato pizza? Amazing.
Just gotta remember to not use tomato sauce for some of those.
I suspect you could experiment to your hearts content for a long while there.
[0] It's unlikely that you'll "find" yourself in Slade without already knowing about Miguel's.
There was a food truck at Cornell when I was there, Hot Truck, an institution on West Campus for late night food. They had a bunch of French bread pizzas, referred to in initial code. PMP (poor mans pizza), WGC(white garlic and cheese) and the always interesting WTF (chefs choice).
I feel that if it plausibly goes with bread and cheese, or if it’s street food, then it will probably work on a pizza.
They honey pizza reminds me of a pizza I got from a vending machine in France a couple years back, I think honey and chevre. There was this vending machine outside a pizza joint that would cook a whole pizza for you in about 5 minutes, presumably from cold preprepared pizzas.
It's seems a pretty silly thing to get worked up about. There are vastly more egregious slights to the good name of pizza in nearly every american frozen food aisle, after all.
Most Americans use a fairly sweet pizza sauce. Adding pineapple to that makes it too sweet. But I like my sauce with more tomato acid, so a little bit of fig or pineapple complements the flavours. The nice thing about pineapple is that you don't get it in every bite like you do with a sweet sauce.
Edit: and now I sound like the pizza snob. :) It should be 7 -- good pizza has both crisp and chew.
Those that like pineapple on their pizza just don't speak up because they don't feel the need to be harassed over their pizza choices.
Arnold has an opinion.[0]
[0] https://www.youtube.com/watch?v=pKV74qkokmk
for people who know the system. The menubar is useful for discovery if you're new to the system, which seems to be the audience they're writing for.
As a long time Emacs user, I feel that this is slightly unfair. When I first started out, I found that my documents from Emacs were far more common than in other editors. It took me two years to realise that I was often bumping C-t where trying to hit C-r or C-y and silently transposing two characters. In over twenty years of Emacs usage, I have never once used C-t on purpose. I feel that this perfectly matches the "keybindings triggering random stuff" experience and it is fully there in vanilla Emacs.
With twenty years of experience, I have my own, esoteric init file that I would not recommend on any newbie. However, I personally feel that Emacs has succeeded despite its default keybindings.
This is funny to me because, while I'm not an Emacs user, I'm a Mac user who's gotten used to the tiny subset of Emacs keybindings built into Cocoa text fields, and I use C-t fairly frequently! Apparently you do not make character transposition errors as often as I do.
https://github.com/ppwwyyxx/dotfiles/blob/master/macOS/Libra...
It's a life saver.
This leads me to believe that this will work:
Edit: Sadly, `transposeWords:` doesn't work, despite showing up in Apple's docs—it just beeps when I try to use it.I don't know what I'd do with that if I were actually an Emacs user, though, since I use the Option key for typing certain characters a fair amount. Although I'm sure I could remap Emacs meta to virtually anything else, because Emacs.
Honestly its a double edged sword here. Doom has so many built in convenience functions like `set-font!` and `set-repl!` that an experienced elisp programmer would probably love it for building their own configuration.
On the other hand it bundles so much that an inexperienced emacs user might be more keen to do the bare minimum and rely on the packages bundled with doom to give them all the cool stuff without much effort. After all, why "reinvent the wheel"? I personally don't agree with that sentiment, I think learning how to build and maintain a personal emacs config makes a person a better programmer generally, and makes them prone to reading and writing documentation rather than copying solutions.
I started off with doom and even though I don't use it anymore I still find myself reading its source to figure out how Henrik approached a solution. Love it or hate it, Doom is great in both very good and bad ways for emacs users.
Fair enough, I came from a background of JavaScript and Python, and Lisp was entirely foreign to me, let alone Elisp.
> After all, why "reinvent the wheel"?
I think its not of "reinvent the wheel", but let the other person do the decision making for you, including picking packages, setting up the modeline, so on and so forth. Starting out with a bare Emacs installation, you have to piece together the various packages that you would want to use, where as with Doom, you get everything out of the box. Also, maintaining your own init.el helps one learn Elisp
> I still find myself reading its source to figure out how Henrik approached a solution
For example?
You can also easily remove anything afterwards.
Doom is essential for my sanity, and extremely flexible. I can do everything I want, just like on a barebones install. But I do it in a way that is way simpler, more practical, and performant. I'd use Doom even without any of its modules, just for the macros, the speed, and the sane configuration layout.
I tried the build your own route for 2 years, ended up with a huge messy init impossible to maintain. Doom removes a lot of complexity and provides extremely useful macros. The guy really knows what he's doing, and the optimizations that he uses are impressive.
I now use my own much simpler config, but I've borrowed heavily from the things I like about Doom.
It's works well because I fall into the Evil+Use-package Emacs hegemony with my custom config.
So I deleted my config. Went through the tutorial with vanilla setup. Then I continuously kept adding packages and tinkering with my config. After about two weeks, I felt that my productivity was on par with what it was previously in Neovim.
I've been using Emacs for a couple of months now and I'm happy I went this route. It is a tool I use almost daily and thus having a deep level of understanding and control is worth it.
This was very educative and I learned a lot about Emacs and Elisp.
The irony is after all of this I'm back to Vim and I don't feel like going back to Emacs (yet).
It's acceptable to people to use the standard Elisp, and Emacs itself, without digesting that code, but somehow using a canned config is bad. I find the choice of where to draw the dividing line somewhat arbitrary.
It follows a similar philosophy as the OP: Start by reading Emacs's built-in tutorial, and then my tutorial shows you how to leverage the built-in help system to figure out how to achieve what you want to do.
It was hugely helpful to me in learning Emacs.
Thank you so much for writing it!
Completely agree with this article, though. Happy with my purchase of this book a while back.
I think these all have a similar theme to them "I am more productive now since I have turned them on, so I wish I had switched sooner" but they ignore the fact that each of those things adds friction to learning the basics, and at some point people will just nope-out.
Reminds me of the old days of IRC posturing, newbie bashing and RTFMing. Today most info can be obtained by a well crafted search query.
very nice write up
I never leave it enabled any more. When I was a beginner it was helpful but as time goes on you learn more of the system and better ways of finding commands.
One thing I suggest is building emacs without dbus and using only Athena widgets. Both contribute to overall emacs stability.
That said, you can always call it up as a pop-up menu.
The toolbar is pretty fungible though, few modes do anything with it and the core functionality you get from the standard chords you find in the tutorial, little bang for the pixels.
I stopped reading after this. If you want to look like you're objective, don't use pizza as an argument
If the author tried to look objective it would be a false front.
- read the manual - follow the tutorial - customize it to your liking
wow, what enlightening advice! this must be unique to emacs and not _any_other piece of software!
once again, all you need to get FP'd on hackernews is to put the word "emacs" in your title. zoom! to the front page!
e.g. "Emacs Prelude", one such configuration or "distribution" of Emacs, used to disable the menu-bar by default as recently as a year ago: https://github.com/bbatsov/prelude/commit/878cffb
One thing I dislike about the manual is that it rarely presents examples, but commands like describe-variable and describe-function often help elucidate usage. Not to mention external packages that makes all that even easier.