I've always been curious about Emacs, but I haven't made time to really dig into it. A resource like this will be very helpful. Looking forward to reading it!
I installed an earlier version of it 3+ years ago and then worked through the standard tutorial a couple of times, invoked with "C-h t" (control-key + h-key, then t-key).
After that, I was off and running with Emacs!
Once some familiarity with Emacs Lisp (elisp) has been acquired, a careful study of the prelude sources and the sources of various packages installed by prelude is a great way to acquire a deeper understanding of how to wire things together inside Emacs.
A decent way to get started learning elisp is to read the introductory text hosted on gnu.org:
Pro tip: if you haven't done so previously, you may want to remap your caps lock key (via OS settings) to act as an additional control-key – some users find caps lock easier to reach for with their left pinky finger than the left-control-key on many keyboards.
While it doesn't expose you to default key bindings (by default), I've been really digging this project https://github.com/syl20bnr/spacemacs as a gentle and more intuitive introduction into the world of Emacs.
One feature where Emacs seems to be lacking is 'out of the box' text completion and IntelliSense. I know that there are modes like IDO, auto-complete, and probably others, but editors like Sublime and IntelliJ just work with zero effort. A detailed explanation on how to best configure Emacs would go a long way in making it easier to get started.
For code completion, I had decent success with company-mode and its clang backend. This was a good return on time invested as it took all of about 5 minutes to set up and worked immediately on both Linux and Mac OS X (only requirement is clang-3.something, I think - apparently works on Windows too, albeit unsupported). Initially I found it a bit slow, but after switching off the while-you-type completions I became much happier.
More recently I've started using rtags (https://github.com/Andersbakken/rtags) for code browsing. This was a bit tricker to set up, as I had to build my own copy of clang and llvm (rtags needs a more recent copy than company-mode so the one from the Linux package manager wasn't good enough). Luckily this wasn't too hard - the official instructions are perfectly clear - and it was relatively plain sailing from then on.
Compared to Visual Studio or Xcode the results overall are inferior. The browsing or completion fails more often than VS/Xcode, even with system symbols, for reasons I have yet to investigate, and of course it's far from plug-and-play, particularly in terms of automatically getting the right header paths for the current project. But it's proving workable, and is a huge improvement over ctags, particularly for C++.
I use M-/ for this purpose, which I think is bound by default. It expands based on whatever buffers are already open. Not syntax aware or anything, but useful nonetheless.
Check out Spacemacs. It tries to be just this: Emacs with a lot of plugins out of the box, sane keyboard shortcuts and Evil integration if you want it.
Sublime has completion of tokens but doesn't come with any IntelliSense to speak of. How well its symbol-indexing works is also heavily dependant on the robustness of the regex-y grammar in the particular language package that's active.
Still, as far as non-IDEs go, it is pretty capable and I do enjoy using it.
Does intelluJ support J or SMLNJ? Of course not because it's an IDE, not a text editor. Emacs selling point is its great power. The price of that power a learning curve.
Potentially interesting source, to be sure. But just a bit discombobulating to depict a nice looking hard-bound paper book at the top of the web-page only to read on the bottom: "The book is ebook only for now. I will supply the book in PDF and ePub formats"
[+] [-] joshkaufman|11 years ago|reply
[+] [-] michaelsbradley|11 years ago|reply
https://github.com/bbatsov/prelude
I installed an earlier version of it 3+ years ago and then worked through the standard tutorial a couple of times, invoked with "C-h t" (control-key + h-key, then t-key).
After that, I was off and running with Emacs!
Once some familiarity with Emacs Lisp (elisp) has been acquired, a careful study of the prelude sources and the sources of various packages installed by prelude is a great way to acquire a deeper understanding of how to wire things together inside Emacs.
A decent way to get started learning elisp is to read the introductory text hosted on gnu.org:
An Introduction to Programming in Emacs Lisp
https://www.gnu.org/software/emacs/manual/eintr.html
Pro tip: if you haven't done so previously, you may want to remap your caps lock key (via OS settings) to act as an additional control-key – some users find caps lock easier to reach for with their left pinky finger than the left-control-key on many keyboards.
[+] [-] avtar|11 years ago|reply
[+] [-] melling|11 years ago|reply
[+] [-] to3m|11 years ago|reply
For code completion, I had decent success with company-mode and its clang backend. This was a good return on time invested as it took all of about 5 minutes to set up and worked immediately on both Linux and Mac OS X (only requirement is clang-3.something, I think - apparently works on Windows too, albeit unsupported). Initially I found it a bit slow, but after switching off the while-you-type completions I became much happier.
More recently I've started using rtags (https://github.com/Andersbakken/rtags) for code browsing. This was a bit tricker to set up, as I had to build my own copy of clang and llvm (rtags needs a more recent copy than company-mode so the one from the Linux package manager wasn't good enough). Luckily this wasn't too hard - the official instructions are perfectly clear - and it was relatively plain sailing from then on.
Compared to Visual Studio or Xcode the results overall are inferior. The browsing or completion fails more often than VS/Xcode, even with system symbols, for reasons I have yet to investigate, and of course it's far from plug-and-play, particularly in terms of automatically getting the right header paths for the current project. But it's proving workable, and is a huge improvement over ctags, particularly for C++.
[+] [-] SloopJon|11 years ago|reply
[+] [-] abroncs|11 years ago|reply
[+] [-] frou_dh|11 years ago|reply
Still, as far as non-IDEs go, it is pretty capable and I do enjoy using it.
[+] [-] brudgers|11 years ago|reply
[+] [-] theophrastus|11 years ago|reply
[+] [-] mickeyp|11 years ago|reply
(But suggestions welcome.)
[+] [-] wgato|11 years ago|reply