Monologo indekso » komputilo » ĉi tie
Plidensigi kaj kunpremi dosierojn sur kuranta tabo per tar
2012-05-17 00:52

Plidensigi kaj kunpremi per tar dosierojn, kiujn Vim malfermis sur kuranta tabo.

GNU tar estas vokata tra system() en jena.

Meti dosiernomon aŭ tutan vojnomon *sen sufikso* en argumento 'elignomo' por konserviĝo, kaj kunpreman formon en argumento 'kunpremo' laŭ GNU tar.

(Kunpremaj opcioj de tar ... z:gzip, j:bzip2, Y:lzma, Z:compress)

function! VimTar(elignomo, kunpremo)
    let sufikso = ".tar"
    if len(a:kunpremo) > 1
        echo "Error: invalid compress"
        return -1
    endif
    if a:elignomo == ""
        let a:elignomo = "out"
    endif
    let sufiksoj = ["gz","bz","lzma","Z"]
    let sufikso .= "." .sufiksoj[match(['z','j','Y','Z'], '\C' .a:kunpremo)]
    let dosiernomo = []
    windo call add(dosiernomo, substitute(expand("%:p"), "\\", "/", "g"))
    return system("tar c" .a:kunpremo ."f " .a:elignomo .sufikso ." " .join(dosiernomo))
endfunction
Por aldoni daton kaj tempon kurantajn malantaŭ dosiernomo, ŝanĝu lastan linion de "return" kiel jena.
return system("tar c" .a:kunpremo ."f ".a:elignomo ."_" .strftime("%Y%m%d") .sufikso ." " .join(dosiernomo))
« reen
inserted by FC2 system