Reply to message «v:fname mods», 
sent 15:32:51 22 February 2011, Tuesday
by Roy Fulbright:

> How can I modify v:fname to contain: A/B/C/Mymodule/Mymodule.pm  (note: the
> last part of the path is duplicated before adding '.pm') I used
> 'substitute' to replace '::' with '/'. I looked for a vim function to
> parse pathname in order to get the last part, but found nothing.
There is a function that parses paths: fnamemodify, expression that gets last 
part of a path: fnamemodify(path, ':t'). But there is probably a better 
solution 
either using match groups or defining a new function with split+join:

    let 
&l:includeexpr='substitute(substitute(v:fname,"::","/","g"),"[^/]\\+$","&/&.pm","g")'

Original message:
> I have a fullpath filename in v:fname minus the filetype, for example:
> A::B::C::Mymodule
> 
> How can I modify v:fname to contain: A/B/C/Mymodule/Mymodule.pm  (note: the
> last part of the path is duplicated before adding '.pm') I used
> 'substitute' to replace '::' with '/'. I looked for a vim function to
> parse pathname in order to get the last part, but found nothing.
> 
> My ultimate goal is to set 'includeexpr' to an expression that will convert
> the object of a Perl "use" command to a filename for 'gf'.

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to