• vim 自动备份


    启动时间20:11 完成时间22:26 这个vim脚本的作用是用于tex文件,当文件的最后一行含有"backup"字符,会把这个tex文件与相应的pdf文件复制到backup_path指定的位置.这个函数会在tex文件退出的时候作用.

    tex文件在备份的文件名中加入日期加以区别,如果是同一分钟内的文件,只保留后一个.

    pdf文件是不按时间区别的.

    如果备份中有错发生,就用getchar() 函数,中断当前的工作,确认之后再关闭.

    ps:当打开两个文件时,如果出错如没有目录,这时出错的显示会有两次,但是如果只打开一个文件,则只会显示一次,这个可能与函数的强制载入有关,但是具体的是什么还不知道. "{{{自动备份,同步 " autocmd BufWinleave *.tex if getline("$") =~ "backup" |call Backup()| endif function! Backup() "如意backup_path的最后一个字符是"/" let backup_path = "...." if isdirectory(backup_path) == 0 echo "no the path" let stop = getchar() return 1 endif "当前文件的全名 let name = expand("%:p") if filereadable(name) == 0 echo "this file has problem" let stop = getchar() return 2 endif let date = strftime("%y%m%d%H%M") let backup_name = backup_path . expand("%:t:r") ."_" . date .".". expand("%:e") if filereadable(backup_name) == 1 if delete(backup_name) == 1 echo "there is the same file" let stop = getchar() return 3 endif endif "写入tex文件 exec "write " backup_name "复制pdf文件 let pdfname=expand("%:p:r") .".pdf" if filereadable(pdfname) != 1 echo "there is not the pdf file" let stop = getchar() return 4 endif let targetpdf =backup_path . expand("%:t:r") . ".pdf" let pdfcpinfo = system("cp " .pdfname ." " . targetpdf) if pdfcpinfo != '' echo "can't cp the pdf file" let stop = getchar() return 5 endif return 0 endfunction

  • 相关阅读:
    SQLite存储类(数据类型)
    SQLite常用命令
    C# 跨线程操作无效
    Android打开新的Activity并同时关闭当前Activity
    SQLite实现Top功能
    Android调用Sqlite数据库时自动生成db-journal文件的原因
    C#使用SqlDataReader读取数据库数据时CommandBehavior.CloseConnection参数的作用
    Android计算时间差
    PS通道抠图总结
    Android再次激活Activity时触发事件用于列表重新读取载入
  • 原文地址:https://www.cnblogs.com/fengidri/p/2757476.html
Copyright © 2020-2023  润新知