Slashdot Mirror


Emacsy: An Embeddable Toolkit of Emacs-like Functionality

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.

25 of 127 comments (clear)

  1. Re:Take over the world by Unknown+Lamer · · Score: 4, Funny
    --

    HAL 7000, fewer features than the HAL 9000, but just as homicidal!
  2. Re:Yet another reason to stop using emacs by david.emery · · Score: 4, Funny

    The only thing VI's good for is editing the configuration file used to make EMACS :-)

  3. The critics can learn a thing or two about emacs by gorrepati · · Score: 3, Interesting

    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.

    --
    You will never have experience until after you needed it.
  4. Re:Take over the world by Anonymous Coward · · Score: 2, Funny

    Meh. Everyone knows she only has eyes for Ganesh.

  5. They cannot though... by SuperKendall · · Score: 3, Insightful

    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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:They cannot though... by jrumney · · Score: 2

      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.

  6. Re:Yet another reason to stop using emacs by Tarlus · · Score: 5, Funny

    ...because EMACS is way too cumbersome for config file editing.

    --
    /* No Comment */
  7. Re:The critics can learn a thing or two about emac by gman003 · · Score: 2

    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 shortcut. If not, I'll *never* learn it, and waste half my time in the man pages.

    * Incompatible keyboard shortcuts. Most Windows and Mac, and even many Linux programs, all use the same basic keys for basic tasks. Ctrl-A means Select All. Ctrl-V is Paste. Mac just swaps Ctrl for Cmnd. For various historical reasons, Emacs uses completely different key shortcuts for everything. Which causes problems, because I'm never going to be *just* using Emacs. I'll be using Firefox, or SomethingOffice, or something else that almost definitely uses a different set of keys. Which means my mind will always be in "Ctrl-Z = Undo" mode, never "Ctrl-x u = Undo" mode (as an aside, does RMS never mis-type anything, because none of the three "undo" commands are easily entered - Ctrl-X U, Ctrl-/, and Ctrl-_ all suck).

    * Ugly interface. Yeah, it's kind of petty, but Emacs looks like crap. If I'm going to be spending 8 hours a day in an editor, can it at least look like a program from *last* decade instead of the one before? (May have been fixed already - I gave up on Emacs years ago, maybe they finally discovered variable-width fonts)

  8. Re:The critics can learn a thing or two about emac by dabridgham · · Score: 2

    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 harder than C-z if your right hand is stuck over on the mouse.

    And finally variable-width fonts. I sort-of agree with you there. They'd be useful for some thing.

  9. Good Idea by Mike610544 · · Score: 2

    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.

    --
    ... also, I can kill you with my brain.
    1. Re:Good Idea by PolygamousRanchKid+ · · Score: 3, Informative

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

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    2. Re:Good Idea by Anonymous Coward · · Score: 2, Insightful

      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 :-).

  10. Re:The critics can learn a thing or two about emac by Anonymous Coward · · Score: 2, Informative

    * 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 came first, right?

  11. Really, you call that "recording a macro"? by SuperKendall · · Score: 4, Insightful

    You have no idea what REAL macro recording is. Sigh.

    Tell me exactly, how do you record a search and replace based on text you found around the result of another search?

    Or a search that gathers disparate results from multiple files and places the results in a extra comma delimited file?

    Or a macro that executes a shell command and uses the output to open a third file?

    And then how do you save the macros for later reuse and edit them?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  12. Re:The critics can learn a thing or two about emac by Darinbob · · Score: 4, Interesting

    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.

  13. Re:The critics can learn a thing or two about emac by Anonymous Coward · · Score: 2, Insightful

    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 out there, from notepad on up through emacs. You can pick whatever point you want on that curve, I think.

    I'm pretty good at the "standard bindings", having been using them since they existed in a wide range of environments, but they just aren't as efficient. I have never - I'll stress this, *never* - been able to watch someone using tools that use those bindings without cringing at how slow they're doing things. Conversely, people who are used to those tools always seem completely blown away by what I can do in emacs.

    Not saying the steep learning curve is for everybody. It's clearly not for most people.

  14. Re:The critics can learn a thing or two about emac by phantomfive · · Score: 3, Interesting

    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.

    --
    "First they came for the slanderers and i said nothing."
  15. What part of RECORD.... by SuperKendall · · Score: 3, Insightful

    While I'm not an IDE fan, but google before you troll:

    I'm not trolling, I just wish people could read the damn text before responding.

    I said RECORD. As in RECORD. As in not SCRIPT OR PROGRAM OR DEVELOP. As in RECORD.

    Like I said, I can record in emacs searching for something, using some value located around the search (say a quick regex on that line), then copy that and go to some pre-saved point in the file to paste the result.

    That may sound contrived but I have for example easily created long list of variable names or altered things like comma separated data in partial ways that would have been hard otherwise, simpler even than using sed or the like... all because I could record a simple transformation to occur, then re-run it on command wherever I liked.

    Basically I found it incredibly useful and it is the reason I still sometimes go back into emacs when even SCRIPTABLE editors are just too weak to get something done.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:What part of RECORD.... by Lunix+Nutcase · · Score: 2

      I said RECORD. As in RECORD. As in not SCRIPT OR PROGRAM OR DEVELOP. As in RECORD.

      And as I told you in my post you CAN DO THIS IN VISUAL STUDIO SINCE THE ABSOLUTE BEGINNING. For example, this is the instructions from Visual Studio 6 since that's the earliest version that can be pulled up on MSDN.

  16. Re:Good replacement: Visual Studio by Dr+Herbert+West · · Score: 2

    Where's the gamemaker guy when you need him? You two should get a room.

  17. Re:In emacs? by jrumney · · Score: 2

    In emacs type "C-x (", then... "C-x )" ends the macro.

    F3 and F4 are better keybindings for macros in Emacs. As well as being single keystrokes, they have context sensitive functionality: F3 starts recording a macro, or while recording inserts an auto-incrementing counter. F4 ends recording, or when not recording plays back the last macro.

  18. Vim? by morgauxo · · Score: 2

    Couldn't write a summary about something Emacs without complaining it's not Vim? Really?

  19. Re:Make the world like 1984 again by morgauxo · · Score: 2

    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.

  20. Re:In emacs? by tuffy · · Score: 2
    I prefer to stick macros on a single F key, like:

    (global-set-key [f5] 'call-last-kbd-macro)
    (global-set-key [(control f5)] (lambda () (interactive)
    (if defining-kbd-macro
    (kmacro-end-macro nil)
    (kmacro-start-macro nil))))

    while anything that needs a counter I take care of with repeat-insert

    --

    Ita erat quando hic adveni.

  21. Re:The critics can learn a thing or two about emac by tuffy · · Score: 2

    If you like the undo stack, Undo Tree will blow your mind.

    --

    Ita erat quando hic adveni.