Is it scriptable, really? I've never seen anyone claim that vim was fully scriptable before. I know about the Perl embedding (which is indeed cool, since there are (a small handful of) things Perl makes significantly easier than elisp), but maybe we're stumbling over the definition of scriptable.

When I say scriptable, I mean that every action is scriptable. I'm not talking about giving the user the ability to create scripts and then call them at will (that's more like what I call macro facility), but the ability to completely rewrite the editor's behavior in arbitrary circumstances. So, for example, in a truly scriptable editor, I can create a mode just for quizzing questions, and I can set that mode up so that when I type a question in and finish up with a question mark that causes my function (quizques-electric-question-mark or somesuch) to be called, which can do whatever it likes (insert some additional stuff, move the cursor around, save the file, refactor the indentation, whatever). Similarly, given an arbitrary computer language (a new one, say), someone could create a mode that does not just syntax highlighting and indentation but also actively helps the author write -- something like cperl-mode. Every keypress has to be fully scriptable.

If I'm mistaken, and vim is indeed scriptable to that degree, then I've been putting off learning it for too long. (Not that I can really switch, given the amount of custom elisp I have that I'd have to translate, but if it's as flexible as you say I'd like to learn it as a second editor.) But though I've seen a lot of vim advocacy, that's a claim I've never seen before. Can you point me in the direction of some documentation that explains how to do it, the vim equivalent of the Gnu Emacs Lisp Reference Manual? If this is really true, it excites me considerably, and I would stop putting it off and learn vim this spring.

But I suspect that you misunderstood me, because if vim could really do that stuff I'd think some of the people who are really into vim would have written command shells and spreadsheets and mail/news clients and web browsers and z-machine emulators whatnot for it, like the Emacs people have done.


for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc' .'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$ p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}

In reply to Re: There's a level in Hell reserved for ________ by jonadab
in thread There's a level in Hell reserved for ________ by dws

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.