- New packaging system and interface (M-x list-packages) for
downloading and installing extensions. A default package archive is
hosted by GNU and maintained by the Emacs developers.
- Support for displaying and editing bidirectional text, including
right-to-left scripts such as Arabic and Hebrew.
- Support for lexical scoping in Emacs Lisp.
- Improvements to the Custom Themes system (M-x customize-themes).
- Unified and improved completion system in many modes and packages.
- Support for GnuTLS (for built-in TLS/SSL encryption), GTK+ 3,
ImageMagick, SELinux, and Libxml2.
You can also find out about the important changes from:
C-h r m antinews RET
This provides a changelog in the opposite direction, which is entertaining:
For those users who live backwards in time, here is information about
downgrading to Emacs version 23.4. We hope you will enjoy the greater
simplicity that results from the absence of many Emacs 24.1 features.
YES! E.g. try running emacs on $host and run bbdb; go to some other machine and ssh ~/.bbdb $host:~/.bbdb; then ssh $host emacsclient. Now it's unresponsive until you walk over on your feet to $host and answer the revert-or-not question :(
You can use both in the same file; you just need to declare the dynamic ones using defvar, etc. If you turn lexical-binding on blindly, the compiler will usually tell you which variables you need to mark as dynamic.
It has to be this way to remain backward-compatible. Similar to the issues Perl is going through with things like enabling strict by default (you have to request at least a certain version, I think 5.12), and distinguishing a Perl 6 file from Perl 5 one.
What functionality does prelude provide? Unless I'm missing something, the website suggests that you can find out by "reading the source."
I had a similar experience once with the emacs starter kit [1]. Though it's a noble effort and probably does have a ton of great features, there are some problems: you pretty much get all or nothing (ESK split it out into a "core" and "per-language" set of libraries but still, there's a lot of stuff) and it's hard to tell which things are emacs builtin and what is customizable. If you disagree with a customization you're SOL; I knew enough about emacs to know that some things had been customized, and I didn't like them, but it was nigh impossible to find out where they were customized and how to turn them off.
It reminds me of the libraries vs frameworks discussion [2]. Emacs works well with libraries (with little elisp functions counting as "mini-libraries"), and the ESK/prelude seem like frameworks.
I'm not trying to pick on these toolkits in particular. They are probably a good way to start out with emacs--I know that the ESK provides a bunch of features to make it more "friendly" out of the box for someone who is coming from something like TextMate.
Most "old-school" emacs people I know have their own .emacs that have accumulated over years and years of trying to solve specific problems or customize that one thing that's annoyed the crap out of them for a while. My .emacs is not pages and pages, but it does have some good stuff in it.
What I'd love to see (and maybe I'm inviting myself to do this) would be a tool (maybe ELPA is this tool, though It's hard to know) which allows you to search for, browse, and install elisp snippets to help you out. ELPA is good for bigger libraries (i.e. major modes) but not for "how do I create an unfill-paragraph function?"
For what it's worth, I've come around to this viewpoint. I rewrote ESK for version 2, and the emphasis was on packaging as much functionality in independent packages as possible. So as of v2, the Starter Kit is mostly just about providing a default set of packages and turning on a few flags that it's just crazy to leave off (like ido). But this way more of the functionality is available to everyone, not just users of ESK.
Anyway, it certainly needs more documentation, but these days I recommend the Starter Kit more as a source of inspiration than something people should just use outright, at least if they're not in a hurry.
Thank you so much for ESK! It's really helped me get started in emacs. Also, could you think about adding undo-tree as a default for ESK? I really feel like that would be a worthy addition.
Glad you like it. I think rather than further development on the Starter Kit, effort would be better spent towards coming up with a good overview of the ecosystem, documenting available packages and how they work together.
And pushing improvements (like saner defaults, and documentation for some of the under-documented built-in packages) upstream to Emacs itself.
For those reasonably comfortable with Emacs, I think you should build it from source, and get into the habit of fixing tiny documentation problems as soon as you come across them. Mind you, I have submitted a couple such patches to the ido built-in help and they have languished un-noticed for 2 months.
P.S. Another thank-you here for the starter kit -- I no longer use it, but I did for a year or so and it did teach me several features I wouldn't have known about otherwise.
Pushing upstream is absolutely the best way to get things more widely used, but unfortunately changes to the defaults often get strong pushback from long-time users. It's a very politicized process; if improving Emacs itself were easier the Starter Kit never would have existed.
"Short Story: el-get allows you to install and manage elisp code for Emacs. It supports lots of differents types of sources and is able to install them, update them and remove them, but more importantly it will init them for you."
I'm one of the el-get devs. I'd say the main advantage of el-get for the gp is that just installing it doesn't modify your emacs config in any way. In contrast to something like the ESK, it is not an opinionated set of defaults to help new users get started. It is literally nothing but a system for installing and initializing elisp code. Many of the recipes provide some initialization code to set up the code being installed, but you can completely replace that code with your own if you don't like it (or you can decide not to use the provided recipes at all and just write all your own).
It's definitely a more hands-on, low-level tool than ESK, designed for those who want the fine-grained control of a manually-built emacs config without all the manual labor of git-cloning (or hg cloning, or downloading and untarring, or cvs checkout-ing) the several dozen elisp repos that your config uses. It definitely matches my use case, which is why I kept submitting so many pull requests that the original author finally just gave me a commit bit :).
Note that I'm not saying that el-get is in any way better than ESK (I've actually contributed to ESK as well even though I don't personally use it, since ESK uses my ido-ubiquitous library). El-get is just designed for a different purpose.
Ugh. The guy maps a bunch of global keybindings, including hippie-expand and ibuffer, loads a low contrast color scheme as default, but still has the temerity to write:
"I firmly believe that the one true way to use Emacs is by using it the way it was intended to be used [...] That's why I've disabled all movement commands with arrows - to prevent you from being tempted to use them."
There's a slightly annoying regression (to Emacs 22, behavior, I believe) in the Mac version. Some Unicode characters (like —, “, and ”) cause the line to expand in height slightly. Does anyone know of a fix?
If you modify the default font, you also have to change the default "fontset", because merely changing the default font doesn't install it as the font for unicode characters.
Last I checked your builds didn't had `ns-toggle-fullscreen`. Is that still the case?
EDIT: Looks like emacsforosx does not compile Emacs with support for above command. Will you consider it? I totally understand distributing plain vanilla version though!
No, I don't want to support a bunch of little patches on top of emacs.
But it's frustrating for me, too, because I want the feature as much as anyone else. I've been making do with "(setq ns-auto-hide-menu-bar t)" which is close to the desired behavior, especially when combined with maxframe [1]. It still has the window's title bar, so it's not exactly there.
Homebrew includes that patch, and the recipe has been updated for emacs 24.
brew update
# Lion only (or if you don't have xcode?)
brew tap homebrew/dupes
brew install apple-gcc42
# put these in your .bashrc
export HOMEBREW_USE_GCC=1
export HOMEBREW_VERBOSE=1
# /Lion only
brew install emacs --cocoa
brew linkapps
I had trouble with that release. I haven't tried any others yet (or tried compiling from source). The problem: after loading my init files (https://github.com/jimm/elisp) and loading a file there is something seriously wrong: the file isn't displayed properly (I'm not seeing the top of the file) and the mouse and keyboard don't let me navigate around the file. It so broken I had to re-install 23.4.
Maybe it's something in my init files, but I have not yet had time to figure out what's causing the problems.
I've traced it down to font selection. When I change the font to a larger size (Monaco or Menlo) then the top of the contents of the frame is off the screen, "above" the Mac menu bar. Strangely, Courier New works correctly with larger font sizes.
I tried the suggestion elsewhere on this page about setting font and fontset together, but that didn't fix the problem.
It's really easy to compile your own binary (if you have Xcode or the new separate compiler from Apple). Grab the source, "./configure --with-ns && make install", and Emacs.app appears in the nextstep/ subdirectory of the source tree.
This might not be appropriate for your situation, but I have found it surprisingly easy to build emacs from git by using MinGW/MSYS. If you need the exact command line, send me email or reply here and I'll post it when I get back to the office on Monday.
The only non-trivial steps I had to take were to track down the "dev" msys packages for jpeg, png and xpm libraries. I do not link my nightly builds against gnutls, just to set expectations [my experience with non-native security stuff on windows leads me to avoid that headache; YMMV].
Note to anyone attempting to build this on OS X: If you're getting strange errors when running make, ensure that you don't have the Mono framework installed as well. If you do, move it out of the way ( from /Library/Frameworks/Mono.framework to some other directory) before you try to install. After the install, move it back.
checking host system type... i386-apple-darwin11.3.0
configure: error: Emacs hasn't been ported to `i386-apple-darwin11.3.0' systems.
Check `etc/MACHINES' for recognized configuration names.
Having ELPA built in is really nice. If I'd had a package manager back when I was first learning Emacs, I think I would have resented it a lot less. And even now, having it available without fiddling with anything will be such a nicety.
I'm looking forward to trying ELPA (my .emacs.d is so full of stuff I've not yet gotten around to trying it).
bi-di support is also really nice, I've been copypasting into other programs until now.
Also always nice to get a new org-mode version (though I'm never quite sure whether using org makes me more productive, or whether playing with new org features makes me procrastinate more).
Favourite feature that makes you go O_o : "`nato-region' converts text to NATO phonetic alphabet."
Nix and apt are very complementary to each other; apt has all the stable never-breaks stuff, and nix has all the latest new code. And when you pull in something too new that breaks, you can roll it back trivially.
- New packaging system and interface (M-x list-packages) for downloading and installing extensions. A default package archive is hosted by GNU and maintained by the Emacs developers.
- Support for displaying and editing bidirectional text, including right-to-left scripts such as Arabic and Hebrew.
- Support for lexical scoping in Emacs Lisp.
- Improvements to the Custom Themes system (M-x customize-themes).
- Unified and improved completion system in many modes and packages.
- Support for GnuTLS (for built-in TLS/SSL encryption), GTK+ 3, ImageMagick, SELinux, and Libxml2.
This looks great. :)