topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Thursday March 28, 2024, 11:01 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Mini-Review of GNU Emacs  (Read 21703 times)

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Mini-Review of GNU Emacs
« on: September 19, 2013, 09:51 AM »
Basic Info

App NameGNU Emacs
App URLhttp://www.gnu.org/software/emacs/
App Version Reviewed24.3 (precompiled Windows version)
Supported OSesAny, I'd assume. OK, they recently dropped support for a couple of historic DOS and UNIX versions.
Support MethodsThe gnu.emacs.* mailing lists are probably preferred.
Upgrade PolicyFree as in free speech and in free beer.
Pricing SchemeSame (unless you get Emacs with a proprietary UNIX system).
Screencast Video URLhttp://www.youtube.c...y=emacs&oq=emacs


Y1W131U.pngMini-Review of GNU Emacs

Intro:

I have been a pretty happy Sublime Text user since ST2 was in its alpha state. I even bought a license, and that's something I don't do quite often. Now Sublime Text 2 development was stopped in favor of Sublime Text 3 which brings no changes I would be interested in. So, in order to get only bugfixes, I would have to buy a new license for too much money. I'm a poor man. ;)

I tried a couple of alternatives. The one big ST feature I was looking for was "GoTo Anything", missing in all other editors except, well, Vim and Emacs (where it was easily imitatable). I took the chance to spend some time learning Emacs. Coming from Vim (which was replaced by ST2 on my Windows), I always like new challenges.

