A Peek at Emacs 24
batsov.com
batsov.com
Ultimately, a closure is a (function . state) cons cell. Emacs doesn't need desperately need any new primitive to handle this; it's easy to pass in state to a function that needs it. So while I will certainly take advantage of closures when they become available, I'm not excited like a little kid waiting to open his Christmas. It's nice, but not Earth-shattering. And lexical variable binding comes with significant extensibility downsides when misused.
It sure does. Consider the draconian module system in Node.js that wraps all your code inside a lambda sandwich, shutting it away completely, and then forcing you to petition for access to it on a case-by-case basis. (The justification for this apparently being nothing more sophisticated than "But encapsulation is good.")
This is the programming equivalent of bureaucracy stifling innovation. It is particularly disastrous for writing new tools, which of course is an area where Emacs shines.
If something is not easy to extend in ways that were not intended, it is not easy to extend.
Sorry, I never used Emacs, but are you trying to say that this was previously impossible? Or is it just some new binding?
http://www.emacswiki.org/emacs/CopyingWholeLines
Not having to use 3 keystrokes in the place of one is the whole point of using Emacs.
But barring that, I don't think the point of using Emacs is to write shortcuts for nearly everything. That will effectively kill many benefits of Emacs.
Emacs has various verbs for moving around and learning those and combining them with other verbs will allow you to reuse the same patterns on various types of files and use-cases.
For example, without shortcuts, copying one line is C-a C-SPC C-n M-w but actually you just keep your finger on control all the time and it becomes C-(a SPC n) to select: I can do that pretty much instantaneously. Then I can choose whether to kill or copy: in the latter, I just add M-w and the former goes even faster: C-(a SPC n w).
But the benefit of doing the more complex way is that if you want to copy/kill the line above your current line, you just do C-(a SPC p w). Or if you want to kill a few words from the beginning of the line: C-a [M-d ...] or copy them: C-a [M-f ...] M-w. Or mark a few paragraphs, starting from the current one: M-{ [M-h ...] and you get the point.
If you had shortcut functions for various complete combinations then you'd actually have to step out of the flow whenever you don't have a readily available shortcut for something. And it's much faster to type a couple of "extra" characters because you can leverage the same operations into more complex combinations without consciously thinking about it.
Well, time to go back to viper-mode, with my old friends 'yy', 'dd', and 'kyy'.
=> VIPER mode.
For you. Not for everyone.
C-v runs the command scroll-up.
It is bound to C-v, <kp-next>, <next>.
(scroll-up &optional ARG)
Scroll text of selected window upward ARG lines.
If ARG is omitted or nil, scroll upward by a near full screen.
So C-v scrolls by a screenful; M-1 C-v (which you could bind to a single key if you wish) scrolls by a single line.As an example, nobody has a formal grammar that will parse Perl 5, but cperl-mode highlights (and indents, etc.) almost everything you throw at it correctly. In fact, I can't think of anything that doesn't highlight correctly!
(Also, CEDET is in core now, and it has a library for writing parsers. Never seems to work for me, though.)