如何扩展当前文件的完整path以传递给Vim中的命令?
当我去命令模式和types
:!mycommand %  我得到我的命令执行当前文件( %扩展到当前的文件名)。 是否有一个类似的构造,扩展完整的文件名(完整的path)? 
我正在使用Windows。
 :!mycommand %:p 
有关:
 :!cd %:p:h 
另外两个答案不适合我(出于某种原因)。 但是,我发现这个组合显示正常模式下input的完整path:
按1,然后按Ctrl G
 来源:Vim Tips Wiki上的“ 获取当前文件的名称 ”。 另请参阅:help CTRL-G的{count}CTRL-G部分。 
 追加:p ,例如 
 :!mycommand %:p 
 而%:p:h会给你文件所在目录的path。 
要打印出当前的vim文件名:
 :help expand :echo expand("%:p") " absolute path :echo expand("%:p:h") " absolute path dirname :echo expand("%:p:h:h")" absolute path dirname dirname :echo expand("%:.") " relative path :echo expand("%:.:h") " relative path dirname :echo expand("%:.:h:h")" relative path dirname dirname :echo expand("<sfile>:p") " absolute path to [this] vimscript :help filename-modifiers 
 例如(使用vim函数),将任何符号链接resolve()和expand()到当前脚本<sfile>:p (而不是%:p )的绝对path,然后exec以获取fnameescape -ed文件名包含在一个函数本地vimvariablesl:vimrcfilename : 
  " g:__sfile__dirname -- directory containing this vimrc script " after symlinks " ~dirname(abspath(realpath(__file__))) let g:__sfile__dirname=fnamemodify(resolve(expand("<sfile>:p")), ":h") " Source_dotvim(filename) -- source dirname(this_vimrc)/filename function Source_dotvim(filename) let l:vimrcfilename=g:__sfile__dirname . "/" . a:filename if filereadable(l:vimrcfilename) && !empty(l:vimrcfilename) "source s:vimrcfilename "this doesn't work, so exec: exec "source " . fnameescape(l:vimrcfilename) else echo l:vimrcfilename . " empty or not found." endif endfunction call Source_dotvim("vimrc.local.01-env.vimrc") 
笔记:
-  :help fnamemodify
-   “当前文件”: %:p(缓冲文件)/<sfile>:p(脚本文件)
-   expand('<sfile>')不能在一个函数内工作
-   源l:varname不起作用; 所以,exec– string连接 – 和fnameescape
-   :messages打印最近200 vim [error,]消息
参考
- annika-backstrom的回答
- umber-ferrule的回答
- tito-11的答案
获取当前文件的名称http://vim.wikia.com/wiki/Get_the_name_of_the_current_file
Set_working_directory_to_the_current_file http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file
 如果你想使用你的vimrc的完整path,你可以使用这样的东西: 
 let vimFiles = '$HOME/.vim' let absPath = expand(vimFiles . '/subDir') 
这会给你一个在Windows上反斜杠的path。