
Emacs 25.1 released - tlikonen
http://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00451.html
======
mjhoy
The emacs ecosystem has really changed how I work.

I manage all of my email now in `mu4e`. I manage all of my notes, writing,
TODOs, time tracking, invoicing in `org-mode`. For interacting with git,
`magit` is simply amazing.

The most important thing is how everything works together. There is the
obvious window, frame and buffer management, the kill ring, the searching
across all open buffers. Less obvious is that while looking at email I can hit
a few keys to create a TODO, schedule it for a particular date that will show
up in my agenda, and will link back to that same email (which I can now move
out of my inbox). Or, in my programming notes file, I can link to a specific
commit for a project I'd like to come back to later.

And, the best part, which I've only barely scratched the surface of:
everything is programmable. I can write an emacs lisp function to automate
almost any part of my workflow.

~~~
tptacek
That mail workflow is good, and I use it too, but not in Emacs; most of the
task management tools for OSX can link back to a specific email.

Are there other good reasons to use mu4e? I'm an Emacs person, but not yet an
"I do my email in Emacs" person.

~~~
bluejekyll
I think you more mean, "I'm not an 'Emacs is my Operating System' person".

There are many people who use Emacs as their OS, its never been appealing to
me, because I like the richness of other tools.

There is a question though, are OSes doing enough to make the integrated
experience like Emacs something that's done system wide? I think Apple comes
close to providing the set of things you want, but it still feels tacked onto
the top, rather than more deeply integrated.

~~~
ncouture
It's a great question and a comparison I try to exercise regularly against
different Emacs components I use.

From someone who never touched OS X, how would you compare its system-wide
software integration with Emacs?

~~~
bluejekyll
I think Apple calls these *Detectors:

