Portál AbcLinuxu, 10. května 2025 06:44
set backup
a set backupdir=adresar
znam, ale chtel bych, aby se soubory zalohovaly pod zadany adresar s plnou cestou. Takze pokud budu editovat napr. /etc/hosts
, zazalohuje se jako (napr.) ~/.backup/etc/hosts~
. Jde to nejak udelat? Hledal jsem cely den ale nic... Dik
fu! SetBackupDir() let s:dirname = "~/.backup" . expand("%:p:h") execute "silent !mkdir -p " . s:dirname execute "set backupdir=" . s:dirname endf autocmd BufWritePre * call SetBackupDir()Zda se mi to docela elegantni, jeste bych misto volani systemoveho
mkdir
radsi pouzil built-in funkci, ale jaksi se u me nejmenuje mkdir
ale nejak jinak. Nevi nekdo jak napr. vypsat vsechny funkce typu *mkdir
?
call mkdir("dir_name", "p")
nefunguje?
"p"
to zarve, pokud uz adresar existuje. Pokud ne tak ho vytvori a vse je OK. Kdyz ale ulozim znovu, zarve, ze adresar nemohl byt vytvoren.
if !isdirectory("dir_name") call mkdir("dir_name", "p") endif
setbackup.vim
) je v ~/.vim/plugin
a ma tenhle obsah:
fu! SetBackupDir() " zalohuj soubory s celou cestou pod ~/.backup let s:dirname = expand("~/.backup") . expand("%:p:h") " pokud je potreba, vytvor adresar if !isdirectory(s:dirname) call mkdir(s:dirname, "p") endif execute "set backupdir=" . s:dirname endf " pred ulozenim souboru nastav adresar pro zalohu autocmd BufWritePre * call SetBackupDir()
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.