The history of Emacs dates back to the 1970s. While several Emacsen popped up and disappeared through the years (Linus Torvalds is known to use µemacs), only a few of them have stayed. GNU Emacs is the standard by now, having inspired a couple of other applications (even Mac OS X's keybindings are taken from this Emacs).


Who is this app designed for:

In contrary to pure text editors like Vim (which can be extended to full-featured IDEs too), Emacs can do anything. It comes with a quite good Usenet and Mail client ("gnus") which was the initial reason to install Emacs on my machine (yes, it is really good), you can browse the web with it, you can use the IRC and Twitter from it, you can blog from it. Emacs is designed to live in it; you should never have to leave it during your work day.

ZGXqIJC.pngMini-Review of GNU Emacs

Admittedly, most users don't need these features, they just want a good coding editor. Now guess what Emacs can be!


The Good

I already mentioned the extras, so let me just list a very few of the good parts of the editor component here:

1. The scratch buffer.
Some kind of a "notepad". Close the application and its contents are gone; great for quick notes (like this review) though. Supports syntax highlighting.

2. Perfect highlighting and indentation.
Emacs has the most sophisticated syntax highlighting and code indentation mechanisms I have ever seen. Reindentation of a copy&pasted code file is only one command away.

3. Package management.
Starting from Emacs 24, you'll get a good package manager as part of the Emacs core. New packages can even be installed automatically, updates are also taken care of. (See the "Needs improvement" section for examples.)

4. Flexible configuration.
OK, Emacs needs Emacs Lisp code for configuration. On the other hand, Sublime Text needs JSON. I'm not sure what's worse. Seriously, there are a lot of preconfigured Emacsen on the web, and while I would not recommend anyone to completely apply third persons' configurations without chacking them manually, a couple of more-or-less well documented configuration files should be enough to learn it "by doing". Here's mine (automatically installing all missing packages; read the file carefully).

5. The client/server model.
Start an Emacs server (Alt+X server-start) on your server or wherever, log into it with any Emacs client from anywhere. Neat!

... and more ...
Edit files directly on a server of your choice. Choose between Notepad (cua-mode), Vim (evil-mode, requires an extra package) and Emacs keybindings. Run your shell from within your editor window. Install emacs-eclim to integrate Eclipse with Emacs (if you feel like using Java for anything) Grow a giant beard. Never leave the house again. (OK, that's a joke. Don't grow a giant beard please.)


The needs improvement section

1. Emacs does not come with PHP support. This has (weird) copyright reasons. You'll have to obtain it by typing Alt+x package-install php-mode.
2. Emacs has a weird keybinding. This has historical reasons. You'll have to enable the CUA ("Notepad") or Evil (Vim) mode to change this. Or add your own bindings for everything. Good luck.
3. Emacs does not support PCRE regular expressions. Unlike Vim, there are not even "Perl-enabled" Emacs builds. You'll have to use "PCRE to Emacs Lisp RE" converters or external applications (like sed) if you feel like using them.
4. Emacs - OK, Aquamacs (on Mac OS X) does - has no shiny, blinking GUI (although the helm-mode which I use to simulate "GoTo Anything" comes near).


Why I think you should use this product

If you need an advanced code editor which will probably survive you without requiring you to ever pay for any update, this is yours. Grab it while it's hot. (Seriously, many people switch to Emacs these days.)


How does it compare to similar apps

If I'll ever find an editor which is similar to Emacs... no, this won't happen. (Now don't mention Vim. Vim is a text editor, Emacs is a runtime environment. Hey, you can run Vim inside a shell inside Emacs...)


Conclusions

Try it. ;D
« Last Edit: September 19, 2013, 04:15 PM by Tuxman »

superboyac

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 6,347
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #1 on: September 19, 2013, 04:04 PM »
You know, you mention a good point...the indenting and highlighting in emacs is still probably the best i've experienced in maybe over 10 years now.  every time i see a new text or code editor that does it, my mind compares it to emacs.

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #2 on: September 19, 2013, 04:11 PM »
That's one of the major "cons" of Sublime Text whose highlighting (and indentation) rules are rather FUBAR. Once you've stumbled upon Emacs, you'll notice what has been missing...

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #3 on: September 19, 2013, 05:50 PM »
Below is a stream-of-unconsciouness enumeration of some GNU Emacs thoughts...

Been a fairly happy user of anything.el / helm - though about all I use it for is selecting files to open.  That and dabbrev-expand (M-/) are what I obviously miss the most when not using GNU Emacs.

My unsophisticated git needs are mostly covered by magit.

Am appreciating the mentioned package management system (ELPA) though I've only been aware of the installing and uninstalling portions.

I continue to use and appreciate M-x shell -- M-/ gets some good use here.

Often find myself using keyboard macros to make repetitive changes to buffer content -- they also come in handy for renaming files and directories using dired.

I didn't understand the allure of Org mode until recently, but now I have an inkling of some of its potential.

I often find myself creating new frames and splitting windows when trying to follow a code path.  Being able to view more than one location of a file simultaneously has really been nice -- I see this feature only occasionally elsewhere and wish for it when I fail to find it.

Darker background colors seem to hurt my eyes less so I try to use appropriate themes -- there appears to be a bundle system now, and I tried my hand at modiyfing an existing theme by following this.

Regarding configuration, I'm not a fan of customize, but I appreciate that it can help in the discovery process.  I try to keep my settings simple and tend to start over when I set up new machines instead of carrying around something that grows over the years.  I find it quite nice to be able to express certain configurations using Emacs Lisp but I can appreciate not wanting to.

I don't currently and have repeatedly not succeeded in living inside of GNU Emacs -- I also use Vim.

Aside from the official documentation, I have found the following handy at times:


Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #4 on: September 19, 2013, 05:53 PM »
I try to keep my settings simple and tend to start over when I set up new machines instead of carrying around something that grows over the years.

Have you tried keeping it simple "over the years"?  :)
Mine is near completion, I guess.

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 11,186
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #5 on: September 19, 2013, 06:53 PM »
"GoTo Anything"

What's that?

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #6 on: September 19, 2013, 06:57 PM »
In Sublime Text, when you press Ctrl+P (or Cmd+P on those... what do they call it? "Mac" or somethings), a small box appears in the top right corner of the window, allowing you to open files, jump to a certain function/symbol or line in the current file and a couple of other things.

Demo: http://www.youtube.c.../watch?v=36NIIgcrYzE

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 11,186
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #7 on: September 19, 2013, 06:58 PM »
^ Now *that* is way cool.

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #8 on: September 19, 2013, 07:00 PM »
Indeed it is. This is one of the few GUI add-ons I miss: Emacs does not allow me to code "popup boxes". I could add a rule that opens the helm dialog in a new buffer in the top right corner (similar to what I did with my Gnus configuration above), but just for the sake of it... well, no.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #9 on: September 19, 2013, 07:07 PM »
Have you tried keeping it simple "over the years"?  :)

Perhaps in an alternate universe ;)

I do try to prune on an ongoing basis though.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #10 on: September 19, 2013, 07:37 PM »
Emacs does not allow me to code "popup boxes".

I wonder if speedbar might be hacked to do something approriate...

