7 ms·
As someone who uses emacs purely for clojure/lisp and vim for everything else, the biggest feature for me is the fact that this will be the first version of ema
by viksit 12y ago
As someone who uses emacs purely for clojure/lisp and vim for everything else, the biggest feature for me is the fact that this will be the first version of emacs to support menus in terminal mode. So for all the commands you don't remember, a menu is now a click or F10 away. To quote,
"Emacs now supports menus on text-mode terminals. If the terminal supports a mouse, clicking on the menu bar, or on sensitive portions of the mode line or header line, will drop down the menu defined at that position."
More at: http://www.masteringemacs.org/article/whats-new-in-emacs-24-4 http://www.masteringemacs.org/article/whats-new-in-emacs-24-...
- rezistik 12y agoAs a dev who's always used Sublime/Atom and sometimes Vim, what's the benefit of Emacs for Lisp?
- wglb 12y agoSlime
- viksit 12y agoThere's quite a lot of technology that allows you to write lisp/clojure very well in emacs. Some that come to mind, - Swank/Slime (Lisp inferior modes) that allow you to write lisp, evaluate within the editor, see your results in a buffer. Offer auto complete, refactoring, debugging et al. The more recent nrepl and cider modes for Clojure build on top of slime/swank and offer extremely great tools to write code as well. If you ever wanted to have the REPL running on the side and have great interop between code in a file and the REPL - these modes are great. Imagine their power when you can connect into a running webserver and debug on the fly from within your editor. - A lot of original emacs plugins like paredit have now been ported to other platforms like Sublime. Also, emacs itself is written in lisp, which makes it a first class language it supports at its very core.
- Havvy 12y agoEach lisp varies dramatically in its semantics. Just because emacs is written in e-lisp does not mean it has first class language support for every other lisp. Would you say that vim has first class support for every language with block & statement based languages?
- viksit 12y agoAgree with your high level point. Mine isn't that because it's written in e-lisp, emacs supports every other lisp. The fact that it's written in e-lisp makes it very extensible, and some standard things like C-x C-e to evaluate forms et al, which were originally developed for and are the standard for e-lisp, have been adopted for all other lisp modes as well. The very fact that the editor is written in a lisp makes it expose useful functionality this is useful in other lisp contexts.
- craigching 12y agoI can speak about Clojure support for Emacs a bit, but I don't know how much of this Sublime or Atom can do. I like the cider+nrepl workflow myself. You can edit your code, reevaluate it, and test it without having to restart your JVM. As you can imagine, this really speeds up development. Also, though I haven't quite grokked all the barfing and slurping yet, paredit has really become a huge part of my code writing and editing in Emacs for Clojure code. I am on the cusp of getting barfing and slurping working for me now ;)
- BostonEnginerd 12y agoEmacs is pretty much a built in REPL primarily written in Lisp.
- malisper 12y agoSlime is really amazing. It provides tons of features of which here are a few (these work with Common Lisp, I have no clue if they work with Clojure). Inspector[0]: You can click on objects to "inspect" their values. This includes hash-tables, arrays, and closures. In addition you can execute arbitrary code on these objects at any time, even while a program is running. Trace Dialog[1]: Most Lisp implementations already provide a way to trace procedures. Tracing normally consists of printing the input and the output as each traced procedure is called. Slime provides something much more powerful. Slime's Trace Dialog is similar to trace in that it creates a buffer of the input and output, but instead it is provided in a tree menu format. In addition it is possible to inspect all of the values in the Trace Dialog with the inspector. Debugger[2]: When an error is thrown in a program, a window pops up which provides several things. You can click on a stack frame to see all of the variables in that frame and then inspect those variables with the inspector. You are also provided with a list of restarts[3]. In addition, you can return a value from a given stack frame, or retry a procedure call on the stack frame (you may have modified the definitions of some procedures before you did this), and have the program continue as if nothing had ever happened. There are also many other features, such as the ability to macroexpand code by clicking on it, to look up every procedure which calls a given procedure, to look up every place in which a given variable is set, and many other awesome features. [0] http://common-lisp.net/project/slime/doc/html/Inspector.html http://common-lisp.net/project/slime/doc/html/Inspector.html [1] http://common-lisp.net/project/slime/doc/html/SLIME-Trace-Dialog.html http://common-lisp.net/project/slime/doc/html/SLIME-Trace-Di... [2] http://common-lisp.net/project/slime/doc/html/Debugger.html#Debugger http://common-lisp.net/project/slime/doc/html/Debugger.html#... [3] http://en.wikibooks.org/wiki/Common_Lisp/Advanced_topics/Condition_System#Restarts http://en.wikibooks.org/wiki/Common_Lisp/Advanced_topics/Con...
- logicchains 12y agoThat actually sounds a lot like Smalltalk.
- malkia 12y agoAlso the editor does not crash if the (lisp) environment becomes unstable (hangs, crashes, etc.) - Such things rarely happen, but they might - for example in Lispworks (which has emacs-like IDE (very nice) but runs the lisp threads in the same process as the editor).
- TeMPOraL 12y agoAside from all the other reasons other people already listed, there is a one fundamental benefit. Emacs is not just an editor, it's a Lisp runtime with text-editing functionality bolted on top. Lisp is natural for Emacs at all levels of complexity - from the fact that it's easy to work with Lisp code using Lisp to the Emacs community, composed in a big part of Lispers. Lisp just fits Emacs.
- kstrauser 12y agoEmacs has had console menus for years. The difference is that they're now clickable, not keyboard-only.
- viksit 12y agoRight - but the fact that they behave more like a window manager menu than ever before - as in, they drop down et al.
- linuxfan 12y agoJust curious. How did you manage to use both emacs and vim? I've seen that people accustomed to one editor are usually averse to using the other.
- inclemnet 12y ago> I've seen that people accustomed to one editor are usually averse to using the other. I think this is more a meme than necessarily a reality - you'll tend to see a lot more comments online from people who think the old joke is funny or who want to validate their own choice than from people who don't care or have tried both without such strong feelings. In reality, there's really no barrier to 'manage' to use both emacs and vim. If anything, since they're both powerful and configurable programs whose best configuration is personal and some way from the default, it probably is harder to construct your own perfect config in both than for simpler alternatives like web browsers - I guess this may lead to a practical aversion. Personally, I think vim's modal editing is superb but generally prefer the behaviour of emacs' modes and client model, so I use emacs with evil-mode but have no problem using vim if necessary.
- Argorak 12y agoI'd sign that. I never use emacs, because I never trained it, but I sometimes use it at a friends machine. It's nothing I find bad or not understandable. All errors stem directly from my lack of skill. (and the different key layout of most of my colleagues)
- viksit 12y agoHehe because I don't subscribe to monotheism? ;) I prefer vim's modal editing mode and have been using it as my primary for as long as I can remember. For clojure/lisp, I found that the vim tooling was just not as elegant/efficient as emacs (fireside et al arent as nice as cider/swank), and decided to learn how to use it. It's not that much of an "antipattern" because the keymaps are very different. I don't like using vim mode within emacs either - for some reason I find myself thinking in emacs mode when editing lisps. I do think that I could be more productive in emacs if I invested more time in the tutorials, but so far it hasn't been an issue. To me, it's more like needing to know how to use Eclipse or IntelliJ to program in Java since their tooling is so great.
- cies 12y agoHave you tried Helm in Emacs? For me it binds to M-x, and I can find a "lost" command by typing just bits. For example "M-x tree undo" show me "undo-tree-visualize (C-x u)". Now I use Helm all over the place: (recent) file opening (within the current project), buffer switching, grepping, etc. It really changed how I interface Emacs.
- csdrane 12y agoWhat's the advantage of Helm to Ido?
- rando289 12y agoI prefer smex for M-x command matching (which is self described as Ido-style).
- ludwigvan 12y agoHelm by default ands the query terms. Notice how he typed the second word first. Ido searches linearly. Helm is also much more ambitious in general
- tuhdo 12y agoI wrote it in my guide: http://tuhdo.github.io/helm-intro.html#sec-2 http://tuhdo.github.io/helm-intro.html#sec-2
- ams6110 12y agoM-x apropos is usually good.
- knome 12y agoI hope this terminal mouse business is easy to disable. If I wanted mouse clicks to be registered by emacs, I wouldn't insist on installing emacs-nox versions in the first place.