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

时间:2015-01-22 14:58:34

标签: svn vim tortoisesvn

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

如果有一个不在回购中的缓冲区打开,它将会出错。

只提交当前缓冲区的代码版本是什么?
此外,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

1 个答案:

答案 0 :(得分:1)

你可以尝试一下,而不是测试:

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的经验,你必须自己测试。