Hacker News new | past | comments | ask | show | jobs | submit login
What’s New In Emacs 24 (masteringemacs.org)
109 points by fogus on Dec 9, 2011 | hide | past | favorite | 39 comments



I wait for new Emacs versions like I waited for Christmas when I was a small kid. And I don't peek into the development branches, I want to take time and enjoy the changes upon the release of the next major version.

Each new Emacs version shows little on the surface which you might expect from a software suite that has had everything and the kitchen sink since the 90's, but in the inside there's an ongoing morphosis into something greater, that quietly reveals itself version by version if only you take the time to study not only what's new but how the new things work. Then suddenly, say, five years later, a new usage paradigm emerges seemingly out of nothing eventhough Emacs has had the bits and pieces in for many revisions already. This is just fascinating. For example, the various completion subroutines have slowly converged into a more solid, generic completion subsystem. And best of all, you have the source code to play with.

If Emacs is nearly an operating system then it's kind of nearly a software Lisp machine.


> If Emacs is nearly an operating system then it's kind of nearly a software Lisp machine.

Which is why it is such a pity that they are still putting so much valuable work into fighting Elisp instead of having a full fledged CL with a native compiler under the hood. The FSF even has two own, GPL'ed CL implementations, CLISP and GCL, but because of RMS' hatred of CL, let them bitrot and never really cared to use them for anything.


Too much useful work is already done in elisp. If emacs maintainers were going to move to CL, they'd have to make sure that nothing breaks, otherwise it would almost surely result in fork.


> Too much useful work is already done in elisp.

I'm not contesting that, just saying that it is a pity (from the perspective of the wealth of the overall Lisp ecosystem) that all this valuable work has been done in Elisp and not in Common Lisp. Moving to Guile will probably take several years, and even if it really works some day, it will be just another insular Emacs-only solution, because nobody else is using Guile. It wont benefit the overall Lisp ecosystem in any way.


Specially when there's an effort to use guile (scheme) in emacs: http://www.emacswiki.org/emacs/GuileEmacs


I wonder if there'd be a way to create an interop mode, which might look something similar to the way they are handling the lexical vs dynamic scoping.

That way authors could transition from elisp to common lisp.


There's already an effort to do this using Scheme, it's just not ready for this release.

Is CL really that much better than Scheme?


Not from a language-theoretic standpoint.

From a pragmatic standpoint, all standard-conforming Common Lisp code runs on a conformant implementation. Schemes often tend to diverge (and they have 6 different Rn standards). So I think CL is 'better' than Scheme, for that value of better.


I get the appeal of moving towards a more general lisp dialect, but does it have to be CL, because Scheme seems pretty reasonable too, which there are also full-fledged GPL implementations owned by the FSF. And there's already an effort to move Emacs to it, it's just not ready yet.


> If Emacs is nearly an operating system then it's kind of nearly a software Lisp machine.

Correct or not, I've tended to think of Emacs as an LVM ([e]Lisp Virtual Machine) for years. The "bloated kitchen sink" argument holds little sway with me any more than saying that OpenBSD is a bloated kitchen sink because it can run a lot of software too. Emacs happens to be an awesome Batteries Included LVM.


> If Emacs is nearly an operating system then it's kind of nearly a software Lisp machine.

This is not an accident. GNU Emacs was probably intended to be the first step towards a complete lisp system for GNU, akin to zmacs on symbolics.

The free software manifesto mentions lisp several times http://www.gnu.org/gnu/manifesto.html


Just a note for anyone using 23 and waiting with bated breath:

I've been building emacs from trunk on a regular basis, and using it as my primary editor, for about a year now. It's very stable -- I have so far had to find out about a breakage once, and it was already solved by the time I encountered it.

It's way nicer than the last major release. Give it a go.


Sorry about the site outage; my little linode 512 instance took a pounding :) I've moved it to a larger one. I hope that'll do!


Just out of curiosity, were you using a caching plugin, such as WP Super Cache?


Adding a package manager to the vanilla distribution is, in my opinion, the biggest change in this release. This is going to make finding and installing great elisp packages so much easier, especially for new users.

http://www.emacswiki.org/emacs/ELPA


I'd love to take this opportunity to dive into Emacs, but the past few times I've tried, it's felt like my keyboard was fighting against me. For those of you using Emacs on a Macbook (or an Apple keyboard), which key do you use for 'alt'?


I use the "Apple" key ...

