Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Software

Emacsy: An Embeddable Toolkit of Emacs-like Functionality 127

An anonymous reader writes "Emacsy is 'a Guile library that provides Emacs-like facilities — keymaps, minibuffer, tab completion, recordable macros, and major/minor modes — for applications natively.' However, to my eyes, it looks more like an attempt to revive the development style done on Symbolics Lisp Machines that survives to some extent in Emacs. Might be a boon to Emacs users, but where's a comparable VIM alternative?" The skeptic in me asks what benefit this would have over just using libguile directly, and how it fits in with efforts to port Emacs itself to Guile and things like Englightenment's pluggable event loop. The example code seems to imply Emacs-like APIs will be used (despite not intending to replace parts of Emacs), even when better alternatives exist. Some of the proposed components seem orthogonal to existing interface toolkits; others seem to compete with components provided by various Free desktop environments.
This discussion has been archived. No new comments can be posted.

Emacsy: An Embeddable Toolkit of Emacs-like Functionality

Comments Filter:
  • Now all we need is for someone to use Emacsy to implement vi. That would be totally mindblowing!

  • by gorrepati ( 866378 ) on Monday May 21, 2012 @07:22PM (#40071507) Homepage
    My personal feeling about emacs is it is very beautiful(yes). Let the point-and-click gui-using critics learn a thing or two about why making everything programmable(in a easy way, unlike eclipse) is an awesome idea.
    • by SuperKendall ( 25149 ) on Monday May 21, 2012 @07:38PM (#40071657)

      Let the point-and-click gui-using critics learn a thing or two about why making everything programmable

      No-one can really understand this without years of use though. Key bindings (which are widespread) are nice and all but it is as you say, the sheer ease of programability of the thing that makes Emacs so amazingly useful that I still turn to it even these days (though I mostly use integrated text editors now).

      Only when emacs becomes really embedded in something modern will other people see the light.

      • by LWATCDR ( 28044 )

        I used microemacs back on the Amiga but the learning curve on it is just so high. Add in that IDEs now do so much more than just editing text and the benefit to time ratio for emacs just isn't their for me.
        Too bad because I would really like to use it or or vi but their are must not enough hours in the day.

        • I used microemacs back on the Amiga but the learning curve on it is just so high.

          I would TOTALLY agree with that.

          Add in that IDEs now do so much more than just editing text

          That is also very true. The sad thing is there's no reason Emacs could not be just as helpful, it just never got advanced in quite the same way some popular IDEs did.

          That is why what it would take for people to understand emacs is for it to be really embedded into a modern IDE, so that you could keep using the great GUI components while

        • well, you have
          http://cedet.sourceforge.net/ [sourceforge.net]
          and the
          http://ecb.sourceforge.net/ [sourceforge.net] .
          i dont think that there is much/if anything missing if you configure cedet correctly.

        • by jrumney ( 197329 )
          Microemacs is a completely different beast than Emacs. It has all the arcane keybindings with only a fraction of the functionality of Emacs. It really only exists so that Emacs users can have an editor that feels familiar on underpowered platforms that cannot fit a full Emacs installation. I definitely wouldn't recommend it to newbies, and you should in no way judge Emacs based on your experience with microemacs.
          • by obsess5 ( 719497 )
            You're correct on most counts, except maybe regarding newbies. I started out with a commercial (Unipress) version of Emacs, heavily customized, in the late 1980s. Our overlords (the contractor we were subcontracted to), rather than buying the source, foolishly bought the binary version for Motorola-based Sun workstations, so we were out of luck when we switched to SparcStations. I downloaded the original MicroEmacs, modified some of the code for my own purposes, and heavily customized it. I've used it o
      • Not really. The hard part is knowing Lisp and I agree that too few younger people bother with it anymore. The actual interface to Emacs for configuring is well documented though with tons of examples. Of course I've been using for 25 years so it's second nature. When I try to use an IDE it is sheer frustration having to click a thousand times to do something simple. I use both Emacs and VI, and I can live without VI easily but would pull my remaining hair out if I couldn't use emacs.

        Building up key mac

    • Emacs is a good idea buried under a pretty bad implementation.

      My complaints are threefold:
      * Not mouse friendly. While keyboard shortcuts are awesome, they're very hard to use without practice. Having every option in a menu, somewhere, means that when I want to do some rare thing like "invert the case of these letters", I can just hit Edit->Characters->Toggle Case instead of checking the manual pages to find that it's Control-Meta-i or whatever. If I use that command often enough, I'll learn the shortc

      • it's still ugly.

        if you happen to be on a mac, aquamacs does a pretty good job of mixing emacs-style keystrokes with the "normal" ones, cmd-Z, cmd-C, etc.; it also provides pull-down menus. but beyond that, it's still just as ugly, and even after many years i still get the vertigo whenever i have to go into the emacs preferences system.

        aquamacs also comes with a lot of nice packages included.

        one of the problems with emacs is that it just has way too many commands to fit reasonably in standard menus. aquamacs

        • Actually, I am on a Mac right now. It's normally my backup desktop, but my primary machine's off in the Great /Dev/Null In The Sky and its replacement is taking forever to ship for some reason.

          Installing it now, maybe it'll work out well.

        • I agree with Aquamacs. It's very nice. I went back to XEmacs on my windows machine and it feels a bit clumsy (but then everything on Windows feels clumsy, and FSF Emacs on Windows is even worse). Most of the same stuff they add in Aquamacs can be put into normal Emacs as well as an option, and some are already in Emacs and just need to be switched on.

        • by tuffy ( 10202 )
          If you like the undo stack, Undo Tree [emacswiki.org] will blow your mind.
      • You can hardly blame Emacs that programs which came years later chose different keyboard commands.

        As for not being keyboard-centric rather than mouse-centric, some of us consider that a feature. Being created before mice has something to do with that of course but having to pull your hands off the keyboard to find the mouse is terribly slow. Yes, there's a bit of effort needed to learn enough to make running Emacs comfortable but when you're there you'll find how painful mice are. By the way, C-/ is only

        • You can hardly blame Emacs that programs which came years later chose different keyboard commands.

          But I *can* blame it for not giving up and joining the crowd. The only program I regularly use that doesn't use the "Standard Shortcuts" is bash - and the only commands I need to know are ctrl-a, ctrl-e, ctrl-k, ctrl/alt-f, ctrl/alt-b and ctrl-d

          As for not being keyboard-centric rather than mouse-centric, some of us consider that a feature. Being created before mice has something to do with that of course but having to pull your hands off the keyboard to find the mouse is terribly slow. Yes, there's a bit of effort needed to learn enough to make running Emacs comfortable but when you're there you'll find how painful mice are. By the way, C-/ is only harder than C-z if your right hand is stuck over on the mouse.

          Given a choice between "take my hand off the keyboard to click some menus" and "open a new terminal window, open the man page, and look up the keys I need", I'll take the former every time. Hell, given a choice between reading the manual *again* and just doing it *ma

          • Re: (Score:2, Insightful)

            by Anonymous Coward

            But I *can* blame it for not giving up and joining the crowd.

            First, emacs bindings are more customizable than quite possibly anything else.

            Second, they are more efficient than the "standard bindings" if you're a touch typist (you don't have to move your hands to the arrow keys to move around with the keyboard, for example), and they provide far more features than same.

            It's a power user tool. If you don't have power user needs, and don't want to deal with the steep learning curve, that's fine - there's nothing wrong with that at all. There are plenty of other tools

          • by arose ( 644256 )
            You might as well blame everything else for not using Emacs shortcuts, since they were there and used in other software (yes, those bash shortcuts are Emacs shortcuts). I mean really, holding shift to select text? Madness.
        • by grumbel ( 592662 )

          As for not being keyboard-centric rather than mouse-centric, some of us consider that a feature.

          Being keyboard centric isn't a problem, quite the opposite. Having a god awful GUI on the other side is a problem. A good interface should slowly teach the users about shortcuts and everything and while Emacs actually does a good job at that (if you M-x a function that has a shortcut, it tells you which), the GUI is scarring users away long before they'll ever find that out.

          The problem is that Emacs was kind of state of the art some two decades ago, today on the other side it just shows it's age a little to

      • Re: (Score:2, Informative)

        by Anonymous Coward

        * Not mouse friendly.

        It's a text editor. Removing your hands from the keyboard is inefficient and slows you down. Until you have become proficient at this, you don't realize just how inefficient your wish to use the mouse for text editing actually is.

        Emacs is a power user tool. For a single purpose, editing text, it is the most powerful and fastest tool available. It's admittedly not well suited for people who want a more casual tool, but there are others you can use for that purpose.

        * Incompatible keyboard shortcuts

        You do realize that the emacs bindings c

        • It's a text editor. Removing your hands from the keyboard is inefficient and slows you down. Until you have become proficient at this, you don't realize just how inefficient your wish to use the mouse for text editing actually is.

          Emacs is a power user tool. For a single purpose, editing text, it is the most powerful and fastest tool available. It's admittedly not well suited for people who want a more casual tool, but there are others you can use for that purpose.

          I think he gets this. I know I do. I myself LOVE having keyboard shortcuts. However, when it's something I don't do very often, I much prefer having the OPTION of having a menu that I can go through to find the command that I need. It means I don't have to go through the manual or look online or in some way leave the window I'm in to find the command I want to use. I can just...do it. Sure, it's slower than knowing the shortcut, so if it's something I'll be doing often, I'll learn the shortcut (assumi

      • by Darinbob ( 1142669 ) on Monday May 21, 2012 @10:04PM (#40072547)

        If your editor has a menu to toggle case of letters then it must have hundreds of menu entries to have something so infrequent show up there. If you really need it you can add it to an Emacs menu easily enough.

        Emacs has very compatible short cuts! It is compatible with editing that existed before PCs and Macs existed! So I'd say the Windows editors are the ones who broke compatibility! And by the way I can use my common Emacs movement keys in Firefox just fine, they work in bash, some of them even work in Outlook.
        And Ctrl-Z does undo in my emacs.

        The interface in Emacs is nice: it's minimal. I don't have 2/3rds of my screen wasted in IDE fluff. I can put three Emacs windows side by side.

        Variable width fonts are EVIL. Never use those for programming! If you've got variable width how do you make things line up, and how do you know you haven't exceeded 80 characters? Variable width is for natural language text.

        • "Toggle case" is actually somewhat common, and not at all hard to find when it exists. I don't have any of my code-editing programs installed (home computer), but LibreOffice has Format->Change Case->tOGGLE cASE, right next to Sentence case, lower case, UPPER CASE, and Capitalize Every Word. Capitalized just like that, even, for ease of use.

          Oh, and I'm not opposed to variable-width fonts for writing code - that is, after all, logical. But monospace text on the "where you are in the file" and "what mod

          • Actually I had arguments ten years ago over the 80 space limit, and the person's response as "why can't you get a modern editor that can have longer lines?" He just didn't get it. Long lines are harder to read, it's that simple. It's a courtesy to other programmers, like any other style rule. This person had 200 character lines, he would literally have a line of code all the way across the screen. None of his peers found this easy to read. It wouldn't fit in printouts. People complained in code revie

            • by phantomfive ( 622387 ) on Tuesday May 22, 2012 @01:07AM (#40073579) Journal
              Another reason: keeping it at the 80 character limit allows you to open more than one source code window at a time and view them side by side.

              I've found people who are opposed to the 80 character norm often do so because they are used to IDEs that take up the whole screen. If you only have one window to write code in, and that window fills up the whole screen no matter what else you do, what's the point of leaving that space blank? Might as well write longer lines.

              If you have a real editor, the 80 character norm makes sense.
              • Another reason: keeping it at the 80 character limit allows you to open more than one source code window at a time and view them side by side.

                Or perhaps we just have screens large enough that we can fit two 150-char wide editor windows side by side.

                • And yet you are missing the joy of having six editors open at a time.
                  • I'm sure you can have 12 open if you trim the lines down even further, but why?

                    • 12 might be overkill. If you have more than one window open at a time, you can reference source code in one terminal while writing in another. This is a common workflow. Typically I find I have two or even three files that I am referencing frequently while writing in a project, but sometimes more.

                      People who are used to this style of working often have trouble at first when they switch to an IDE. Now with things like auto-complete and Intellisense, it isn't as bad as it used to be, because you don't have
                    • Now with things like auto-complete and Intellisense, it isn't as bad as it used to be, because you don't have to remember the full function name, you can get away with remembering only the class name,

                      Why would you need to remember functions names or class names to use auto-complete? The whole point of the feature is so that you don't need to do that.

                      For those of us who know how to use multiple windows, once we get used to Intellisense it isn't as bad, but we always miss the multiple windows.

                      We seem to be going in circles. As I had already noted, it is not at all a problem to open several windows in a modern IDE, and with a good display you can easily do side-by-side with line width much higher than 80.

                      Then again, when code is properly modular, I don't see the need for that, either. If I need to know the signature of some function that I'm about

                    • Why would you need to remember functions names or class names to use auto-complete? The whole point of the feature is so that you don't need to do that.

                      lol well you can try just pushing control-space, but the list of options that comes up is a bit overwhelming. You'll do better if you can at least remember the first few letters of the class, anyway.

                      We seem to be going in circles.

                      Of course, because it is a matter of preference. There is no right answer. If you can't see why other people might have a different preference, then I'm sorry.

                    • Of course, because it is a matter of preference. There is no right answer. If you can't see why other people might have a different preference, then I'm sorry.

                      I can certainly understand people having different subjective preferences. But then this whole discussion was spinned off a post that said "Variable width fonts are EVIL". ~

                    • lol sure. Hard to think of a topic that is more subjective than evilness.
          • by arose ( 644256 )
            You should format your code that way for the same reason that you shouldn't print normal sized text landscape on letter/A4 paper. Readability.
        • Emacs has very compatible short cuts! It is compatible with editing that existed before PCs and Macs existed! So I'd say the Windows editors are the ones who broke compatibility!

          Windows is just following the CUA standard.

          Emacs, though - "compatible" with what?

          The interface in Emacs is nice: it's minimal. I don't have 2/3rds of my screen wasted in IDE fluff. I can put three Emacs windows side by side.

          Pretty much every IDE I've seen lets you hide or auto-hide toolbars, toolwindows etc.

          That said, I personally prefer e.g. the watch and stack windows visible while debugging. Don't you?

          ariable width fonts are EVIL. Never use those for programming! If you've got variable width how do you make things line up

          By using tabs. Or by using an editor that understands the concept of indentation.

          how do you know you haven't exceeded 80 characters?

          Most editors these days can draw a line for you. Besides, who cares about 80 characters? On a 27" display, it is a pretty pointless restriction.

          • Windows is just following the CUA standard.

            Chrome and recent editions of Firefox badly break the CUA standard (no visible File/Edit menus, F10 does not bring up menu bar, and so on. Unity and Gnome 3 trash its goals of consistent, discoverable interfaces even further. Compared to these, Emacs with its decades-long consistency is a gold standard.

      • * You can make the menus in emacs display whatever option or function you want. Also, ido-ubiquitious mode will give you a fuzzy search on a meta-x. So if you can't remember the keyboard shortcut, perhaps you can remember (or guess) some part of the name of the function that does what you need, and quickly find it (with tab completion and everything) - probably even more quickly than you would by searching a menu.

        * http://www.emacswiki.org/emacs/CuaMode [emacswiki.org]

        * Emacs 24 at least (less so in previous vers
    • by grumbel ( 592662 )

      The most interesting thing about Emacs isn't even just the programmability, as a lot of apps have that in one way or another, but the fact that it is self-documentation. It takes literally two clicks to go from any function or keyboard shortcut to the exact line in the source code that defines it (first jumps to the documentation, second to the definition). Nothing else in the Free Software world makes source that easy to access, most don't even try. Blender being the only exception, as that at least gives

  • Next up: Boot to Emacs. We've always known that Emacs is a great OS with a piss-poor text editor. We need these capabilities baked into hardware. Behold... the EmacsBook Pro!

    • Writing a good editor for Emacs... Sounds like a good project!

    • Next up: Boot to Emacs. We've always known that Emacs is a great OS with a piss-poor text editor. We need these capabilities baked into hardware. Behold... the EmacsBook Pro!

      Yeah, add to Emacs a shell such as bash, a windowing system like Wayland, a text web browser like elinks, and you'll have the complete OS. After that, the next big project to have Emacs run directly on HURD, so that the latter needs no other applications.

  • It looks like it would be a huge boost for writing content generation tools for games.
  • "Emacsy is 'a Guile library that provides Emacs-like facilities"

    good?

    "However, to my eyes, it looks more like an attempt to revive the development style done on Symbolics Lisp Machines that survives to some extent in Emacs"

    and?

    "Might be a boon to Emacs users"

    They actually exist? I thought people just said that to futility impress people

    "The skeptic in me asks what benefit this would have over just using libguile directly"

    the non-Luddite in me is still asking what and why?

  • by Mike610544 ( 578872 ) on Monday May 21, 2012 @09:43PM (#40072405)
    Emacs is awesome, but there are some things that more modern IDEs do that are nice. In Eclipse you can get a list of all calls to a function from the spot where it's defined. I haven't been able to find a way to do that with Emacs. etags works great for jumping to the function definition, but not the other way around.

    That's not enough to convert me to a pointy/clicky bloated thing for coding just yet, but at some point, it seems like there will be enough features like that that Emacs - even with a lot of customization - just won't be viable.

    If I did move to another editor, at least it would be nice to bring the good parts of Emacs along.
    • Re:Good Idea (Score:4, Informative)

      by PolygamousRanchKid ( 1290638 ) on Monday May 21, 2012 @11:18PM (#40072985)

      Like C scope and Emacs, http://emacswiki.org/emacs/CScopeAndEmacs [emacswiki.org] ? The "Find functions calling this function" option?

      • I've been using CScope in Emacs for about a year (in fact, I added the entry to ascope.el on that wiki page you linked to), and I've recently switched to Semantic from CEDET [sourceforge.net] and GNU Global.

        Sadly, the Emacs Code Browser (ECB [sf.net]) linked to from the CEDET page seems to be broken for recent versions of Emacs and CEDET and unmaintained.

        While I dislike Eclipse for bloat and difficult extensibility, I have yet to decide whether Emacs has caught up with it for code browsing.

        • by root_42 ( 103434 )

          Yes, ECB is unmaintained as of now. Very, very sad that this happened. I think CEDE + ECB (+ GNU global or clang) makes Emacs an awesome C/C++ development environment.

      • How well does this work for C++ - with templates etc?

        Does it handles macros that expand to function calls?

    • Re: (Score:2, Insightful)

      by Anonymous Coward

      This is mainly a compiler related features rather than complaining Emacs. There is no magic behind Eclipse but just use a compiler front-end to analyse (sort of compiling) your code on-the-fly. For example Clang already provides function completion features to Emacs: https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el . By examing the size of such code you will sooner understand why people stick to it even it lacks a good editor :-).

      • by Anonymous Coward

        This comment makes no sense. Either emacs supports the feature or it doesn't. Other IDEs have supported reference lookup for years and in some it's quite mature. To put it bluntly, if your editor does not you are two decades behind the times.

        It doesn't matter whether a quick-and-dirty feature could be hacked together faster in Emacs than in Eclipse or Visual Studio. Eclipse and Visual Studio already have it, and it already works better than whatever you were going to write.

        • But you don't get it. The point is, you shouldn't be building language-specific parsers (do you know how complex parsers are?) into an IDE! MSVS, to their credit, don't - they use a similar compiler architecture to LLVM, where the compiler is made up of various components that can be reused elsewhere.

          The point is that the text editor is a really good text editor that can be augmented with scripts and external tools to do the same things as an IDE, but so vastly more flexible it's not even worth comparing th

  • However, to my eyes, it looks more like an attempt to revive the development style done on Symbolics Lisp Machines that survives to some extent in Emacs. Might be a boon to Emacs user ...

    Yeah, it's a classic. Oldtimers (or more often, oldtimer fanboys) trying to change the user interface on the rest of the world to work like their old favorite apps, rather than the other way around. It's so ...

    ... but where's a comparable VIM alternative?

    *facepalm*

    • Typical kid. Thinks everybody should want to use the same interface he does because it is 'newer' and that anybody trying to keep something that they like is an oldtimer fanboy.
      • Hey kid, you have more than twice my number, you shouldn't speak.

        I don't know a single person who has kept vi(m) or emacs, because they aren't that old. They have, to a man, switched to them, and away from the CUA interfaces that were already near-universally adopted by their time. Yes, I think undue reverence for old unix gurus is the best explanation.

        Curiously, those I know that are old enough to have used early 80s text editors extensively as adults (like my father), moved with the times to CUA-style edi

        • I use emacs because I like it. You can use whatever you want imho. LOL, referencing a Slashdot number! What a dork!
  • by morgauxo ( 974071 ) on Tuesday May 22, 2012 @07:56AM (#40075351)
    Couldn't write a summary about something Emacs without complaining it's not Vim? Really?

There are two ways to write error-free programs; only the third one works.

Working...