Plugin BackupFile para Sublime Text 2

Hace poco que he empezado a usar Sublime Text 2 (ST2) para desarrollar código. A veces hago grandes modificaciones sobre un archivo y necesito mantener el archivo antes de modificarlo por si tuviera que volver atrás.

Con esta idea me he creado un simple plugin para hacer un duplicado o backup del archivo con el nombre original más una cadena YYYYMMDD-HHMMSS. Es decir un archivo index.php se copiaría a index.php-2014-03-04-190354.

Para crear el plugin nos  vamos al menú de ST2: Tools -> New Plugin…

Esto nos creará un nuevo plugin de ejemplo, que cambiaremos por este código:

import sublime, sublime_plugin
import time
import os
import shutil

    class BackupFileCommand(sublime_plugin.WindowCommand):
        def run(self, paths):
            filesrc = paths[0]
            filedst = paths[0]+"-"+time.strftime('%Y%m%d-%H%M%S')
            if os.path.isfile(filesrc):
                try:
                    shutil.copy(filesrc, filedst);
                except:
                    sublime.status_message("Error copiando el archivo")

Este archivo lo guardamos en el directorio ” ~/.config/sublime-text-2Packages/User/BackupPlugin.py “.

Lo siguiente será crear o modificar el archivo ” ~/.config/sublime-text-2Packages/User/Side Bar.sublime-menu ” y añadir el siguiente código:

[ {
    "caption": "Backup File",
    "command": "backup_file",
    "args": { "paths": [] }
 } ]

Ahora, cuando pulsemos sobre un archivo en la barra lateral (sidebar), nos aparecerá una nueva opción “Backup File” que nos copiará el archivo seleccionado.

Este es el primer plugin de ST2 que creo, sin tener apenas idea, pero buscando algo por Internet he conseguido justo lo que quería. Quizás os venga bien a más de uno, así que lo comparto.

Hay un plugin bastante bueno, llamado Automatic Backups, que realiza una copia de backup cada vez que guardamos el archivo. La pega que tiene es que genera demasiadas copias, mientras que el mío sólo lo hace cuando nosotros queremos.

Anuncios