Put this in your .emacs file

  (setq mac-option-modifier 'super )
  (setq mac-command-modifier 'meta )
I also use the System preferences to map the Caps-Lock key to Ctrl - A lot easier especially since a lot of keyboards tend to move the CTRL key around


The worst are the Thinkpad keyboards that have Fn where the left Ctrl should be. This is the sole reason I started to use Caps Lock for Ctrl and now I'm in love with it.


That's my favorite feature of Thinkpads: that means I cannot damage my pinkie any further :)


I remapped the Apple key for alt on my MBP. It truly is frustrating; alt is not in a very nice position at all. FN is where I would prefer ctrl to be.

When I really need to get writing at home, I plug in a MS N4K and go at it.


See the sibling comment by raju for the specifics, but you can actually bind the Fn key with the `mac-function-modifier' variable.

I'd thought for a long time that Fn was a hardware/OS-only key based on the lack of apps that use it, but it seems Emacs has found a way.


I use 'option', also labeled 'alt' on my keyboard. You can set it to act as 'meta' via your preferences. Use iTerm 2.


I use CarbonEmacs [1] on my Macbook. The default 'meta' is the cmd key, which I prefer, as it's closer to what I'm used to on other keyboards. I also remap (globally) caps-lock to be a second ctrl.

[1] http://homepage.mac.com/zenitani/emacs-e.html


For the record, Carbon Emacs is Emacs 22, which is very old (c. 2007) and deprecated.


I pretty much only use emacs on a mac. This means I don't care about having a keymap that is the same on a linux box.

So, I use option for 'alt', but here's the great thing. You can use the command key for other stuff! I've got keybindings for my most common actions.

command-j -> ido-find-file

command-d -> anything

etc


I use the Apple key as Meta and the Caps Lock key for Ctrl. On a Linux box I use the Alt key as Meta and the Caps Lock Key for Ctrl. With this setup the keys are in the same location for every keyboard and I don't get so confused.


Alternately, go the Steve Yegge way and rebind meta to C-x-C-m and C-c-C-m:

  (global-set-key "\C-x\C-m" 'execute-extended-command)
  (global-set-key "\C-c\C-m" 'execute-extended-command)


These bindings are only for M-x. This is still useful (M-x is really common), but it's not a full replacement for all meta bindings.


Exactly. The problem with keyboards is that the alt key is right under your thumb, right where Ctrl should be. You might take a look at http://xahlee.org/emacs/ergonomic_emacs_keybinding.html , which is a remap of common emacs keybindings to fit underneath the alt key.

Sure, this is an invasive change, but it saved me from RSI.


Esc


option


I use option like the others have said. I am like you, diving into Emacs; in my case purely for the swank/slime lisping environment.

It's been pretty difficult as I am a dyed in the wool VIM user. Someone on HN recommended the Evil plugin (http://gitorious.org/evil/pages/Home) for an approximation of VIM movement and other bindings. It surprisingly works pretty well. It's letting me remain productive while I slowly adapt to the emacs key-bindings over time.

I am using emacs-prelude as well (https://github.com/bbatsov/emacs-prelude) which is a startup scripts kit.

I'm still not sold on emacs yet, but I am giving it time.


I've been using Evil for a couple of months and love it. I switched from Viper+vimpulse and haven't missed a beat. It works really well and was easier to setup. Any VIM user considering Emacs should give it a shot - the best of both worlds, really.


I've been using evil mode and don't really see why you'd even want to move away from the vim bindings. Get the best of both worlds, the nice vim movements and model editing, plus all the nice emacs packages and being able to use elisp instead of vimscript.


Sadly one of the things I was most looking forward to didn't make it into 24. Threading T_T


I would really like to edit LaTeX in emacs (people always tell me how great the latex emacs packages are).

Given I am on Mac OS X, can someone give me a way to way to get to a "all the shiny bells and whistles" emacs with latex editing?

I tried this a few months ago and got stuck behind packages, package managers, macro packages which are for various versions of emacs. I was never sure if I'd actually got things loaded.


My impression is that if you install TexLive and Aquamacs, you are pretty much set. If you also install Skim, you've got a nice synctex setup. You might need to tell aquamacs that you are using skim etc, but this is explained either on the aquamacs or skim faqs.


This isn't a really helpful reply since I still have to set it up myself, but I noticed Homebrow has got Auctex although it needs to install the full TeX distribution as well.


Really wish I could get PCRE search and replace...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: