Crear copia de seguridad local durante la edición de archivos remotos a través de netrw en vim

StackOverflow https://stackoverflow.com/questions/563385

  •  05-09-2019
  •  | 
  •  

Pregunta

Yo trabajo con muchos archivos de forma remota usando vim y el plugin netrw. También guardo copias de seguridad con sellos de tiempo cambiando el &backupext (que se encuentra en la documentación de ).

Mientras se trabaja en un archivo remoto. (SCP: //server//folder/file.txt), he notado que cuando lo guardo, ni siquiera se está realizando una copia de seguridad

¿Hay alguna manera de tener una copia de seguridad realizada de forma automática a nivel local (según la configuración de copia de seguridad VIM) cada vez que guarde un archivo remoto?

¿Fue útil?

Solución

No creo que hay un entorno sencillo para alternar. Se podría tratar de la escritura algo sin embargo - añadir su AutoCommand BufWriteCmd escribir una copia de seguridad. Trate de usar set verbose=9 para la depuración (y ver cómo lo hace netrw).

Otros consejos

Una vez luchado con una variante de este problema: el mantenimiento de registros locales de cambios que hice a un solo árbol de código fuente en un solo máquina remota.

mantenía una copia local de todo el árbol de origen y un repositorio SVN local para la versión de los archivos. En lugar de utilizar netrw y en busca de una manera de guardar copias de seguridad a nivel local, edité todo a nivel local y necesitaba una manera de propagar automáticamente mis cambios a la máquina remota.

Solución 1: utilizar un BufWritePost AutoCommand para invocar scp para copiar el archivo después de que se ha escrito. Esto puede funcionar con suficiente eficacia si el sistema permite que los procesos para compartir descriptores de archivo, ya que es posible ejecutar una sesión ssh principal a la máquina remota y compartir la conexión para sesiones posteriores. Si son menos afortunados (que estaba trabajando en una máquina Windows en el momento), el tiempo que se necesita para negociar una nueva conexión para cada archivo puede ser doloroso

Solución 2: para las ventanas, usar WinSCP , que tiene un modo "Mantener actualizado máquina remota", en la cual supervisa un directorio y todos sus subdirectorios para los cambios y luego se propaga automáticamente los cambios, dado un conjunto de reglas (patrones a excluir, modo de transferencia para diferentes tipos de archivos, etc.).

Bueno, a juzgar por su uso SCP protocolo, parece que sería mucho más fácil para que usted sea utilizando la fusible sshfs, lo que le permitirá tener un comportamiento normal del sistema de archivos que copia de seguridad en lugar de sólo un push / pull interfaz de tipo CRUD.

El netrw Plugin sobrepasa completamente el comando :write, la única manera de conseguir la funcionalidad 'copia de seguridad atrás es hacerlo por sí mismo utilizando autocommands.

Me doy cuenta de que no es una respuesta directa a la pregunta original - sin embargo, lo que está haciendo parece mucho a un simple-VCS-en-disfraz - por lo que hay una razón por la cual no haría que los archivos remotos, por ejemplo, un repositorio git, a continuación, clonar ese repositorio local e impulsar los cambios después de la edición?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top