eda wizard, Tue 2011-11-01 @ 20:02:56-0700:
> greetings all,
> 
> I'm trying to create a function in my .vimrc that will apply a series of 
> global pattern-matching substitutions but am having some trouble.
> Here's what I've got so far:
> 
> 
> function Scrub ()
>   :%s/<TAB>/  /g<CR>
>   :%s/\s*$//g<CR>
> endfunction
> map <silent><F7> :call Scrub ()
> 
> I'm probably not imputting the substitutions correctly. Would someone please 
> help me out?
> 
> 
> TIA,
> 
> 
> Still-learning Steve

Hi Steve,

You didn't mention the exact problem you're having, but I can provide
some general suggestions anyway:

You don't need the trailing "<CR>" on the substitution lines (I assume
those characters are typed literally and don't represent an actual
carriage return character).

You also don't need the leading colons, though I'm pretty sure they will
just be ignored if you leave them in. The rule of thumb is, you type the
colon when issuing a command interactively (i.e. within a Vim session),
but it can be omitted from commands that are used in Vim scripts. Note
that this does not apply to the ":call" in your map command; the colon
is needed there because those characters will be executed as written
when the mapping is executed.

You might consider using `noremap` instead of `map` to avoid
accidentally invoking a mapping recursively. It's a good idea to do this
by default unless you really need recursive mapping. See `:help
recursive_mapping` for more info.

You should also put a space between the "<silent>" and the "<F7>", and
omit the space between the function name and the parentheses that follow
("Scrub()" instead of "Scrub ()").

If you're still having problems after following those suggestions, then
if you let us know what's happening, we can work from there.

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to