[https://developer.apple.com/reference/foundation/nsdatadetec...](https://developer.apple.com/reference/foundation/nsdatadetector)

They essentially act as regexes that when match allow for an external
application to be called with that text sent as a parameter. This allows for
dates to be clickable and create and event in a calendar for example.

They also do a good job of taking phone numbers from emails and when an
unknown call comes in suggesting that it might be the person who included that
in an email.

These features generally work well in their apps, but I think there's less
support for third parties to create custom options (though I haven't actually
tried so not sure).

------
avar
For the uninitiated: Emacs major releases start at X.1, not X.0. So this is
the first 25.X release, not some minor version release.

The last major version, 24.1, was released in June 2012, so this represents
over 4 years of development.

------
aban
Great news and congrats to everyone involved!

Among the highlights of this release is Xwidgets, which allows embedding GTK+
widgets inside Emacs buffers.

One such widget is WebKitGTK+, a full-featured port of WebKit for use in GTK+
apps. As a consequence of this you can now browse the internet and maybe watch
some YouTube inside Emacs [0].

[0]:
[https://www.reddit.com/r/emacs/comments/4srze9/watching_yout...](https://www.reddit.com/r/emacs/comments/4srze9/watching_youtube_inside_emacs_25/)

~~~
kfrz
Only yesterday I discovered I could play an adventure game in emacs. Then I
discovered a bunch of layers and modes that were awesome. I haven't begun to
scratch the surface, but if I buy a new Nexus 6P can I just flash Emacs on it?

~~~
kaushalmodi
You do not need to flash anything. It's already available on Android phones
even without root. I use it on unrooted Nexus 6p.

Google "Termux emacs".

~~~
56quarters
+1 for Termux.

I started using it purely for the novelty of running emacs on my phone (a moto
x pure) and it's a great piece of software. It's even open source!

[https://github.com/termux/termux-app](https://github.com/termux/termux-app)

~~~
blatant
How do you use it? I couldn't imagine using Emacs with a software keyboard.

~~~
kaushalmodi
If using software keyboard, Hacker Keyboard works great!

Otherwise, the Logitech K380 Multi-Device Bluetooth Keyboard (
[https://www.amazon.com/dp/B0148NPH9I/ref=cm_sw_r_other_apa_l...](https://www.amazon.com/dp/B0148NPH9I/ref=cm_sw_r_other_apa_lVF3xbR5D4ZM7)
) is great.

------
kozikow
Let's start a thread with "little cheries" you found in emacs! Focus on things
that you found after years of usage and you regret not noticing before.

Given Emacs scope age it's sometimes easy to miss some very cool stuff. What's
more, lots of things on Internet are outdated.

I will start:

    
    
      - elscreen - you can configure it to get tmux-lookalike inside emacs. My config: https://gist.github.com/kozikow/58b46c45a2c24406dc7cde3f18610433
      - hydra - create mini-menus in the mini buffer. Quick and reduces amount of shortcuts you need to remember. See previous point for example.
      - apropos/helm-apropos - search across all variables/functions/commands at once.
      - imenu/helm-semantic-or-imenu : get overview of all definitions in current file, including classes or functions. Works in majority of languages without special setup.

~~~
sooheon
Magit gets a lot of deserved love on the internet, but I think abo-abo (the
author of hydra, which you listed) is quietly leading a kind of revolution in
emacs usage. His trifecta of packages lispy (edit at the speed of thought in
lisps), swiper/ivy (a simple and powerful interface to every facet of your
editor), and hydra are the main reasons I use emacs over vim.

~~~
pzone
I am a long time Helm user. I tried Swiper/Ivy when they were first announced
and appreciated the speed and simplicity, but found the features somewhat
lacking compared to Helm. There has been a bit of buzz about these abo-abo's
ecosystem recently and I discovered a configuration option in Spacemacs to
replace Helm with Ivy, so I think I plan to give it another shot.

~~~
sooheon
Yeah the spacemacs-ivy implementation is a good place to start. One decision
they've made I disagree with is the abomination of a hydra they've put in
(what you get when you press C-o in a ivy minibuffer prompt). If you're
interested in a more streamlined one, take a look here:
[https://github.com/abo-abo/hydra/wiki/hydra-ivy-
replacement](https://github.com/abo-abo/hydra/wiki/hydra-ivy-replacement)

------
daylightyotei
I'm still a novice emacs user, and a kind-of-longtime vim user, heres my
"journey"

2010~2011: learn vim because I wanted to slack off studying for exams

2012: addicted to vim keybindings at this point, tell people 'I can't use
other editors without "proper" vim keybindings'

2012: also discover tmux, because i wanted the ability to use vim keybindings
and copy things in/out of shell

2012-2016: dabble with emacs sproadically, put off every time due to my vim
keybinding addiction. tried evil mode during this time, and to my limited
knowledge of emacs, things like C-u not working (scroll up half a page in vim)
tick me off and in different modes the vim keybindings would suddenly
disappear which was annoying

2016.04: discover spacemacs, try again, things work quite magically. in
addition modes like org-mode are working as I expect (no random de-binding of
evil-mode), discover new modes like magit and projectile-helm which keep me in
(spac)emacs. also supports screen splitting with (:vsp, :sp) which is great.

one thing i really like about emacs is i still use the shell (awk/sed/ag/etc)
for a lot of tasks, and since i can use the shell inside an emacs buffer,
copying-pasting out of them are incredibly easy, replacing my tmux usage.

next step for me is to get more proficient in emacs (i hope i can read emails,
do simple browsing, etc) and then hopefully setup emacs from scratch for an
exercise instead of relying on spacemacs to do everything for me

~~~
e19293001
I was once a vim user for a year and switched to emacs to look at its
advantage from vim. Keybindings gave me so much pain to adjust and took my
brain for a month to completely absorb the keybindings. And even did 'alias
vim=$(which emacs)' to force my self to use emacs. I did not try evil-mode
thinking that won't resolve my vim addiction. Now I still happily use emacs
for 2 years everyday and never get back to vim except for some circumstance
that I am forced to use vim on other computers.

~~~
progman
> Keybindings gave me so much pain

Why didn't you define your custom keys with global-set-key in Emacs Lisp? This
is one of the first things an Emacs novice should learn and do.

------
tlikonen
Character folding in searches is likely useful: simple letters like "a" also
match "á", "à", "ä"; quote char " also matches “ and ” and so on.

    
    
      (setq search-default-mode #'char-fold-to-regexp)

~~~
copperx
That's awesome.

~~~
wtbob
> That's awesome.

That's emacs.

Seriously, emacs is pure distilled awesome. I honestly don't know why anyone
uses anything else, or writes code for anything else.

------
hellofunk
I used to use Xcode for all my work. Then I had to write Clojure for a couple
years, and only used Emacs. When I got back to writing native code, I went
back to Xcode and ironically felt like I had slipped into the distant past. So
I switched to CLion, the latest bells-and-whistles IDE for C++. But all my
custom Emacs code was too powerful an adversary for even CLion and I am back
to using Emacs full-time for C and C++.

One caveat: I now use vim-mode in Emacs ("evil") which really has taken my
Emacs experience to a new level.

~~~
pvinis
I have been trying to replace Xcode with Emacs, but the biggest problem I
don't know how to solve, has been Cocoa/ObjC/clang autocomplete. If I could
have that work like Xcode, I could probably switch tomorrow.

~~~
hellofunk
I too tried to get autocomplete going in Emacs, and that is the biggest
challenge. However, I quickly realized that autocomplete is overrated. I am no
less productive without it. In fact, the "snippet" module for Emacs has
allowed me to be a lot more productive by generating keystrokes that complete
common language idioms for me quickly. In C++, for example, using push_back is
very common, and an autocomplete could help with this simple function call,
but my snippet goes further and does so more quickly with fewer keystrokes.

Autocomplete even on a major IDE on a fast machine can sometimes still take an
extra second to pop up. I can type faster than that, and I can certain snippet
a lot faster than that.

Other things like all the different ways to write for loops (the types of
iteration) I have snippetized so I can quickly generate the loop I need, which
goes much further than autocomplete would.

------
bhrgunatha
I highly recommend Mickey Petersen's annotated review of Emacs releases, based
on the NEWS file. [1]

I also recommend his book, Mastering Emacs [2]. I learned so much from that
book. It's great for both beginners and medium/long term users.

I'm mostly an autodidact so I rarely buy technical books, but I wanted to
support his efforts based on reading his blog before it was published.

[1] [https://www.masteringemacs.org/article/whats-new-in-
emacs-25...](https://www.masteringemacs.org/article/whats-new-in-emacs-25-1)

[2] [https://masteringemacs.org/book](https://masteringemacs.org/book)

------
dleslie
Emacs being able to load shared/dynamic libraries is huge; it means we'll be
able to load so files from a user's home directory, or the standard lib paths,
and use foreign functions to extend Emacs. And with XWidgets...

Well, now you could write an OpenGL game that uses an OpenAL audio layer and
displays in an Emacs frame, all in elisp. Because, why not?

~~~
rurban
Interesting, I wrote such an emacs FFI about 15 years ago, but RMS was
fundamentally opposed to it. Gtk-emacs was then based on a smaller scale FFI,
but a more generic exposed FFI was still devilish. I wanted to use a proper
AutoLISP environment then.

~~~
gkya
RMS is no longer a maintainer of GNU Emacs.

~~~
dleslie
Which has been a boon; Emacs 24 and 25 have moved at an incredible pace.

------
gkya
Emacs VC mode has a bug where all listed files in the vc-dir buffer are shown
with their basenames for at least Git and CVS repositories, and for CVS it
renders the mode unusable. I made a patch but I guess they're waiting my
paperwork (copyright assignment) to arrive so it couldn't make it for this
release. Here is the patch:
[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24082](https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24082)
for whoever uses vc-git and vc-cvs. It's in the last message there.

~~~
kaushalmodi
But please get through with the paperwork. That way your patch can be applied
to the master branch, and it will be available in emacs 25.2.

~~~
gkya
I posted it already but we have a bank holiday in my country (12 days!,
finishes this monday).

------
Koshkin
Having been using emacs on and off, both on Windows and Linux, and having
found it being useful on some occasions, I somehow can't help thinking of it
as more of a historical artifact than a toolset I would want to use on a daily
basis. Being a very powerful personal computing environment and kinda fun to
use, to me emacs still falls short in the ways that, for instance, UNIX
command line interface with its simple single-purpose utilities never did. I
am not even talking about the need to remember a gazillion of context-
dependent key bindings, because with the command-line utilities you also have
to remember the correct switches. I guess, this may be the case of needing to
make a choice; but, if I am ever to be forced to actually make one, I'd
probably settle rather for something like a full-blown desktop environment,
or, should I find myself in front of a text terminal, Midnight Commander
(whose built-in text editor now even offers syntax highlighting, for those who
like it).

~~~
Frondo
I think that's pretty crummy you're getting downvoted for this kind of remark.

I myself tend to agree with you, as a former Emacs user of maybe 10, 15 years.
For the things I used to use Emacs for (C, make files, only crude version
control integration, etc) I'm sure it'd still do fine. What I found, though,
is that my workflow and habits changed, and Emacs couldn't keep up. Or rather,
there are good-looking, easy-to-use tools that support my workflow out of the
box, and having to spend a day futzing with my editor just to get the same
workflow functionality lost its luster a long time ago. Visual Studio Code,
for example, it does great intellisense and Git integration without having to
do a thing. And I don't really mind having to use the mouse more, because,
frankly speaking, I type a lot less than I think these days; I just spend less
time on the mechanical act of typing lines of code than I used to, so keeping
my hands on the keyboard is less important than it used to be for me.

So for me, Emacs is, as you said, a historical artifact. The tools I use today
simply work better for how I work, and even though Emacs could be molded in
just about any direction, I no longer feel like it's worth the trade-off.
Tools like VSC are good enough, right now.

~~~
qwertyuiop924
Well, what about when you want to refactor Java, or get syntax highlighting on
Scheme code, or want autocompletion in your Python?

I'd rather learn one tool once, than re-learn text editing every time my
requirements change.

~~~
Frondo
Hey, that's great, I'm glad that works for you. I'd rather pick the best tool
for the job, and learn it, than try to make was was for me a mediocre tool
less mediocre.

If I were, for example, editing Java at any great amount, I'd probably look to
one of those popular Java editors (I've heard good things about, I think it's
called, IntelliJ?). I'd wager money it's more finely tuned for working in Java
than Emacs will ever be, just because there's people who want to keep making
money to write it.

And so on.

Like I said, if I were still just writing code like I used to, in an earlier
stage of my career, I'd probably be satisfied with Emacs. I moved on, though,
and do different things. When faced with a choice of learning new, good tools
and trying to hold onto my old mediocre tools, well, I'll pick the learnin'. I
think I've ended up more productive, anyway.

~~~
qwertyuiop924
...And I think the phrase "mediocre" is where we disagree. Java is perhaps the
worst example, but there are languages whose emacs modes are simply
unbeatable. The lisps, in particular, but there are others. And if the tools
aren't good enough, they can be improved.

Give a man an IDE, and he'll have the tools that IDE provides. Give a man
Emacs, and he'll have whatever tools he wishes.

OTOH, you may well have ended up more productive for the kind of work you do.
Your tools, your choice. I am willing to respect your decision.

~~~
Koshkin
Showing respect for the subjective deserves, well, respect. But it is the
insight into the objective that is interesting, and I think that it should be
recognized as a law of Nature that if something (or someone, for that matter)
is trying to be good at everything, it (or they) is bound to be not very good
at anything in particular. I am not seeing, for instance, how emacs can come
even close to what IntelliJ has to offer to Java developers - short of having
a faithful IntelliJ clone written in elisp, of course.

~~~
qwertyuiop924
Ouch. I did my best... I shall try harder next time.

My point was that while Emacs certainly isn't as capable as IntelliJ is at the
moment, It's possible to build those features upon IntelliJ. An attempt to
build Emacs's featureset on IntelliJ, OTOH, would crash and burn.

Emacs doesn't try to be good at everything - not in the conventional sense,
because Emacs is a platform. There's a lot of software built atop it, but
they're all really good at one thing: Paredit isn't Org, which isn't Geiser,
which isn't Flycheck, which isn't etags.

~~~
Frondo
FWIW, I've thought this whole exchange was both useful and respectful, even
though we obviously disagree. :)

IntelliJ is a good example, because you're right, you _could_ extend Emacs to
have a looks-and-works-exactly-like-IntelliJ mode. But now you've got two
jobs, writing your Java and developing and polishing up your editor in elisp.

Or, for my current favorite editor, Visual Studio Code, immediately upon
launching it you get intellisense via Omnisharp, really decent git
integration, all the integration you'd need with dotnet core, and a ton of
convenient stuff like search/replace across the whole project, refactoring
that works well for C# project, etc.

Could this all be reproduced in elisp? Absolutely, I have no doubt. Has anyone
put together a package to do so? Nope, though of course there are disparate
packages to solve/simplify/address these things. Will anyone create one
package? Nah. Will anyone bring it up to the level of polish that VSC provides
out of the box? Definitely not.

Much as I like Emacs, and I really did, when I started trying out new modern
editors I felt like I'd been living in a cave.

Actually, just writing this all out has made me realize that the biggest
dealbreaker for me is the lack of polish. Seeing what a modern dev experience
is like, I couldn't go back.

~~~
qwertyuiop924
Thanks.

Yeah, I don't mind the lack of polish as much as you do. And I primarily work
in scheme and lisp, where there's not much out there that can beat emacs
(apparently, there are a few that people swear by. If you have a couple grand
on hand, you can try them). The write/eval/test loop is so short and clean.
And there's integrated documentation and tab completion.

------
samuel1604
It's surprising to see so much popularity in mu4e in this threads when no one
mention Gnus, I am too much 'hardwired' in gnus and don't think i have the
'courage' to try something else but someone would know how does it compare ?

------
agumonkey
btw, windows binary build
[https://sourceforge.net/projects/emacsbinw64/files/release/](https://sourceforge.net/projects/emacsbinw64/files/release/)
(from 2h ago)

~~~
copperx
Is Emacs all that useful on Windows where even the most basic Unix commands
aren't available? Is M-x grep even available?

Or does Emacs require a Cygwin / Ubuntu Subsystem?

~~~
douche
The nox version works beautifully in the new ubuntu subsystem bash console.
I've never tried using any of the graphical versions.

~~~
tonyarkles
Any chance you were successful at building it from source in the Ubuntu
subsystem? I got some weird errors related to maybe shared memory or something
and gave up.

~~~
douche
No, i just did sudo apt-get install emacs24-nox. I haven't had great luck with
build tools. I broke the whole thing two or three times trying to install
ghci.

~~~
KC8ZKF
Have you noticed it is impossibly slow to start up?

------
dman
XWidget support is really good. Finally have C++/Opengl docs showing in the
browser inline in emacs and now that the browser is inline, theres no reason
to leave emacs anymore.

------
100k
Somewhat related: I am starting a new job soon and I want to get Emacs setup
"right" this time. I've been using Aquamacs for the last several years, but
I'm wondering if there is a better way to use Emacs on the Mac these days?

As part of this, I want to get my .emacs under version control and shared
between computers so I have the same settings everywhere. Is there a good way
to do that with Emacs packages installed through MELPA/ELPA?

~~~
0xCMP
I like brew installing `emacs-mac`[0] which installs a port run by a developer
in Japan. My favorite feature of it (among other amazing osx specific changes)
is the sub-pixel scrolling support in emacs.

When you setup your `init.el` you can call `(package-install x)` and if the
package is already installed it'll do nothing but just make sure it's there.

If you wanted the whole thing figured out ahead of time I recommend using
Spacemacs[1]

[0]: [https://github.com/railwaycat/homebrew-
emacsmacport](https://github.com/railwaycat/homebrew-emacsmacport) [1]:
[http://spacemacs.org](http://spacemacs.org)

~~~
100k
Thanks! Did not know about package-install, that's very helpful.

Spacemacs looks cool. I have so many years of emacs keybindings that I'd have
to turn that off, but I really like the look of what they're building.

~~~
pzone
I ported over a few years of custom keybindings and other config to Spacemacs.
It was not too difficult, basically you can just tell Spacemacs to load
whatever.el at startup.

Eventually I switched to evil-mode and I rarely use most of my old
keybindings, but I still keep them around!

------
jaequery
If you are on OSX, I can't stress enough how important it is to swap opt with
cmd. Not sure if there's a better one but I use cmdkeyhappy for that.

~~~
sjm
With the emacs-mac-port by Mitsuharu Yamamoto (available on railwaycat's
homebrew tap) you can set this in Emacs with (setq mac-command-modifier
'meta).

~~~
jaequery
True, but it's also very useful to have the same key bindings while using
terminal too!

------
ziggrat
Interesting stuff going on in this thread. I use Emacs for everything except
for Mail, since i never liked wanderlust, should try some other mail reader.
But i just realised there is some great functionality from this thread i never
knew existed like 'which-key', org-mode(wanted to use this from long) etc.

~~~
cmiles74
There's also a decent notmuch mode that is pretty good at reading and
organizing mail. [https://notmuchmail.org/notmuch-
emacs/](https://notmuchmail.org/notmuch-emacs/)

------
pacomerh
Is Emacs a monolith?. I haven't used this editor but from what I read people
like it because they do everything there. Is this true?. If so, it doesn't
sound like a good idea to me. Anyone has more insight of the goods and bads
about Emacs.

~~~
throwanem
Some people do everything there. They tend to be very vocal. Others just edit
text with it. They tend not to be. Most are somewhere in between. We usually
try not to be too annoying.

From the perspective of usage, while Emacs has a great deal of functionality,
you need not use any of it that you don't want to. Indeed, Emacs is so shy and
retiring about all it can do that you really need not even know about anything
beyond text editing, unless you decide you want to.

The main drawback from my perspective has been interoperability. Org mode is
brilliant, but when everybody else uses Evernote or OneNote, Org can't be the
only thing you use unless you want to be that guy.

And using Emacs at all makes you likely enough to be seen as "that guy" anyway
that it's worth not living up to the stereotype. I wish I were joking when I
say that, in adult life, I've been the object of far more unfriendly regard as
a result of my choice of text editor than as a result of my homosexuality,
which I've never really been at particular pains to hide. It is easier, in the
modern tech industry, to be gay, than to be an Emacs user. That's not Emacs'
fault or that of its users, but it is real, and perceptions matter; if you're
averse to the occasional funny look, this may be worth taking into account in
your consideration of whether to try the editor.

------
cm3
Full changelog: [https://github.com/emacs-
mirror/emacs/blob/emacs-25.1/etc/NE...](https://github.com/emacs-
mirror/emacs/blob/emacs-25.1/etc/NEWS)

------
ceasos
perfect reason/time/trigger to revisit/clean my dotfiles closet :) though
preference is over emacs25-git :D

------
syastrov
Congrats on the release.

But I'm wondering, why not provide the PGP signatures for the code over HTTPS
instead of HTTP?

~~~
SEMW
Does it matter? If your connection gets MITM'd and someone changes the .sig
files, they'll no longer validate against GNU's code-signing public key (which
you may already have, or if not, the link to download it _is_ https
([https://ftp.gnu.org/gnu/gnu-keyring.gpg](https://ftp.gnu.org/gnu/gnu-
keyring.gpg)). (Unless of course that person has GNU's private key, but in
that case you've lost before you started)

(Incidentally, if you just change the url from http to https (or use the EFF's
https-everywhere addon) it works fine, the server does support it)

~~~
fnj
Yes, it matters. https is not _perfect_ , but it is 99% less vulnerable than
http.

~~~
cyphar
I think you should read what GP said again. To repeat: there's no point in
downloading a PGP signature over SSL -- if you have the signing key locally
(which you _can_ get over HTTPS). Because you use crypto to verify the
signature and if someone MITMs you then the keys won't match. The reason why
most people use HTTP for distribution (including many GNU/Linux distributions)
is because mirror sites generally don't have HTTPS, and so you would have to
require everyone to connect to your main server (which increases bandwidth and
latency costs).

