11 ms·
Emacs isn't for everyone
- lelele 16y agoWorst thing about learning Emacs is that newbies follow the wrong path, albeit you can't criticize them for not knowing better. Absolute newbies should start with an Emacs customized to follow common conventions of editors (CUA, etc.); Vi users should start with Viper mode (+ Vimpulse). And so on.
- jrockway 16y agoI disagree completely. New users should follow the tutorial. Eventually, to use Emacs as Emacs, you are going to have to understand its model and its terminology. Pretending that doesn't exist until you have learned how to use Emacs as a very bloated Notepad clone will leave you thinking that Emacs is a very bloated Notepad clone. I learned Emacs when I was in middle school. If I could figure it out then, from the interactive docs, any adult should be able to figure it out. If they don't want to, though, that's a whole other issue entirely, and is not something software can solve. Emacs is different. Learn it or don't. Now, once you understand Emacs, then sure, use Viper. It's a great tool. But if you don't understand Emacs, then Viper is just going to make you mad. (No experienced Emacs user would use the CUA keybindings, though.)
- lelele 16y agoCome on, Ctrl+ZXCV are so ingrained into the fingers of people who type a lot that having to learn a whole new set of shortcuts does not seem an efficient route. You are not likely to keep them, anyway (since it's way easier to customize Emacs to a common set than other apps). I remember resorting to use my mouse almost always. Nowadays, after having customized Emacs, I'm a keyboard junkie.
- jrockway 16y agoEveryone? I use Shift-Insert to paste in Windows. I forget that C-v is "paste" in Windows, and get upset when it pastes instead of scrolls.
- jluxenberg 16y ago"But how long is it going to take you to figure out that tab-completion is called hippie-expand in Emacs?" I figured he must be joking, so I alt-tabed over to my Emacs session. To my surprise, there is actually a command called hippie-expand in Emacs!
- maximilian 16y agoOne thing that always gets me about blog posts like these, is that they never fill in the details in the post. He goes on about things he's struggled with, solutions he's found, etc, but never actually says what they are. I'm an Emacs novice, and I love to get little tips from articles like this one, but so often they just allude to it all.
- Xurinos 16y agoThat is interesting... When I read the post, I understood his references, having had similar experiences. Now that you mention it, you are right: the audience of this post is not the new users. It is the people who are trying to push emacs as Clojure's choice development environment. As a vim user, I am definitely open to good vim environment options for my lisp experiences. My attempts to use current solutions have so far been poor, for what it's worth; every solution seems frail, to break when I use just the wrong key. Suddenly vim is screaming at me, and some background process that handled the connection to a lisp has died or is unreachable by vim. I use slime.vim (yay for vim and screen), but there is something to be said for being able to have what amounts to intellisense for dynamically declared functions, to have the experience of working actively with symbols within packages. As the author of the article points out, the key sequences for working with lisp are ugly (long). And I would point out that in emacs, almost all key sequences are ugly.
- reflexer 16y agoI've found slimv.vim not bad for CL after all http://www.vim.org/scripts/script.php?script_id=2531 http://www.vim.org/scripts/script.php?script_id=2531
- Xurinos 16y agoI wanted to update you, since you were so kind as to give me a good possible solution. I tried slimv.vim, and the experience is fairly decent. However, I quickly ran into annoyances and problems. I get a welcome message in the evaluation buffer that confused me for a while because I thought I needed to position my cursor next to the asterisk (my current sbcl default). It turns out my cursor needed to be at the end of the buffer in order for my evaluated command to be recognized. Then the asterisk prompt makes sense again. Growing pains, but this is a silly and easy thing to avoid for new users. I tried tossing in an easy form in a slimv-enabled buffer: "4". I ,e it, and now I am stuck in the eval buffer where my 4 was evaluated as 4. How do I get out? Ctrl-W Ctrl-W isn't doing the trick. After some messing around, I eventually figure out with consistency that I have to hit SOME key, like ENTER, in order to be "released" from the RUNNING state to switch buffers back to where I was editing. ESC is no help here, although you would expect it to exit a RUNNING mode in vim. I do not see any configuration to prevent me from being forced into the eval buffer, so I am stuck with this disruption to the workflow. I could not figure out how to cleanly quit out of vim and shutdown slimv, aside from issuing a (quit) and hitting ENTER a bunch of times in the slimv window. The less clean Alt-F4 works as well. I did a fresh installation of hunchentoot and all dependent packages from within my vim session. This turns out to be annoying in that some of those packages are so spammy that the buffer gives up refreshing (partly because it is so slow to display all the new scrolling text). ,z refreshes the buffer, assuming I am aware enough that it has given up and is not just pausing to calculate something. But the final kicker for me... The omnicompletion is both superficial and poor. It is superficial because it only supports common lisp symbols, not symbols actually in my current lisp environment. It does not support package prefixes either, so I cannot complete on any of the sbcl packages, much less anything I have installed. The linedit package does a super job of getting this right, and slimv could do it right with a little help from with-package-iterator instead of faking it. The omnicompletion is poor, even with the basic common lisp symbols, because "-" is not recognized as part of a word, so I am unable to omnicomplete forms outside of the first few letters. I am, however, able to use basic Ctrl-N/P autocompletion successfully in my lisp buffers with any symbols that include "-", so I am confident my vim is configured properly somewhere. Am I missing something to tell omnicompletion to recognize "-" as a word character? Basically, I feel like with slimv I get sluggish and fewer useful features than just using slime.vim. I really wanted some nice integration where I could have the slime experience of being within the lisp environment, able to introspect and so forth. The bundled paredit is decent for its bracket handling; that is something that will probably take me a lot of time to get used to. I have one significant complaint about it, though. It is great that when I type a closing parenthesis that the cursor moves beyond the already-provided parenthesis. It is much less great that when I type a closing double-quote, it adds a new pair - and good luck trying to delete one of the double-quotes once the pair is involved. It is even worse that I cannot toss in an escape on the double-quote within my string (try it! Can you type: "\"" ?). This makes the bundled paredit pretty unusable, far more annoying than just leaving it disabled. Is slimv even actually using slime? I saw the port configuration, but I really get the feel that we are just repeatedly reloading a tmp file in a buffer, and our hotkeys send direct lisp commands to an sbcl process wrapped by a python script. Taking a step back, I keep asking myself if this is all just whining. slime.vim (which is not slime either -- it should be called screen.vim or something) and linedit work well enough for me, given that they actually work as advertised. The other option for me is to just use emacs, but I cringe when I consider it; I have been down that road, and it felt like somebody intentionally made it difficult to actually do text editing in it. Thanks again for the slimv suggestion.
- icey 16y agoHere's what I don't get: People don't seem to have any problems with learning entirely new programming languages every year, but if you ask them to learn a new editor they get up in arms about it. I think if people spent half the effort on learning emacs as they do learning the languages that emacs works well with (lisps, mainly) they'd pick it up just fine. (I'm not advocating forcing anyone to use emacs, fortunately there are a lot of other options. I just don't get the hand-wringing around saying it works the best for a given language.)
- cemerick 16y agoThe language I use to build software with is precious to me. It's capabilities are often key to what I can do, how I can express myself. The editor I use to write code is a commodity. Will switching to emacs help me write better software? Solve harder problems? No, it'll help me sling text faster -- which, unless you're doing fairly pedestrian things, is the least interesting, least common thing you should be doing each day.
- Rayne 16y ago"Will switching to emacs help me write better software? Solve harder problems?" It will HELP you write better software, yes. Solve harder problems? It will help you solve harder problems FASTER maybe.
- jrockway 16y agoIndeed. Typing in the actual program text is both the least important task and the most important task. The program text is not what solves your problem, but without the program text, you don't have something you can actually run. Spending less time dealing with the program text is a great way to be able to spend more time thinking or tinkering. A good text editor facilitates this. (And of course, Emacs is more than an editor.)
- cemerick 16y agoBrian (the post's author) cited a year before he was proficient in emacs. I spent two months with it myself once, with nothing but frustration to show for it, so I can believe him on that front. That's a huge opportunity cost, when I know I can get the job done efficiently using far more pleasant tools that I already know. Those that want to promote emacs need to come up with real, tangible benefits that I'll be able to realize that will reliably offset that cost and then some. Rainbow parens aren't going to cut it. (That's an honest challenge, FWIW, despite the seasoning of snark. ;-))
- reader5000 16y agoHis point is correct. There are better time investments than the editor. It actually took me a while to get into clojure because of editor issues. Eventually I settled on notepad++ (which unfortunately does not yet support clojure syntax highlighting; I use its lisp option) and the commandline. Works well enough for my purposes.
- troutwine 16y agoClojure tool support is pretty rough, even when your main editor is Emacs. Not infrequently I have issues with swank/slime whereby I cannot load libraries correctly, maintain a proper connection or correctly eval a buffer (possibly related to the first issue mentioned). I hope that after 1.2 the community will stop changing the language, fix their infrastructure and let a set of libraries stabilize. Right now, half of the really nifty libraries are on 1.2, the other half on 1.1.
- kiba 16y agoWell, emacs is not just another text editor, it's a whole operating system. The ability to port your emacs skills to other uses, such as reading emails, IRCing, and organizing means emacs is a powerful force multiplier. You don't have to learn emacs for hours each day. You could do ten minute learning each day tops. Scrap together a few editing shortcut there and there, learning a new feature of emacs, add a new a program, and practicing your editing your skills. All of these will eventually add up. By the time you're an old fart(Says 50 years old), you could laugh at children with the new fanged badly reinvented versions of emacs and their slow-ass editing workflow. However, I am just 19 years old who get a little bit of thrill every time he spend a fraction of time each day learning emacs and optimizing his workflow. I got ways before I accumulated several unusual but extremely efficient habits.(Batch web browsing anyone?)
- napierzaza 16y agoReally? But everyone uses it right?
- digitallogic 16y agoAny sufficiently complex system (whether it's a text editor, biological ecosystem, or vehicle) is going to be difficult to interact with for a new user. Emacs is hard to do, well anything, the first time you fire it up, you're probably going to die in the Amazon if without a knowledgeable guide, and you're not going to be able to sit down at the controls of a fighter jet and just take off. The trade of for this (is supposed to be) increased flexibility and power for the person interacting with the system once they are familiar with it. You can write elisp to automate tasks you do frequently, see animals in the rain forest not found in zoos, and do maneuvers that can't be approached with a Cessna. Increased complexity of a system increases the possibilities for the user but also increases the difficulty of acclimation. This is a part of life and not specific to a text editor.
- dpritchett 16y agoClojure's ecosystem is more tightly coupled with emacs than it has to be. In my experience if you want to use the bleeding edge Clojure jars and tools you're best off sticking to emacs. This is an extra training burden for anyone who just wants to poke around in a REPL with some code completion and syntax highlighting capability. Here's my latest (failed) attempt to get VimClojure working with Clojure 1.2 (search for dpritchett): http://clojure-log.n01se.net/date/2010-05-13.html http://clojure-log.n01se.net/date/2010-05-13.html
- cemerick 16y agoBoth enclojure (for NetBeans) and counterclockwise (Eclipse) are solid environments that are being used full-time by a bunch of people. I've used the former for a long time, and am on the bleeding edge most of the time. Check 'em out. :-)
- swannodette 16y agoSigh, Clojure isn't tied to Emacs at all. The problem is rather how many people are on the mailing list or IRC channel who can help you with your less popular setup. You could of course save yourself oodles of time by sticking with one of the IDEs which are positively simple to setup or just using your favorite text editor and a regular REPL.
- avar 16y agoI still remember learning Emacs for the first time, it was easy, Just time consuming. Sure I'm still learning it (that's the nature of Emacs), but getting started is easy. Just read the tutorial to get a grasp of the basic commands and concepts, and as soon as you read about the built-in help system you're good to go. If you don't know what a key does you just prefix it with do `C-h k` to get help. If you can't recall the keybindings do `C-h b`, and if you've forgotten all of this do `C-h ?`. The entire manual is just a `C-h r` away. The built-in documentation makes it really easy to learn more, it just takes patience.
- silentbicycle 16y agoThe trick with using the help system is that Emacs uses very different terminology than many people expect. (He touches upon this in the article.) You get used to it, eventually, but it does add extra work upfront. The easiest way for me to pick up the terminology was to skim through the info page for Emacs (C-h i takes you to the info pages). After that, apropos became quite a bit more useful.
- mattrepl 16y agoThere was an article a few years ago on how the time investment of learning new programming tools is often worthwhile. I believe awk was included as an example. Anyone recall it?
- silentbicycle 16y agoYou might find similar articles searching for "sharpen your saw" - that's the phrase the Pragmatic Programmer uses. Awk has a pretty high utility : time-to-learn ratio. It helps that the language is so small.
- dpritchett 16y agoIt's usually easier to learn one new thing at a time. If you're a C# programmer interested in Clojure, you need to consider transitioning from Windows to Linux, Imperative OO to FP, .NET to Java, and Visual Studio to Emacs/Vim/Eclipse/Netbeans all at once. I'm reading books on both F# and Clojure in an effort to get comfortable with functional programming. Plenty of it is sticking but the Clojure toolchain occupies a lot more of my mental bandwidth than the F# toolchain since I can work comfortably in Visual Studio. I am learning on all of these fronts simultaneously but it still detracts from my ability to isolate Clojure and learn it without additional effort: I run Windows on a daily basis but I play in Ubuntu VMs regularly to facilitate my programming exploration. I am happiest in Notepad++ but I've recently learned Vim to help me code in Linux. I am honestly not particularly familiar with the ins and outs of .NET but Java is a completely new world to me, particularly the build system.
- gfodor 16y agoNote that his original reason for learning emacs, namely, that there's not a good Clojure REPL for Vim, is no longer true. http://www.youtube.com/watch?v=rqweCwAMan0 http://www.youtube.com/watch?v=rqweCwAMan0 http://kotka.de/projects/clojure/vimclojure.html http://kotka.de/projects/clojure/vimclojure.html Works great, no paredit mode tho. And then theres this one, which I haven't used: http://www.vim.org/scripts/script.php?script_id=2531 http://www.vim.org/scripts/script.php?script_id=2531
- dpritchett 16y agoVimClojure is fine until you want to play with something linked against a 1.2.x version of Clojure. Then VimClojure falls down and you have to fall back to emacs (or a standalone REPL) for compatibility. http://groups.google.com/group/clojure/browse_thread/thread/7cec825282f22f90/070187e959cd1648?hl=en&lnk=gst&q=vimclojure+1.2#070187e959cd1648 http://groups.google.com/group/clojure/browse_thread/thread/... The next major release of VimClojure should solve this dependability issue but it doesn't seem to be a high priority to its maintainer (last release was nearly a year ago).
- ihodes 16y agoIt seems to me as though people aren't reading the whole post. Brian loves Emacs (and Vim), and will continue to use them for developing in Clojure. Right now much of the Clojure user base is rather avant-garde, but if we want newcomers to the language, it needs to be easier to get into. Setting up a development environment can be a pain in the ass for the experienced user; imagine the impossible hell it could be for the newbie. I think that's his point: it's a little more complex than "emacs is hard".
- devonrt 16y agoI can attest to the fact that setting up a Clojure/Emacs/Slime/Leiningen environment is a huge PITA. Something like Clojure Box helps, but it sacrifices flexibility in favor of ease of use and hides a lot of underlying configuration from a new user. A big part of the problem is a lack of a "canonical" setup; if you Google around for Clojure and Slime most directions you find will be out of date, highly personalized, or both. They will probably involve checking projects out of a multitude of repos (be they CVS, SVN, or Joe Blow's GitHub branch) and copying mystifying emacs configuration without really understanding what it all does. And then, after all of that, it still might not work. God help you if you want to get it all to work under Windows. Don't get me wrong, I love Clojure and I... well, I don't hate Emacs, but it's frustrating to have to deal with a lot of setup when one just wants to hack in a new language.
- jrockway 16y agoI can attest to the fact that setting up a Clojure/Emacs/Slime/Leiningen environment I can't. apt-get install emacs slime sbcl. emacs. M-x slime. Hack away.
- devonrt 16y agoThis does not include Clojure, nor Leningen (the Clojure build tool), nor does it work on Windows or any environment that does not have apt-get. No doubt, you will end up with a perfectly suitable environment for playing around with SBCL. edit to add: How does one even know to install SBCL and hit M-x and type slime to get started? You and I might already know these things, but it doesn't really help a stone-cold newbie, they still need a more concrete starting point.
- obama012369 16y agoWelcome to our website: ===== http://wowcool.org http://wowcool.org ==== jordan air max oakland raiders Ed Hardy AF JUICY POLO Bikini Christan Audigier BIKINI JACKET gstar coogi evisu true jeans coach chanel gucci LV handbags coogi DG edhardy gucci t-shirts CA edhardy vests.paul smith shoes jordan dunk af1 max gucci shoes EDhardy gucci ny New Era cap coach okely Adidas CHANEL DG Sunglass ===== http://wowcool.org http://wowcool.org ====
- obama012369 16y agoWelcome to our website: ===== http://wowcool.org http://wowcool.org ==== jordan air max oakland raiders Ed Hardy AF JUICY POLO Bikini Christan Audigier BIKINI JACKET gstar coogi evisu true jeans coach chanel gucci LV handbags coogi DG edhardy gucci t-shirts CA edhardy vests.paul smith shoes jordan dunk af1 max gucci shoes EDhardy gucci ny New Era cap coach okely Adidas CHANEL DG Sunglass ===== http://wowcool.org http://wowcool.org ====
- arthur_debert 16y agoThe problem is that today, getting started often means: correct syntax highlighting, indentation, auto-complete (intelisense), build integration and scm integration. And for a few languages at least(e.g javascript, python, ruby, html, css, xml, shell scripts). This is the problem. Going through the emacs tutorial is not enough. It's not that people have trouble getting started, they just don't want to experience the sudden drop in productivity once those things go away (at least for a while until you learn how to do them). I've switched to emacs lately, and it was worth it. But it's hard to justify, to a newcomer, why the default javascript mode sucks with common idioms (no indentation, tags - and let's not even get started on intelisense). When emacs and vi were kings, very few environments where that capable. So all you had to learn was basic editing. Everything else was a surplus. In the last few years, with the rise of eclipse, visual studio, netbeans and others, it's a harder battle. In my dream world the emacs community would do a gentle fork, that would have ide like capabilities for common setups (python, js, ruby, c, perl, html, java, etc) + editing as expected (like hungry-delete) + more common key bindings (like the command key as meta on mac). Bonus point for a s/frame/window/ , s/buffer/file/ and so on on the documentation. This way, newbies would be almost at home from the start (some commands to learn, plus the odd keybindings). But with time, they would customize more, and learn to drop the training wheels if necessary. The problem is learning everything at once (terminology, key bindings, elisp, editing) is too much burden for most folks.
- jseliger 16y agoIn my dream world the emacs community would do a gentle fork, that would have ide like capabilities for common setups (python, js, ruby, c, perl, html, java, etc) + editing as expected (like hungry-delete) + more common key bindings (like the command key as meta on mac). Bonus point for a s/frame/window/ , s/buffer/file/ and so on on the documentation. This, by the way, is why I tend to use Textmate for the (very) minor programming-related stuff I do on OS X: the bundles make it exceedingly easy to do stuff fast.
- programnature 16y agoamen
- bonsaitree 16y agoNS. Emacs shouldn't be anyone's first text editor, but if experience is any guide, it will be many's last text editor.
- TheBurningOr 16y agoGood timing on this Tweet. I had just downloaded Emacs with the hope of trying it out as a Notepad++ replacement. Think I'll save it for when I have more time to play around with it.
- Naga 16y agoIt is worth it. It takes time, but it really is worth it.
- ericb 16y agoIs there a decent editor I can extend using ruby? I keep trying to tackle emacs or vim and getting thwarted. I'm not fully convinced they're what I want, and I feel like I won't know until I spend a year learning one, and by then I'll be wondering if I like it because it is awesome or because I have Stockholm syndrome.
- JoachimSchipper 16y agoVim? See http://vimdoc.sourceforge.net/htmldoc/if_ruby.html http://vimdoc.sourceforge.net/htmldoc/if_ruby.html. (This, of course, depends on the level of integration you want. The above interface does require you to drop down to (generated) vimscript for many things.)
- iron_ball 16y agoNot with Ruby, but I recommend jEdit -- it has 80% of the power of emacs/vi with 20% of the learning curve, and you can write macros and plugins in Beanshell, a lightweight scripting language that feels somewhere between Java and JavaScript. Though honestly I've never even needed to -- the built-in commands, easily-recordable macros, and decent plugin selection have always done the job.
- fakeempire 16y ago80% of the power? You're missing the point. magit, org, dired, killring, ido, mingus, tramp, (can jedit use pyflakes or similar), shell, term, gnus, vcs-mode, etc etc etc. the only thing i have to leave emacs for is a decent browser. pretty sure jedit couldn't provide me with the same. and i just do python programming. million more modes for different tasks?
- iron_ball 16y agojEdit has 80% of emacs's text editing power. It does have a kill ring, registers, marks, etc, because those are all text editing features. Its file browser pane handles most dired-type stuff. Shell/console, ssh, version control, transparent FTP in the file browser, all available as plugins. There's a plugin to open files and switch buffers in an increment-search fashion, like ido. There's no pyflakes integration, but there are lint plugins that interface with the error list, so a pyflakes one shouldn't be hard to hand-roll. If solving your own problems with elisp is a virtue, so is solving your own problems with Beanshell. In jEdit, a "mode" is just a syntax highlighting scheme, but a plugin can set up special behaviors to deal with certain file types -- just like an emacs mode. Major and minor modes are possible, though not with those names. There's no mingus. That's a text editor function? Ditto org; there are more focused apps for that. There are newsreaders, though I don't know why. So the answer is, yes, jEdit can do most of that. However, I understand that if you're very accustomed to emacs, an emacs-style interface to daily tasks is better than whatever a standalone app might have. If so, that's fine; but don't accuse me of missing the point. We just have different points. I want a really good text editor; if it does other stuff, great. jEdit is a really good text editor.
- grandalf 16y agoI've been pleasantly shocked at how helpful the people in #emacs have been. Thank you!
- erlanger 16y ago> It is however extremely painful to learn. I can attest to that, physically.
- Ben65 16y agoI think since Clojure is a lisp there will always be a lot of people using Emacs to develop it. Emacs itself is an outstanding lisp environment, too bad the editor is so quirky. :) Yes it takes some time learning, but it is worth it, if you like lisp programming. PLT Scheme is a great environment, yet there are people who would rather use Emacs. I guess once you conquer the beast you it's hard to get away from it.
- samatman 16y agoThe best thing Clojure could do for widespread adoption, IMHO, is to build a Clojure native IDE, extended from the NetBeans Enclojure plugins and REPL. This would provide neatly for the programme suggested here: http://muckandbrass.com/web/display/~cemerick/The+Ideal+Clojure+Development+Environment http://muckandbrass.com/web/display/~cemerick/The+Ideal+Cloj... A language like Clojure deserves an IDE which is extensible in the native idiom. Building one, with the explicit intention of making it the environment for learning and using Clojure, would do more for adoption than any other single move.
- docgnome 16y agoI realize it's a flawed analogy, but the thing about learning emacs is that it isn't learning a single tool. It's learning the toolbox you can use to build the wood shop. The toolbox that keeps getting bigger and bigger. It's been years since I "learned" emacs and I'm constantly learning new things. If you go into it expecting instant gratification, you're gonna be dissapointed. That said, I've still never gotten CEDET "intellisense" thing to work in anything other than C++. And that's part of emacs now!
- delackner 16y agoThis was the dealbreaker for me when I last tried to pick up Emacs (albeit at this point that is about 8-9 years ago) there was just nothing at all that could compare to intellisense, for any language. How's that going today? XCode has fantastic intellisense for C and Objective-C along with jump to declaration / jump to definition.
- docgnome 16y agoEvery once and a while I try to set it up, but I also don't really care that much. I've gotten it to work great for C++ but haven't really bothered with anything else.
- surki 16y agoDid you try Gnu Global? I mostly use it for C/C++, but it claims to support "C, C++, Yacc, Java and PHP4".
- donaq 16y agoI don't really understand the fuss. You can edit Clojure with any text editor, right? Syntax highlighting, auto-complete, auto-indent, etc are nice features to have, and I do use them, but not really necessary for learning a language. If the language is interesting, I will learn to edit it in vim regardless of whether it's well supported. Then again, I am probably not a good sample, since I eschewed Eclipse for notepad back when I was learning Java before I discovered linux and vim. Regardless, I still hold the opinion that it is a good mental exercise to occasionally hack the raw text without all the bells and whistles of an advanced text editor/IDE in order to internalize the language structure.
- rbanffy 16y agoAs for installing Slime, Clojure and swank, I love ELPA http://tromey.com/elpa/ http://tromey.com/elpa/ Very easy, almost single step. A Leiningen hook seems absent, however. But I never really used Clojure for anything serious.
- edanm 16y agoWhen I decided to learn Lisp a few years ago, I realized that I had to learn Emacs (something I'd wanted to do for a while anyways). I ended up messing around with Emacs for a few months, and never did learn Lisp. And that perfectly sums up, for me, the problem with Emacs. It's a great editor, and it's loads of fun to mess around with it and learn it. But at the end of the day, when I actually want to get stuff done, it tends to get in the way more than it helps, so I always end up going for another editor.
- suraj 16y agoI was trying out racket yesterday and I couldn't figure out how to get the previous line in DrRacket. I tried all sorts of combinations and finally pursuing documentation came up with Esc-P shortcut. You can argue that this feature was first implemented in scheme before arrow keys were there but looking at it now it is different than everything else. For me switching from Windows to OS X was easier (just use Command instead of Ctrl) than switching from "a generic editor" to emacs/vim. The point here is not that learning emacs is hard but that there are now a significant number of developers who expect standard shortcuts from the programs they use.
- soegaard 16y agoHi Suraj, Consider filing a feature request. Once upon a time you could use ctrl+uparrow to get the previous expression in the interaction windows. I don't know, why that keybinding disappeared. Perhaps it was just an oversight?
- c00p3r 16y agoFirst of all: Emacs (and vim) are perfectly usable on (and originally developed for) a dumb terminal, or so-called console. This is the main difference with modern IDEs such as eclipse, and Gnome or KDE-based ones. The key-sequences in vi (the true masterpiece) and long sequences in emacs are designed and evolved to be useful on terminals, and they definitely are. Vim and emacs both were text editors based on original concepts and then evolved as source code editors, rather than IDEs which were created to imitate Visual studio. =)
- JulianMorrison 16y ago"lein repl" and gedit open in another window. These complicated Clojure setups with slime and so forth are unnecessary.
- grogers 16y agoI can understand that interacting with the REPL inside an emacs session might be better than what you can get in vim (haven't tried either yet - I just use a separate REPL session). But is there anything particular about emacs the editor that makes it particularly good for editing lisp code? For example, the text object selection in vim (:help object-select) has been great for interacting with paired () [], auto-indenting blocks, etc.
- ahk 16y agoYup. And what's the deal with it not having an horizontal scroll bar?