Then there's stuff like this.

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #11 on: September 20, 2013, 02:13 AM »
Hmm, interesting. Not sure if this can be (ab)used...
(admittedly, I still can't. Maybe someone else can.)

I have my speedbar as a sidebar (sr-speedbar).

Jibz

  • Developer
  • Joined in 2005
  • ***
  • Posts: 1,187
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #12 on: September 20, 2013, 07:24 AM »
In Sublime Text, when you press Ctrl+P (or Cmd+P on those... what do they call it? "Mac" or somethings), a small box appears in the top right corner of the window, allowing you to open files, jump to a certain function/symbol or line in the current file and a couple of other things.

This was one of the things that got me to use ST as well. This, and the way multiple cursors work -- they are a very elegant visual way to do a lot of things :-*.

That's one of the major "cons" of Sublime Text whose highlighting (and indentation) rules are rather FUBAR. Once you've stumbled upon Emacs, you'll notice what has been missing...

I agree, the highlighting varies somewhat in quality. I guess ST inherited the highlighters from TextMate, and I was surprised that even for common languages like C/C++ they are not exactly great.

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #13 on: September 20, 2013, 10:03 AM »
Multiple cursors by just clicking into the text can be used in Emacs too, thanks to the multiple-cursors package.

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,736
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #14 on: September 20, 2013, 10:31 AM »
There's also XEmacs branch for those who have not memorized the Emacs key bindings.  It boasts a familiar File Edit... Menu enabled by default.  I ran it a couple years ago in XP. It seemed quite stable.  There's also an Inno Setup of a pre-compiled Beta. I don't know what features are in the beta or how stable it is.

TaoPhoenix

  • Supporting Member
  • Joined in 2011
  • **
  • Posts: 4,642
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #15 on: September 20, 2013, 11:33 AM »
In contrary to pure text editors ..., Emacs can do anything.

Heh. When I saw that bit, I thought of (yet another!) classic xkcd.

http://xkcd.com/378/

xkcd real_programmers.pngMini-Review of GNU Emacs

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #16 on: September 20, 2013, 12:03 PM »
Now that's old. :P

There's also XEmacs branch for those who have not memorized the Emacs key bindings.

With GNU Emacs 23/24, the differences between those two are almost gone, except for some font rendering. :)
« Last Edit: September 20, 2013, 02:46 PM by Tuxman »

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #17 on: September 21, 2013, 04:31 AM »
Multiple cursors by just clicking into the text can be used in Emacs too, thanks to the multiple-cursors package.

I saw this in an Emacs Rocks! video but have yet to try it...if you are already a user, do you find it to be worthwhile?

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #18 on: September 21, 2013, 04:40 AM »
Yes, especially since you can bind all functions to mouse keys. :) More flexible than ST once it's done.

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,736
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #19 on: September 21, 2013, 09:13 AM »
Now that's old. :P

There's also XEmacs branch for those who have not memorized the Emacs key bindings.

With GNU Emacs 23/24, the differences between those two are almost gone, except for some font rendering. :)

I still see no reason not to let people know XEmacs is out there.  When I get my own machine again maybe I'll try the beta with Inno Setup install.  I just hope by then it's not stable rather than beta  :)

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #20 on: September 21, 2013, 09:41 AM »
Yes

Thanks -- may be I'll give it a try.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #21 on: September 22, 2013, 07:34 AM »
I tried multiple cursors out a bit.

Although I encountered some things that didn't work so well, perhaps it will turn out to be handy to have another way to edit multiple areas in a similar manner (I've been using keyboard macros for similar ends).

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #22 on: September 22, 2013, 08:54 AM »
Maybe you should report anything that looks strange to you. The development is quite active.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #23 on: September 22, 2013, 08:00 PM »
It appears that two of them are already known:

isearch-forward and isearch-backward aren't supported with multiple cursors. If you want this functionality, you can use phi-search.

Commands run with M-x won't be repeated for all cursors.

Another thing I noticed was that sometimes applying the changes to multiple areas was quite slow.  But patience took care of that :)

Tuxman

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,466
    • View Profile
    • Donate to Member
Re: Mini-Review of GNU Emacs
« Reply #24 on: August 09, 2014, 09:45 PM »
I've just stumbled upon 64-bit builds of Emacs 24.4-pretest. Sweet, but my window maximizing elisp code doesn't work anymore.  :(