actually, i went looking last night, vim is definately scriptable to your hearts content. i found the totally-rockin 'taglist.vim' which provides sweet navigation through your files. i also saw scripts that changed the behavior of TAB depending on whether it was the first key pressed on a new line (indent), otherwise (word-complete), shift-TAB being (word-complete-backwards).

the scripts look something like:

" Tlist_Cleanup() " Cleanup all the taglist window variables. function! s:Tlist_Cleanup() if has('syntax') silent! syntax clear TagListTitle endif match none if exists('b:tlist_ftype') && b:tlist_ftype != '' let count_var_name = 's:tlist_' . b:tlist_ftype . '_count' if exists(count_var_name) let old_ftype = b:tlist_ftype let i = 1 while i <= s:tlist_{old_ftype}_count let ttype = s:tlist_{old_ftype}_{i}_name let j = 1 let var_name = 'b:tlist_' . old_ftype . '_' . ttype . +'_count' if exists(var_name) let cnt = b:tlist_{old_ftype}_{ttype}_count else let cnt = 0 endif while j <= cnt unlet! b:tlist_{old_ftype}_{ttype}_{j} let j = j + 1 endwhile unlet! b:tlist_{old_ftype}_{ttype}_count unlet! b:tlist_{old_ftype}_{ttype}_start let i = i + 1 endwhile endif endif " Clean up all the variables containing the tags output if exists('b:tlist_tag_count') while b:tlist_tag_count > 0 unlet! b:tlist_tag_{b:tlist_tag_count} let b:tlist_tag_count = b:tlist_tag_count - 1 endwhile endif unlet! b:tlist_bufnum unlet! b:tlist_bufname unlet! b:tlist_ftype endfunction

the deal with the syntax-highlighting is that if it knows what color to make something as soon as i type it (and knows when to change the color back to normal) then it has the brains to do further modifications like putting 'sub X {}' when you type sub (with cursor left on X), hit right-arrow or space and 'X' dissapears and cursor goes inside '{}' for anonymous sub, or type a subname and 'space' will take you to inside '{}'. i believe having highlighting (the way vim seems to do it) implies being able to smart-complete.

i hope cperl-mode is smart enough that if that were:

do { something(); } while <FOO # wouldn't get you do { something(); } while (<FOO>) {}

and now that i actually know vim has auto-complete (Ctrl-N and Ctrl-P in insert mode) i might be able to break myself of my love for short variable names...

i suggest anybody who uses vim go check out the Tips section on http://www.vim.org. there's even...

ASCII ART! +----------+ | | ******* | +----------+ **.......** | | | | **...........** +----|-----+ | *..*********..* | | *** *** +----------+ **++** **++** -------|> *++++++*******++++++* / *+++++++++++++++++++* / -----------\ *+++++++++++++++++++* / \ **+++++++++++++++** / \ ***+++++++++*** / \ ********* / \ / \ / ---------------------/

but i think we've gone way OT.


In reply to Re: Re: There's a level in Hell reserved for ________ by zengargoyle
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.