GNU Emacs 21
Alex writes: "After a wait worthy of the Mozilla project, GNU Emacs 21 is finally released! Image support, colour syntax highlighting on terminals, nice scrollbars and tooltips, it's all there folks. Also, for the first time in it's long illustrious history (and a step forward for GNU Project development in general) it's now available via anonymous CVS on savannah. No more waiting a year for the latest features... Now all we need is a port to GTK/GNOME...." Other submitters point out that the changelog is available through CVS (this is a serious changelog!), and you might try the mirrors, or maybe some light reading while you download.
I have been waiting for this to hit slashdot for a while. I have been playing with Emacs 21 for a while now. Hacking on lisp, etc. It is *very* stable. Almost all existing packages work perfectly.
The maintainers have done an amazing job.
This release includes a number of really cool features including:
the ability to have dynamic fonts (IE new face implementation)
a header line at the top of the file for additional inforation
support for tooltips (I am working on an intellisense package)
Resize of minibuffer windows
A fringe to the left and right of a buffer for metainfo.
Font colors can be used anywhere including the modeline, within completion, etc.
Cursors are updated if Emacs is busy
Tons more stuff. See the NEWS file in the dist for more information.
Also. I have written a ton of Emacs extensions that you guys might like.
You can also check out my Emacs bookmark which contain a lot of information.
OK.
A lot of people are asking the typical questions.
IE: "Why should I use Emacs when I have a much nicer looking application that is more user friendly?"
You should *really* spend some time on Emacs. There is an *amazing* Zen type of relationship that you start to appreciate after about 2 weeks of using it.
You also should drop your prejudice of lisp (keep an open mind for about 2 weeks). Lisp and schema are *great* languages. I just wish Emacs Lisp were clooser to common lisp or scheme.
The ability to quickly write a function within Emacs, evaluate it and then *use it right away* without having to restart your editor is very addictive.
Ever need to parse or rework a file with 1000 lines? No problem. Just write a 10 line elisp script that does it for you with regexp. This took you maybe 5 minutes and saved you hours of work! yay emacs!
Also. If learning the new key bindings is intimidating then you can just remap everything.
So for example instead of learning some the "correct way" you can just remap..
(global-set-key "\C-cb" 'browse-url)
This means that everytime I hit 'C-c b' this prompts me for a URL (or tries to guess it from the current buffer) and launches mozilla for me.
Pretty cool huh?
Also... stick to GNU Emacs... AKA the *true* Emacs.
Kevin
No one has mentioned yet the coolest part. You can now point lilo at your emacs executable and boot directly into emacs. Yes, that's right no more pesky and redundant operating system in the way, emacs does everything you need anyway.
The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
The *last* thing I want is my EMACS mixed up with GNOME/Gtk. One thing I love about EMACS is its portability. It's running right now on my Windows box at home and on my Linux box at work. Making standard EMACS depend on the GNOME/Gtk libraries would just make this lovable behemoth an ungodly piece of work that would only run on GNOME.
Thank goodness that someone did it to XEmacs, which is a better place for adding silly GNOME widgets. EMACS doesn't need widgets. All it needs is text. That's part of its beauty.
I have no particular aversion to using GNOME except that it's nowhere near as mature as EMACS, and I would hate updating all of my graphics libraries so I could use my favorite *text* editor.
end of line
Want an editor for your new IDE? Drop in emacs.
Some IDEs and desktop managers seem to be trying that out. The problem is that Emacs general set of key bindings really isn't designed for use a widget in a dialog box, or as a component in a larger application.
The problem is sovereignty. Emacs assumes it is sovereign; that is, that it has the full attention of the user and everything the user does has some bearing on Emacs. Keystrokes involve the Meta (or Alt) and the Ctrl keys, so it's hard to find keystrokes that obviously fall outside the Emacs sovereign domain.
Conversely, widgets are not sovereign, they are transient and flocking. Unknown keystrokes are usually passed up to larger and larger contexts, so that it's easy to navigate from one widget to another, or to select specific widgets from afar. Accelerators in a given window manager context typically use an obvious and consistent Alt or Ctrl scheme, which precludes mixing their use between Emacs-ish widgets and the greater context of a dialog box or application window.
Emacs is nice when you want to use it AS the IDE, but Emacs within some other IDE seems to be like fitting a baseball stadium inside a football stadium: too much confusion about overlapping sovereignty, or too much orchestration to ensure only one context is being used at a time.
Those are just my thoughts. I use whatever editor will let me get my job done the simplest way that will possibly work. Sometimes that's Emacs, sometimes that's vi, sometimes that's a WYSIWYG Rich Text editor.
[
This is an honest question, not a rhetorical attempt to lure someone into a flamewar.
I've heard several accounts of advantages of XEmacs over GNU Emacs. I haven't heard anyone say "I'm familiar with both versions and I prefer GNU Emacs for technical reasons and here's why", but there must be such people. Anyone willing to step up and do a little advocacy? It might be enlightening.
Unfortunately, I'm not sufficiently familiar with Emacs and Emacs-Lisp to evaluate the differences for myself.
You should *really* spend some time on Emacs. There is an *amazing* Zen type of relationship that you start to appreciate after about 2 weeks of using it.
In my experience, choice of text editor (within reason; Notepad is pushing it and edlin is right out) has no effect whatsoever on programmer efficiency, as long as the editor is familiar to the programmer. Programming languages are specifically designed to make fancy text manipulation unnecessary. Sure, occasionally they fail in this, and it's handy to be able to program complex text manipulation scripts, but there's no advantage to doing so within the text editor, especially if it forces you to learn a new private language.
However, when you delve into something with a complex, idiosyncratic keystroke interface like Vi or Emacs, you not only spend weeks checking the manual every 5 minutes, and years programming your editor as much as you edit your programs, you develop "editing reflexes" that lock you into that editor. Emacs got bigger and bigger because people want to spend less and less time outside it, not because they're so productive, but because typing anywhere else becomes immensely frustrating, because they have to slow themselves down and catch all the little Emacs tricks they would use.
"Try something new, it can't hurt!" "You can't judge it until you've given it a fair try over a couple of weeks!" If you really believe these claims, why not spend your whole life switching text editors, just to "be fair?" Learning Emacs is a big investment, and whether it makes you more productive or not, you won't feel like abandoning it after all that.
At least 99% of time spent editing programs is entering new text, reading text, and deleting/substituting text manually. Your choice of text editor will only significantly affect the other 1%, maybe enough to reduce it to 0.1%, but how much effort do you want to invest in that 1%?
I'm not saying that it's necessarily a bad idea, but it's something you want to consider carefully before you leap into it. You really can't try out an editor like this casually.
I asked my email-pal: "UNIX or Windoze?".
He replied "UNIX".
I said "Ah...me too!".
I asked my email-pal: "Linux or AIX?".
He said "Linux, of course".
I said "Me too".
I asked him: "Emacs or vi".
He replied "Emacs".
I said "Me too. Small world."
I asked him: "GNU Emacs or XEmacs?",
and he said "GNU Emacs".
I said "oh, me too."
I asked him "GNU Emacs 19 or GNU Emacs 20"?
and he said "GNU Emacs 19".
I said "oh, me too."
I asked him, "GNU Emacs 19.29 or GNU Emacs 19.34",
and he replied "GNU Emacs 19.29".
I said "DIE YOU OBSOLETE NOGOOD SOCIALLY MALADJUSTED CELIBATE COMMIE FASCIST DORK!" , and never emailed him again.
If you're not on somebody's shit list, you're not doing anything worthwhile.....