在 vim 中加入文件路径的建议方法

Dav*_*542 2 vim

在Python中我经常会做这样的事情:

os.path.join('/some/path/', 'something', 'file.mov')
Run Code Online (Sandbox Code Playgroud)

或者可以使用 来完成Path(...)。在 vim 中执行此操作的建议方法是什么?例如,这是我当前在与脚本相同的目录中创建日志文件的方式:

let log_file = expand('%:p:h') . '/file.log'
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

Luc*_*tte 5

我的库中有一个lh#path#join()函数,但老实说......我从不使用它。最后,它总是归结为字符串连接,并且/始终有效,即使在 Windows 上也是如此。当我需要与外部进程交互时,我有其他函数可以正确保护路径名。

" Function: lh#path#join(pathparts, {path_separator}) {{{3
function! lh#path#join(pathparts, ...) abort
  let sep
        \ = (a:0) == 0                       ? '/'
        \ : type(a:1)==type(0) && (a:1) == 0 ? '/'
        \ : (a:1) == 1                       ? '\'
        \ : (a:1) =~ 'shellslash\|ssl'       ? (&ssl ? '\' : '/')
        \ :                                    (a:1)
  return join(a:pathparts, sep)
endfunction
Run Code Online (Sandbox Code Playgroud)