* New minor mode 'pixel-scroll-mode' provides smooth pixel-level scrolling.
* The networking code has been reworked so that it's more
asynchronous than it was (DNS resolution and TLS negotiation do not block Emacs main thread).
* Emacs no longer prompts about editing a changed file when the file's content is unchanged. Instead of only checking the modification time, Emacs now also checks the file's actual content before prompting the user.
* Improved CSS mode
* Intercepting hotkeys on Windows 7 and later now works better.
(add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
(add-to-list 'default-frame-alist '(ns-appearance . dark))
--identifier at.jasomill.pkg.org.gnu.Emacs \
--version "$version" \
--install-location /Applications \
--component nextstep/Emacs.app \
sudo installer -package "$packagedir/Emacs-$version.pkg" -target /
Note, however, that I've reverted to a previous version maybe twice in the past 5+ years of weekly builds (from the GNU master branch), and even in these cases, the regression didn't affect core editing functionality (last one I remember, editing over ssh via tramp was failing in certain circumstances [that I never got around to working out in detail]).
Skimming the readme, I see that it's almost entirely mac specific and mostly UX. I can't say they are completely useless but nothing really vital, except the features inherited from Carbon, which seem useful (I really like the concept of AppleScript, i.e. all programs responding to a single programming interface; I guess DBus is supposed to do sth. similar on FreeDesktop, no?).
That's what happens when one makes compromise with Gnome people. It's too late to undo the damage, but we can learn a valuable lesson.
But I am also fascinated that this a apparently a thing :).
What's his rationale?
Now, because Emacs is free software, this doesn't prevent anyone such as Yamamoto to go and modify Emacs. Rms doesn't want his officially-sanctioned version to have Mac-only improvements, but he also defends the GPL which allows other people to do so. Rms isn't going to go and tell Yamamoto to take down his fork or anything (but he probably will tell macOS users at every opportunity that they are working with an abusive OS).
Year of the Linux desktop jokes aside, I've just lately got sick of how broken Linux is on most laptops, even ThinkPads which are supposed to be the gold standard.
My ThinkPad never had working suspend resume, for example, which is just basic stuff that Linux can't seem to get right.
I'm not 24 and childfree any more. I don't have time to fiddle with acpi or systemd.
Previously I was on an x250 also on Debian stable which also worked flawlessly until I dropped it hard. It was just a little heavier and a little slower than my current X1.
On the topic of Macs being stable; I've seen my coworkers experience a lot of grief during the past few months with some macOS updates.
I'm not saying that the experience is in general better with one setup or another, just that mine has been good. I'm sure your experiences are valid too.
I have to run Windows 10 on a system for work and I have to say the Linux install and setup experience is way nicer.
I have been trying to do this for nearly 20 years now...
WRT users switching, let them do. One thing I'd really fear would be Emacs becoming just another attention whore of a piece of software. Not only, but also, options and competition are very nice things to have. VSCode is not that interesting to me, but I really like Sublime Text; I can easily suggest it to anybody instead of Emacs if they are not into the idea of using a highly- and live-customisable and very composable environment and want sth. that just works.
As you said, the change was smooth and I got to enjoying all the new fixes and stuff. But my word, it was over a gigabyte of downloading, which I didn't expect! Still, worth it.
The release you're referring to has maybe 20 lines of non-autogenerated code changed, and was "an emergency release to fix a security vulnerability in Emacs".
By and large new Emacs features only get released every 2-4 years. If you write any non-trivial Emacs code you're only targeting the major releases, and if you're contributing to Emacs you can expect other users to have your feature in the in their hands by the time your newborn is old enough to walk around and argue with you.
It's one of the remaining free software projects that really takes its time with releases.
> and if you're contributing to Emacs you can expect other users to have your feature in the in their hands by the time your newborn is old enough to walk around and argue with you.
Lest someone misread that and comes away with a misconception about the big picture - that's true if you're contributing to Emacs proper. I.e. you're writing C and Emacs Lisp code which is meant to be included for release with the main project.
99% of the things you can dream of adding to Emacs can be done in Elisp, and shared with other people immediately. Since Emacs is a stable platform, you probably won't have to worry about the underlying API breaking until your current newborn is old enough to start asking where children come from.
Only yesterday, I installed emacs and spent half an hour on it. Even opened a tutorial to learn the basics.
But I got irritated pretty soon and gave it up. Now I am thinking about people who use it like a pro. How the hell did they master this beast?
Give yourself a full day for the tutorial and then try to stick to it even though for a while you will be slower and clumsier at everything. This will pay off massively.
Make it part of your routine. Apart from coding in it, use it for email (mu4e/offlineimap), for git (magit), as a local and remote file manager, for writing notes and running a diary (org mode), for submitting papers (LaTeX/Auctex), for your terminal...
Speaking for myself, it actually improves my quality of life, and I feel like I've only scratched the surface.
Work on the tutorial, then spend about half an hour to a hour writing some text and code, so that you get used to interactions. Save a couple of files. Open a couple of files. You should be now comfortable enough to do basic work in Emacs. From there, it's practice, reading and exploration.
The cool thing about Emacs is that it's self-documenting. CTRL+h is your friend (in Emacs-speak, C-h). You remember a key combination but are not sure what it does? C-h k key-combination. Remember a function but not where is it bound? C-h w command, or C-h f command - the latter will give you a full documentation of it (and works for other elisp functions as well). Sorta-remember the command? C-h a whatyouremember - will run a regexp search on a list of all commands. Don't remember neither the key nor the command? M-x apropos whatyouremember - this will run a regex search on everything.
Also, the full documentation for Emacs should be available under C-h i. Or, if you are serious about Emacs and have some money to spare, I can recommend this book: https://www.masteringemacs.org/. It will get you up to speed in no time.
Beyond that, Google around. Look for Emacs guides, interesting packages, and interesting Emacs configs (search terms: .emacs, emacs dotfile). They'll introduce you to various productivity and life quality features for which Emacs is so loved.
 - they're weird because they predate the modern fashion. What you're used to came later, from IBM, and was popularized Microsoft.
