在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)
有一个更好的方法吗?
我的库中有一个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)