Создание локальной резервной копии при редактировании удаленных файлов через netrw в vim.

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

  •  05-09-2019
  •  | 
  •  

Вопрос

Я работаю со многими файлами удаленно, используя vim и плагин netrw.Я также сохраняю резервные копии с метками времени, изменяя &backupext (находится в документация).

Работая с удаленным файлом (scp://server//folder/file.txt), я заметил, что при его сохранении резервная копия даже не создается.

Есть ли способ автоматически создавать резервную копию локально (в соответствии с настройками резервного копирования vim) каждый раз, когда я сохраняю удаленный файл?

Это было полезно?

Решение

Я не думаю, что есть простая настройка для переключения.Вы можете попробовать что-нибудь написать - добавьте свой собственный BufWriteCmd автокоманда для записи резервной копии.Попробуйте использовать set verbose=9 для отладки (и посмотреть, как netrw это делает).

Другие советы

Однажды я столкнулся с вариантом этой проблемы:ведение локальных записей об изменениях, которые я внес в одинокий исходное дерево на одинокий удаленная машина.

Я поддерживал локальную копию всего дерева исходного кода и локальный репозиторий svn для версий файлов.Вместо того, чтобы использовать netrw и искать способ локального сохранения резервных копий, я редактировал все локально, и мне нужен был способ автоматического распространения моих изменений на удаленный компьютер.

решение 1:используйте автокоманду BufWritePost, чтобы вызвать scp для копирования файла после его записи.Это может работать достаточно эффективно, если система позволяет процессам совместно использовать файловые дескрипторы, поскольку можно запустить главный сеанс ssh на удаленном компьютере и использовать соединение для последующих сеансов.Если вам повезло меньше (в то время я работал на машине с Windows), время, необходимое для согласования нового соединения для каждого файла, может быть болезненным.

решение 2:для окон используйте WinSCP, который имеет режим «обновления удаленного компьютера», в котором он отслеживает каталог и все его подкаталоги на предмет изменений, а затем автоматически распространяет изменения с учетом набора правил (игнорируемые шаблоны, режим передачи для разных типов файлов и т. д.).

Что ж, судя по вашему использованию протокола scp, кажется, что вам было бы намного проще использовать предохранитель сшфс, что позволит вам поддерживать нормальное поведение файловой системы, а не просто интерфейс CRUD типа push/pull.

Плагин netrw полностью обходит :write команда, единственный способ вернуть функцию «резервного копирования» — сделать это самостоятельно с помощью автокоманд.

Я понимаю, что это не прямой ответ на исходный вопрос - однако то, что вы делаете, очень похоже на простую замаскированную VCS - так есть ли причина, по которой вы не хотите создавать удаленные файлы, напримеррепозиторий git, затем клонировать этот репозиторий локально и отправить изменения после редактирования?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top