Hello,

Since tips on vim.sf.net have been disabled because of spam, I thought I
would share this here.  I find the :Normal command extremely useful:

" Behaves like the built-in normal command, except that it takes keys
such as <f8> right on the command-line.
function! Normal( bang, args )
  execute 'map Normal_map ' . a:args

  execute 'normal' . a:bang . ' Normal_map'

  unmap Normal_map
endfunction
com! -bang -nargs=+ Normal call Normal( <q-bang>, <q-args> )

Typically, when you call :normal, you can't embed keys in there easily
-- an example:

    :normal i<span><cr></span><esc>

Produces:

    <span><cr></span><esc>

(Insert mode is automatically exited at the end of the normal command.)

However,

    :Normal i<span><cr></span><esc>

Produces:

    <span>
    </span>

I use it all the time with things like :windo (I have a lot of setting
toggles mapped to function keys) to get things the way I like them in
one fell swoop.  Also, if you prefer to use the old-style keys (<c-v>
followed by the key to get the actual key on the command-line), :Normal
still works.

Please note that you CAN get this effect with the built in :normal, but
you have to do something like this:

    :execute "normal i<span>\<cr></span>\<esc>"

(I've gone so far as to set up a command-line abbreviation to always
convert :normal to :Normal in my configuration.)

Hope this helps,

Salman.

Reply via email to