如何获取目录Vim正在调查'?我想将vimrc
平台设置为独立,因此我不想放置显式目录。在Linux上,例如vim在~/.vim
中查看~\vimfiles
和Windows。如何获取使用的目录,将我的文件放在那里?
答案 0 :(得分:1)
我不能说这是我们从未需要的信息,因为我有一个用途。
在lh-vim-lib中,我以这种方式进行(在lh#path#vimfiles()中):
[/\\]
)::let regex = substitute($HOME, '[/\\]', '[/\\\\]', 'g')
。 let regex .= '\(vimfiles\|.vim\)'
:let paths = filter(split(&rtp, ','), 'match(v:val, regex) != -1')
+ :return paths[lh#list#arg_min(paths, function('len'))]
注意:真正的代码对错误有点复杂,通用和弹性(/抵抗?)。
PS:因为cygwin,测试has('win32')
是不够的。
编辑:我被要求提供lh#list#arg_min()
定义。它可以在lh-vim-lib中找到。它的定义很简单,有点麻烦(IMO)
function! lh#list#arg_min(list, ...) abort
if empty(a:list) | return -1 | endif
let Transfo = a:0 > 0 ? a:1 : function(s:getSNR(id))
let m = Transfo(a:list[0])
let p = 0
let i = 1
while i != len(a:list)
let e = a:list[i]
let v = Transfo(e)
if v < m
let m = v
let p = i
endif
let i += 1
endwhile
return p
endfunction
答案 1 :(得分:0)
您可以覆盖默认的execvpe()
,以使Vim在Windows上使用相同的'runtimepath'
。只需将其放入~/.vim/
:
~/.vimrc