A couple years later our vi friend expressed interest and did the same thing. His monitor was littered with little post-it notes until the muscle memory kicked in.
You might be thinking, is it really worth my time to learn something esoteric like Emacs, but there are many nice perks once it's been learned. It turns out the default keybindings in readline (and every program that uses readline) are Emacs keys, so it's a exciting feeling realizing you just hit C-t in some random program and it transposed the characters like you wanted. macOS also has many Emacs keybindings in the default text field (where they don't conflict with standard mac keys).
Okay, more seriously, it took me about a month to stop hating Emacs in 2002. I only started because I thought I had no choice. I was a math undergrad, I wanted to write math, and they plopped me in front of Emacs and LaTeX running on Debian. Alright then, I'm here to learn new mathematics, so I'm also going to learn new ways to type mathematics. This is just how we do things in university, I thought.
Fifteen years laters, I haven't stopped using and learning about Emacs. I can't do any serious writing without it.
So, my advice is, if you don't want to keep learning Emacs forever, just stay with whatever you like right now. As a general rule, the Emacs faith does not proselytise. Some of us tolerate Emacs, but you'll have to try it yourself to see if you do.
Well that's too bad, as people have done some serious writing using simper tools - a pen, a typewriter... Isn't Notepad (on Windows) a sufficiently good tool to type, say, a novel in? Less distracting it is, for sure. (Well, I heard some people say that Notepad requires an OS to run, whereas Emacs is an OS in its own right, but really?)
I can use something other than Emacs if I have to, but it all feels like I'm tying both arms behind my back and writing with a pen held in my teeth.
I came to Emacs from decades of using vim. I installed evil-mode, and then spent about 10 hours a day for about 3 months learning more, installing packages, and tweaking my config until it matched and exceeded what I had in vim.
This is a never-ending process.. and now, about 5 years later, I'm still learning and still tweaking (though my config has been mostly stable for a long time).
I wouldn't necessarily recommend Emacs to someone who's not willing to put in the time and effort to make it in to the editor they need... though they don't necessarily have to spend as much time or effort on it as I have. Everybody has different needs.
Fortunately we live in an age of plentiful, easy to get information, so if you are interested then learning more is just a few clicks away. I'd recommend joining #emacs on the FreeNode IRC network, r/emacs on Reddit, and the Emacs StackExchange. The people there can give you lots of pointers and detailed help when you need it.
I'm now using Emacs for everything: shell, git, email, file browser, window manager, IRC, slack, as a pdf reader, ... oh, and to edit text files.
My advice is to keep using it. When you notice that something is really weird, run `M-x package-list-packages` to see if someone has already written a package to change the weird behaviour. Ask questions on emacs.stackexchange.com, but also ask Emacs; use C-h to learn about why things are the way they are.
If you don't understand why people love Emacs, consider reading this:
They're mostly old. So I guess they might be hostile to the young. I actually dislike some of the newer things like transient-mark-mode. I don't want all of that highlighting just because I have a selection region, and was quick to disable it when they enabled it to make it more "modern":
I've been using vim for 15 years or something but its default is insanely hostile that the default hotkeys aren't even funny. You'd even feel wet that you can save a file with just 2 keys under Windows in Notepad compared to 4 keys that's not exactly intuitive until your muscle remembers it or modify it to something sane. (I use a single 'space' under command mode to save.)
I wouldn't try to learn everything at once would just learn:
1) How to quit
2) How to save a file
3) Basic navigation: up, down, left, right, end of line, beginning of line
4) How to cut a line, and how to paste a line
Some of those you might already know from using bash or even basic text editing on macOS.
But I won't be switching simply because indentation in html/css/js files is off and apparently Emacs is bad at handling stuff like jsx and web stuff in general. Shame.
Patience, mostly. Emacs takes a very big up-front investment, but it pays off in the long run.
> I got irritated pretty soon and gave it up
Yeah, that was my first experience, too. ;-) Don't rush yourself. Come back every couple of months and give it another try. Work your way through the tutorial, and if you feel like it's just too hard, don't listen to yourself. You will be amazed at what you can achieve on determination and persistence.
Also, there are IRC channels and discussion boards waiting for your questions. Do not be afraid to ask "stupid" questions. More likely than not, people will be happy to help you.
Last but not least, emacs comes with pretty good documentation. Learning how to to use emacs' online documentation, both the texinfo manual and the online help, can get you surprisingly far.
Once the basics have been learned I think there's also an implicit assumption that the user hacks on emacs (or at least their init.el) to make the things they do easier. In a sense emacs is a make-your-own-IDE-toolkit -- pretty much everything about how it works can be changed if you like.
Key point is you can program it to do what you prefer.
I keep hearing people mentioning vim and emacs but I have a strong suspicion that if people spent the same time that they now spend learning and customizing vim and emacs learning a more modern IDE or advanced editor they'd be even more effective (except when they need to edit over ssh).
Personally I use Visual Studio Code all day now. But I've also been happy with Netbeans, IntelliJ, eclipse and Sublime. I rarely have to use a mouse or touchpad, it's all alt-tab, wait-a-second, alt-tab, edit, ctrl-s, ctrl-p type parts of a filename, ctrl-arrowkeys, F2 enter new name for a variable or field etc etc.
I've done one honest attempts at learning emacs (and I kind of enjoyed it) + lots of involuntary training on vim (yes, I prefer it to nano).
Or except if they need to blog. Or manage repositories. Or manage tasks. Or read e-mail. Or...
The thing with Emacs is that it offers you an universal, consistent interface for everything text. That includes code, but also prose, notes, tasks, repositories, file systems, etc. The interface itself is also hugely extensible (with lots of packages readily available through built-in package manager), and all that extensibility works for everything.
IMO, spending more time in a typical IDE will make you a more effective programmer. But it doesn't extend beyond programming. When you do something else, you have to switch tools. In this way, spending time on Emacs has a better payoff, because the scope is both deeper and broader.
This. As my programming career extended past its first decade, I began (like many people) to feel the fatigue of constantly adapting to new editors, email readers, file managers, etc. The long-term _consistency_ of Emacs gives me an anchoring point and frees me to pay attention to deeper patterns - data structures, architectures, concepts - things that matter more than the tooling du jour.
I feel that acutely.
Emacs is shit because despite its age, it does not even meet some sane minimum requirements for text editors. No localisation. No tabs. Window cannot be maximised prior to setting some obscure option. Menu items and buttons do not have underlined letters (i.e. accelerators). The vast majority of the options cannot be accessed through the menu or dialogues, instead you get a non-editable document with embedded buttons. Configuration is stored as code. Keys cannot be rebound from the menu.
The list could go on and on. I am thoroughly disappointed with the software, I wouldn't recommend to anyone expending patience on it.
pls don't say that :( there's exactly 0 ppl in the world who get paid for writing emacs. nobody is selling the editor as snake oil liniment that ought to remove all the grievances.
> No localisation
what do you mean? I can read/type in emacs in all 3 human lang I know/use daily.
> No tabs
although `M-x speedbar` can display the list of all open buffers in a vertical fashion
> Window cannot be maximised prior to setting some obscure option
I usually just press F11
> Menu items and buttons do not have underlined letters (i.e. accelerators)
> The vast majority of the options cannot be accessed through the menu
> or dialogues, instead you get a non-editable document with embedded buttons
why do you care if it's not a 'native' dlg? the mouse works. C-s works.
> Configuration is stored as code
that's the whole point, m8!
> Keys cannot be rebound from the menu.
> The list could go on and on
I was hoping you'd mention the idiocy (I cannot find a more proper word) w/ buffers that have long lines. every time I open some 2MB xml file that was generated as 1 string, emacs suddenly becomes dog slow. this is what should be criticized, not the inability to rebound keys from the menu, imo.
> there's exactly 0 ppl in the world who get paid for writing emacs
I, too, am a free software author in my spare time and not paid for it. Not being paid for a labour of love does not make one exempt from criticism.
>> No localisation
> what do you mean?
The software's user interface and on-line documentation should be implemented in my language, but it's available only in English.
> M-x speedbar
That displays a hierarchical file browser in a separate window, not a list of documents.
>> Configuration is stored as code
> that's the whole point
Occasionally the sheer power is useful because a programming language gives you the power to do things that are not possible or very hard otherwise.
But for the vast majority of cases, most of the time, configuration should be stored in the moral equivalent of an INI file. That way I can process it externally. As it is now, I need to code a parser for elisp and replicate a decent chunk of the emacs runtime environment. That's just too difficult and time-consuming for anyone.
Very much related: http://www.cs.dartmouth.edu/~sergey/langsec/occupy/
Turing-completeness should be the exception, not the norm, and only used when actually needed, not for trivial cases.
> long lines […] emacs suddenly becomes dog slow
Many editors have that same problem, so that one doesn't bother me much.
> Not being paid for a labour of love does not make one exempt from criticism.
I'm fine w/ criticism; I'm just of an opinion that the word "shit" is a bit too much; also I'm fascinated how the current emacs maintainer handles such a complex proj
> The software's user interface
which part? the majority of the user-visible 'interface' consists of so called interactive elisp cmds (runnable via M-x ...); the help for such cmds (or the whole modes) gets extracted from the corresponding fn comments & gets updated in real time when/if the code changes.
> and on-line documentation should be implemented in my language, but it's available only in English.
this is tough. the user's manual is huge. it'd probably take a year for a pro translator to produce a meaningful result
the elisp manual is even bigger
the tutorial is available in multiple lang, though
>> M-x speedbar That displays a hierarchical file browser in a separate window, not a list of documents.
click w/ the rigth btn in the speedbar win: a popup menu will appear. select speedbar->displays->buffers
Didn't give up.
Use what you like the best.
I use Emacs for some tasks, but for example, for Android development I use Android Studio, because that is more suitable for the task.
(BTW, default Emacs is very foreign. I wouldn't use that. It takes a while until one configures Emacs to one's own taste.)
A car with a steam engine inside!
I have spent a lot of time using it, still irritated.
2) commit to it for a few weeks and become proficient
3) keep learning
Damn, I've been using it for a bit over 21 years and was hoping that I'd almost gotten a handle on it! Oh well, might as well resign myself to it.
Hmm, I just switched to flycheck. Is it worth checking out this new flymake?
For me, full clean make takes AFAIR something like 10 to 20 minutes. i5-2400, 12GB RAM, SSD drive. Still, totally worth it :). I've been running Emacs 26 for 2 months now.
$ make -j16
make -j16 156,14s user 9,37s system 714% cpu 23,166 total
So this is the first official release of Emacs 26.
It really just needs someone to make it work more reliably and then demonstrate that it is a desirable thing not just in theory but in practise. Nothing short of doing the work would be sufficient to convince the most active Emacs developers.
The person who had been doing most of the work on Guile Emacs isn't currently making progress on this end, so other interested people are welcome to participate in the effort.
(I'm a Guiler and Emacs user and strongly support the idea of letting Emacs sit on top of the Elisp implementation in Guile.)
One problem is portability, Emacs Guile means alienating Windows users. Guile does not run on Windows.
As it is now, I can use same Emacs on my home Mac system, on my work Windows 10 computer and on various Linux servers.
This hasn't always been this way, though, as far as I know. It is also not an insurmountable obstacle, but it is one of many small things that make Emacs developers worry.
Another problem that makes Guile Emacs somewhat less attractive is the difference in string handling. Emacs deals well with improperly encoded strings (because that's what people throw at it), whereas Guile prefers to either deal with byte streams or properly encoded strings. Shuffling strings back and forth between an Elisp and a native Guile representation is not very attractive.
> TRAMP has a new connection method for Google Drive