On Monday, October 15, 2012 7:27:40 AM UTC-7, Christian Brabandt wrote:
> On Mon, October 15, 2012 16:14, porphyry5 wrote:
> 
> > On Sunday, October 14, 2012 4:59:28 PM UTC-7, coot_. wrote:
> 
> >> On 15:25 Sun 14 Oct     , Graham Lawrence wrote:
> 
> >>
> 
> >> > :echo substitute(@%, "\..*", "", "")
> 
> >>
> 
> >> >
> 
> >>
> 
> >> > :echo substitute(@%, "\([^.]\+\)\..*", "\1", "")
> 
> >>
> 
> >> > Parameters2.html
> 
> >>
> 
> >> >
> 
> >>
> 
> >> > >From :reg
> 
> >>
> 
> >> > ":   echo substitute(@%, "\([^.]\+\)\..*", "\1", "")
> 
> >>
> 
> >> > "%   Parameters2.html
> 
> >>
> 
> >> >
> 
> >>
> 
> >> > So, how should I write this substitute command?
> 
> >>
> 
> >> >
> 
> >>
> 
> >> >
> 
> >>
> 
> >> > --
> 
> >>
> 
> >> > Graham Lawrence
> 
> >>
> 
> >> >
> 
> >>
> 
> >> > --
> 
> >>
> 
> >> > 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
> 
> >>
> 
> >>
> 
> >>
> 
> >> Are you looking for:
> 
> >>
> 
> >> :echo expand("%:r")
> 
> >>
> 
> >>
> 
> >>
> 
> >> :help filename-modifiers
> 
> >>
> 
> >>
> 
> >>
> 
> >> Best,
> 
> >>
> 
> >> Marcin
> 
> >
> 
> > Many thanks, that solves the immediate problem perfectly.  But I would
> 
> > also like to know why substitute() does not, if possible.
> 
> 
> 
> Because of the way, Vim parses the regular expression in a quoted string.
> 
> If you use double quoted strings, you need to double the backslashes,
> 
> alternatively, simply use single quoted strings.
> 
> 
> 
> :h expr-string
> 
> :h literal-string
> 
> 
> 
> regards,
> 
> Christian

Many thanks.

-- 
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