On 2020-01-29, Zhe Lee wrote:
> 
> 
> On Tuesday, January 28, 2020 at 1:16:41 AM UTC+8, Gary Johnson wrote:
> 
>     On 2020-01-27, Zhe Lee wrote:
>     > I know %:p %:t thes things. But What I need now is not
>     > current folder I get a full file path from a regex match. 
>     >
>     > And now I need to get the folder from this full path. 
>     >
>     > I already Google a lot but can't find useful things all
>     > related about "%:t :p" things so how to make it. 
>     >
>     > This is the code I use in the vimrc file. 
>     >
>     > function! HandleURL()
>     >   let s:uri = matchstr(getline("."), '[a-zA-Z]*:\/[^ >,;]*')
>     >   echo s:uri
>     >   if s:uri != ""
>     >     if s:uri =~ '^http'
>     >         silent exec "AsyncRun chrome ".s:uri.""
>     >     else
>     >         """"""""""""""
>     >         "I want to use the totalcmd64 to run the folder of the s:uri here.
>     >         """"""""""""""
>     >         silent exec "AsyncRun TOTALCMD64 ".s:uri.""
>     >     endif
>     >   else
>     >     echo "No URI found in line."
>     >   endif
>     > endfunction
> 
>     I'm not sure I understand.  I think you're looking for fnamemodify()
>     and the ":h" modifier, perhaps this:
> 
>         silent exec "AsyncRun TOTALCMD64 ".fnamemodify(s:uri, ":h")
> 
>     See
> 
>         :help fnamemodify()
>         :help filename-modifiers
> 
>     Regards,
>     Gary
> 
>  
> 
>      Thank you. It worked.  But after checking the  manual,  I think  `  silent
>     exec "AsyncRun TOTALCMD64 ".fnamemodify(s:uri, ":p:h") `  It's a better
>     way.  Am I right? 
You're welcome.  I'm glad to hear that it worked.
If s:uri is a path name relative to the current directory, you would
be right.  However, if s:uri is a URI naming a file on your local
computer, then I would expect it to begin with "file:", for example:
    file:///path/to/file
The part after "file://" is already a full path name, so using ":p"
is not going to help.  It is not needed.
>  Thanks a lot for your help, I already find fnamemodify() before
> but seems my English is not good enough. 
You're welcome.  I think that ":help expand()" may have a better
explanation of file name expansion, but I don't know whether its
English is any easier to understand.
Regards,
Gary
-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200130081044.GB4379%40phoenix.
Thursday, January 30, 2020
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment