Bad Emacs Advice(masteringemacs.org) |
Bad Emacs Advice(masteringemacs.org) |
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.
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.
just like pizza with pineapple, people do occasionally give out downright bad advice.
I really don't understand this pineapple on pizza meme. I think it's delicious!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
- 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.
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.”
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.
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.
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.
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]
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.
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'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.
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.
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.
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.
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.
https://github.com/ppwwyyxx/dotfiles/blob/master/macOS/Libra...
It's a life saver.
This leads me to believe that this will work:
"~t" = "transposeWords:"; /* M-t */
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.
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.
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
sudo apt-get -y install emacs-common-non-dfsg
C-h i d m Emacs Lisp Intro RET
Need that d to take you back to the top directory if you happen to be browsing some other info manual already.If you have things remapped, try M-x info, then search for "Emacs List Intro" but it should be near the top anyway.
I assume in Windows/Linux this would actually be attached to the window frame at the top.