VIM svn tortoise 集成:如何只提交当前缓冲区?

VIM svn tortoise integration: how to commit current buffer only?

以下代码来自a vim wiki。它使用乌龟来提交所有打开的缓冲区。

如果打开了一个不在回购协议中的缓冲区,乌龟将出错。

仅提交当前缓冲区的此代码的版本是什么?
另外,vim 应该在调用 tortoise 之前写入缓冲区。

func! CommitSVNAll()
    let buflist = []
    for b in range(1, bufnr('$'))
        if buflisted(b) && filereadable(bufname(b))
            call add(buflist, fnamemodify(bufname(b), ':p'))
        endif
    endfor
    let files = join(buflist, '*')
    if files != ''
        silent exec '!start "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"'.files.'" /closeonend:4'
    else
        call confirm('No files loaded')
    endif
endfunc

你可以试一试,未测试:

func! CommitSVNAll()
    let files = fnamemodify(bufname('%'), ':p')
    if files != ''
        silent exec '!start "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"'.files.'" /closeonend:4'
    else
        call confirm('No files loaded')
    endif
endfunc

基本上,我只是将 files 设置为当前缓冲区名称。没有使用过tortoiseSVN,需要自己测试。