Tuesday, October 16, 2012

Re: Get filename part only from "% with substitute()

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

No comments: