22 ms·
What's new in Emacs 29.1
- jgalt212 3y agoFunny one for the emacs-aware (lovers and haters). https://www.youtube.com/watch?v=urcL86UpqZc https://www.youtube.com/watch?v=urcL86UpqZc
- JNRowe 3y agoA much less thorough round-up of 29.1 was discussed here a little while ago¹, with many of great comments². ¹ https://emacsredux.com/blog/2023/07/30/emacs-29-1-released/ https://emacsredux.com/blog/2023/07/30/emacs-29-1-released/ ² https://news.ycombinator.com/item?id=36929514 https://news.ycombinator.com/item?id=36929514
- ljm 3y agoIncredible work; I’ve cut down my config immensely by deleting external packages, using built-ins as much as possible, and emacs gives you a lot more out of the box now. That said, magit is the star of the show.
- tvb12 3y agoHas anyone figured out how to pair magit with git-sim (https://github.com/initialcommit-com/git-sim https://github.com/initialcommit-com/git-sim) so that you can use magit's controls but then get a picture of what you're about to do before you do it?
- globular-toast 3y agoJust do it, and learn to use the reflog ("l r" from magit buffer). Although of course be aware of the few things that can trample your workdir like reset --hard. If in doubt, commit/stash everything, to the thing, then see what it did.
- mediumsmart 3y agoOk that does it. Going to finally cave in and recreate init from scratch this weekend. Thanks.
- pard68 3y agoDid that this morning. Been using Doom for years as my config base and got tired of not really "knowing" emacs and not being able to quickly solve problems. Finished my own mostly vanilla emacs conf this morning.
- brabel 3y agoSame here. Really happy with eglot as well. I tried it with Go and all I needed in my config was: (use-package go-mode :ensure t :hook ((go-mode . (lambda () (setq tab-width 4))))) And it works the emacs way, not trying to be something more "modern" (i.e. VS Code), which to me is so much nicer than all the lsp-ui nonsense that I was using before (no popups, docs show up in the minibuffer as it ought to).
- a_e_k 3y agoFor extended docs beyond the minibuffer, I've found that M-x eldoc works very nicely with eglot and follows the Emacs way.
- raincole 3y agoFinally decided to try out Emacs for a couple of days. (after years of vim and Jetbrains). Vanilla Emacs without batteries included. I've found the configuration is surprisingly easy to read even tho I haven't seen lisp for 10 years. I think it's atrocious that many keybindings start with <C-x>, but it's easy to set it to another key (mine is <C-j> with capslock as <C>) so not a big deal. My biggest complain so far is that the whole ecosystem is Unix-first. People say once they get used to Emacs they almost stay in it all day long. And even as an Emacs newbie I can confidently say these people all use Unix-like systems. On Windows magit is really slow. Like much slower than any git GUI I've seen. And while eshell is usable, it feels rather primitive and not like a proper terminal. The default spellchecker option doesn't work on Windows either, but hunspell seems ok-ish (still a bit slow). I understand that no one is oblige to write any software for my OS, but stil... Edit: The reason I don't use WSL: the last time I tried it, it was really slow when a windows process read from/wrote to a file living in linux file system, and vice versa. One obvious solution is to move as many file as possible to WSL, but I'm just not mentally ready to change my workflow that much. Edit 2: For people who like to try Emacs, I'd suggest to turn `which-key` on and install helpful-key. It's a software with the premise that you need to learn obscure key combinations.
- ElevenLathe 3y agoI'm one of those people that stays in emacs all day, and you're right that the Windows port is basically useless on it's own. I use the emacs-w32 package from Cygwin (it is a real GUI emacs that doesn't require an X server but also integrates with the Cygwin environment) though, and that has gotten me productive on lots of corporate workstations where running desktop Linux is out of the question.
- celrod 3y agoEmacs-eat is supposed to work on windows, and may give you a faster e-shell. Note that you can use things like `pcomplete` and `eshell-syntax-highlighting` to make eshell fairly smart. The fact that my shell can use corfu and the same completion, filtering, and ordering as the rest of my emacs is great.
- 3y ago
- ashton314 3y agoThis little project of mine made the front page here a few days ago, so I’m not trying to beat a dead horse or anything, but I just want to surface it here again in case anybody finds it useful. I have made a starter kit at leverages many of the now built-in features of Emacs 29.1. You can get very far with regards to completion, project management, language, server, etc. just by tweaking a few defaults. I have put some of these nice tweaks together in a starter kit called “Emacs bedrock“: https://sr.ht/~ashton314/emacs-bedrock/ https://sr.ht/~ashton314/emacs-bedrock/ Let me know if you find it useful, or if you have any comments or suggestions. :-) I’m still working on incorporating some feedback I got earlier.
- jordigh 3y agoHeh, people are still putting up their config files online and blogging about them, eh? Some things in Emacs never change, no matter how many bells and whistles are in the latest version. :)
- adityaathalye 3y agoYes, we are :) I just published my newly hand-rolled config https://github.com/adityaathalye/dotemacs https://github.com/adityaathalye/dotemacs At some point if/when I upgrade to 29.1, I will be able to delete some lines such as the ones that install use-package. :)
- Scarbutt 3y agoWait until you learn about users of that editor called vim.
- tmalsburg2 3y agoIt's the whole point of Emacs that it's malleable and can (should) be tailored to the own personal users needs.
- JNRowe 3y agoA link to that discussion for those of us who missed it - https://news.ycombinator.com/item?id=37385716 https://news.ycombinator.com/item?id=37385716
- BearhatBeer 3y agoThe long line support improvement could be a game changer. I’m less interested in tree sitter and pixel-scroll seems like a nightmare - emacs users know how screwed up scrolling is already especially in large buffers. I’m just glad that you can still compile a minimal emacs without dbus.
- alwaysbeconsing 3y agoIt's a nice release. Headliners aside, a lot of little improvements that make a big difference. `mouse-drag-and-drop-region-cross-program` and `dnd-indicate-insertion-point` might be my favorites that category. Making dragging text into GUI Emacs work as it does for other programs.
- sharts 3y ago[flagged]
- antoineMoPa 3y agoI'm a bit disappointed at the features of the included lsp client. I went back to lsp-mode. Also I feel like performance could be improved a lot, but that's probably an issue in my particular setup. If someone has an efficient lsp-mode + typescript-mode + eslint checks, I'd be happy to see how you achieved that.
- wudangmonk 3y agoWhile lsp has brought the best utilities that used to be locked away inside IDEs. I just don't see how you can build upon it when its been shown to struggle pretty much since the beginning. JSON is okay if you need a format that is human readable but how did the engineers at microsoft ever think that it was a good choice for interprocess communication?. Most of the work is wasted on decoding the json itself. We should not have to increase the interval between request and batch calls in order to make it usable.
- oblio 3y agoHave you profiled things and have data to show JSON handling is the root of the performance issues?
- shepmaster 3y agoNot the person you are replying to, but the JSON performance of Emacs was a well-known thorn in the side for using LSP. Further details... ... from the same source as the top post: https://www.masteringemacs.org/article/speed-up-emacs-libjansson-native-elisp-compilation https://www.masteringemacs.org/article/speed-up-emacs-libjan... ... from lsp-mode: https://emacs-lsp.github.io/lsp-mode/page/performance/#json-native-serializationdeserialization https://emacs-lsp.github.io/lsp-mode/page/performance/#json-...
- oblio 3y agoAh, ok, I get what you mean, but those are not inherent JSON issues. After all, VS Code & co use the exact same protocol in a speedy fashion. It's Emacs needing to be configured to use faster JSON libraries. The original comment was complaining about JSON as a format itself, and my argument is that unless you need super high performance, JSON is more than enough. And it's not like LSP is passing around GB of data every second, let's be real here :-)
- quasarj 3y ago$50 and I don't even get a real book? that's too steep, man.
- worthless-trash 3y agoThere are continual updates, I bought it a few years ago and hope the author continues.
- wlindley 3y agoI might spring for it if the author had a pre-packaged "You want a printed copy? Click here for a pre-set on-demand copy." Trying to figure how to have one printed and bound, for those of us who aren't self-publishers, is a non-starter. Many of us prefer a real copy, one you can read without batteries, one you can scribble notes in the margin, one you have a spatial feel for where you are in the text, one you can put little color sticky flags and paper clips on the edges of interesting bits. One you can put on your special little shelf by your desk. O well.
- tra3 3y agoI would buy a printed book, I think. I'm not the kind of person that can read a manual cover to cover, but I pick one up occasionally, open a random page and find something interesting/useful.
- iLemming 3y agoThe book is worth every penny. I bought mine years ago for like $25, and since then the author has published multiple new revisions and I still can download them for free. Mickey doesn't do this for profit. There's a word in Japanese - "Ikigai" (you better google it, I'm typing this on my phone). For Mickey Petersen, explaining Emacs is his ikigai. If you're thinking of using Emacs for longer than two weeks, buy the book, you will never regret it.
- unbornmaster 3y agoDoesn't do it for profit but sells it for $50, make it make sense? I don't care about the price because he does great work, but he really should allow those who want it in printed form to have the option.
- kccqzy 3y agoI recently updated to Emacs 29.1. I found that Emacs is now behaving erratically when it comes to modifier keys. Here's a post about someone seeing phantom hyper keys: https://emacs.stackexchange.com/questions/78135/why-does-emacs-29-translates-meta-to-metahyper-m-somekey-to-h-m-somekey https://emacs.stackexchange.com/questions/78135/why-does-ema... In my case I experienced phantom meta keys when I press the super key. I spent hours debugging and gave up by redefining my key bindings to include these meta keys.
- nforgerit 3y agoM-x pixel-scroll-precision-mode This is the best thing since idk. Thank you so much, folks!
- ashton314 3y agoReally makes reading mail with inline images or org files etc. sooooooo much nicer.
- SoftTalker 3y agoAny improvement with "one long-running thing blocks all the buffers"?
- G3rn0ti 3y agoMany functions have acquired an async variant. For example, „shell-command“ runs shell scripts and redirects their output to a buffer. If you add the ampersand „&“ at the end of your command it won’t block your UI. On the other hand, package upgrades are still blocking with Emacs‘ built-in package manager. I hear „straight.el“ is a good replacement capable capable of running async but it’s an advanced sub system. Do you have some examples?
- lycopodiopsida 3y agoelpaca.el is asynchronous, try it out!
- tmtvl 3y agoYeah, elpaca is pretty good, it was made by the author of blimpy mode.
- rjzzleep 3y agoCan someone elaborate on the Wayland warning? I've been waiting for wayland support for a very long time. Does this warning imply that if I add or remove an external monitor emacs will crash?
- worthless-trash 3y agoI run emacs on wayland, removing external monitors regularly, emacs jumps between them.
- srhtftw 3y agoI'm not really happy with the number of times I have recently had to resort to sending it SIGUSR2 to force it to stop whatever it's doing when I re-indent some code in a file of Typescript. It happens about once a day. When it does I quickly save all my work and restart. I haven't looked too closely at it yet but from what I've seen in backtraces I suspect there's a bad pattern match situation in there somewhere, like what you might get from the exponential behavior of a poorly written regex. I'm also not happy about the fact that I can no longer open large C++ files like https://github.com/ASDAlexander77/TypeScriptCompiler/blob/main/tsc/lib/TypeScript/MLIRGen.cpp https://github.com/ASDAlexander77/TypeScriptCompiler/blob/ma... in C++ mode without scrolling becoming so sluggish as to be unusable. I either have to disable C++ mode or open them in an older version. It's good that emacs is getting some long needed attention, but I'm sad the latest version isn't as usable for me.
- G3rn0ti 3y ago> I'm also not happy about the fact that I can no longer open large C++ files Regex-based syntax highlighting is usually the culprit in these cases. There’s probably a new RegEx inside c++ mode that burns too many cpu cycles. You might want to try out the treesitter mode „c++—ts-mode“ that does the syntax highlighting based on a real static parser written in C: https://medium.com/really-learn-programming/setting-up-tree-sitter-in-emacs-29-x-a38a9d3a9f2b https://medium.com/really-learn-programming/setting-up-tree-... Disclaimer: I’m not a C++ dev so I have never tried that.
- srhtftw 3y ago> https://medium.com/really-learn-programming/setting-up-tree-sitter-in-emacs-29-x-a38a9d3a9f2b https://medium.com/really-learn-programming/setting-up-tree-... The author made this story available to Medium members only. Sign up to read this one for free. /sigh
- G3rn0ti 3y agoYeah, sorry, I was hastily looking for a tutorial. But I got "c++-ts-mode" working for me now, see my other comment below: https://news.ycombinator.com/item?id=37466899 https://news.ycombinator.com/item?id=37466899 I am still not a competent C++ programmer but this is how your basic tree sitter C++ mode is supposed too look with "C-h m": Minor modes enabled in this buffer: Auto-Save Flycheck Flyspell Font-Lock Yas The major mode is C++// mode defined in c-ts-mode.el: Major mode for editing C++, powered by tree-sitter. This mode is independent from the classic cc-mode.el based ‘c++-mode’, so configuration variables of that mode, like ‘c-basic-offset’, don’t affect this mode. To use tree-sitter C/C++ modes by default, evaluate (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) (add-to-list 'major-mode-remap-alist '(c++-mode . c++-ts-mode)) (add-to-list 'major-mode-remap-alist '(c-or-c++-mode . c-or-c++-ts-mode))
- Horffupolde 3y agoI don’t like how you can’t reason about commands. It’s all like do-magic-spell-etc without an intuition.
- G3rn0ti 3y ago„C-h f“ (help on function) or „C-h k“ (help on keybinding) at least gives you some quick information on any function in Emacs. I also recommend „which-key.el“ showing you which commands are bound when you typed in an incomplete key combo. You probably also want some improved completion engine like ivy/counsel showing you the key bindings in the command list after hitting „M-x“. This way I discovered a lot of helpful stuff.
- nanna 3y agoOr if you want to see exactly what a command is doing simple turn edebug on for it and step through it.
- alex_smart 3y agoEmacs is literally the best self-documenting system in the world - zero exceptions. You can easily see the documentation of every function which usually explains what it does and what each parameter is for. And in case you are not satisfied with that, you can quickly jump into the definition and see the code for yourself.
- fergie 3y agoWhat is the significance of TreeSitter? Emacs has syntax highlighting already- so how is it an improvement?
- lycopodiopsida 3y agoSyntax highlighting now runs on regex, which means that it is slower and prone to errors. In the end, it understands nothing about the code it highlights. Tresitter, on the other end, makes a proper syntax tree.
- bananapub 3y agoit's faster, builds a proper parse tree so is more reliable, it's shared between editors so will have greater opportunity for improvement, and exposes related things like indentation and code movement from the same system. it's very very cool that this late in the world of computers we ~suddenly get cross-editor analysis system (LSP) and cross-editor highlighting/indentation/rough parsing support.
- jart 3y agoCross-editor? Who runs multiple editors? The only thing you need is Emacs. Why are they breaking apart Emacs' functionality into separate things? Is TreeSitter even written in Lisp? If not, then how would this be hackable in the same way?
- cyrialize 3y agoI think this is a pretty good article that highlights the benefits of TreeSitter in Emacs: https://www.masteringemacs.org/article/tree-sitter-complications-of-parsing-languages https://www.masteringemacs.org/article/tree-sitter-complicat... I'm happy that TreeSitter is in Emacs Core rather than elisp, it'll run faster.
- pantulis 3y ago> "As much as we like to delude ourselves into thinking that unstructured orgmode text, or even s-expressions, represent the pinnacle of text editing and the acme of scrappy hackerdom, that mantra does come with a significant penalty to performance." Love this in the context of native SQLite support.
- massysett 3y agoIs the SQLite support documented anywhere? What is it? I searched for “SQLite” in the Emacs manual and the Emacs Lisp reference and got nothing.
- seanw444 3y agoWith Vertico in Doom Emacs (via the Helpful package), I find a lot of stuff like this by doing `SPC h f` and then "vertico" and a list of functions containing that string in the name pops up. It looks like it's in Text > Database in the "Emacs Lisp" manual, not the "Emacs" manual.
- fergie 3y agoMickey Peterson is doing gods work, but it would be great if this book-sized article could have a table of contents.
- unbornmaster 3y agoYeah, it's amazing work, but the amount of information here is really hard to digest.
- tap-snap-or-nap 3y agoI have been hearing about emacs and vim also intending to learn Emacs for a while, from the comments it seems like a good time to start.
- pickingdinner 3y agoAnyone have a good recipe for proper color coding and autocompletion for mixed language files? js, html, css, php. I love spacemacs but couldn't get it to work right until I bailed for vscode which had everything working out of the box...