Пользовательская функция записи Vim для создания резервной копии - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу создать функцию записи в Vim, которая выполняет следующие действия:

  • Копирует файл перед его редактированием в каталог (давайте назовем это back_up_before_last_change)
  • Записывает новые правки в текущий файл
  • Копирует обновленный файл в каталог (давайте вызовем это back_up)

Таким образом, я мог бы посмотреть старое изменение, и если файл был случайно удален, у меня всегда была бы самая последняя резервная копия. Кто-нибудь знает, как это сделать, или порекомендует мне какой-нибудь ресурс, чтобы я мог сам разобраться. Спасибо

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Я рекомендую полную систему контроля версий; но в некоторых местах это просто невозможно. Я внедрил плагин writebackup , чтобы иметь минимальную схему резервного копирования в Vim. Сопутствующий плагин writebackupVersionControl расширяет его для работы с этими резервными копиями, и, наконец, плагин writebackupAutomator позволяет автоматически запускать резервные копии каждый день:

Не было бы неплохо, если бы Vim обнаружил что вы сделали резервные копии файла в прошлом, и автоматически создает новая резервная копия - без каких-либо действий на вашей стороне?

Этот плагин основан на writebackup.vim и writebackupVersionControl.vim подключается и автоматически записывает резервную копию на первая запись в день файла, который был заархивирован в прошлом, но еще не сегодня. Это дает вам одну беспроблемную, беспроблемную резервную копию каждый день. Для многих сценарии использования writebackup.vim (например, редактирование конфигурационных файлов, распределенных по всему / etc /), эта первоначальная резервная копия «хорошего состояния из прошлого» является наиболее важной один. (И, конечно, вы все равно можете вручную вызвать дополнительную контрольную точку резервное копирование через: WriteBackup как в прошлом.)

0 голосов
/ 28 апреля 2018

Я бы высоко рекомендовал бы какую-либо форму контроля версий, например git или mercurial . Это даст вам историю файлов, которую вы хотите (бонус: ветвление), а также обеспечит простой способ клонировать и делиться историей между различными репозиториями.

Гит

Вы можете использовать плагин, такой как vim-futitive , для обработки постановки, фиксации и многих других функций git. Vimcasts предоставляет несколько хороших обучающих программ по скринкасту для беглецов:

Постоянное Отмена

Для обеспечения контроля версий Vim также предоставляет постоянную отмену, где он сохраняет историю отмен Vim в файл. См :h persistent-undo.

Просто установите 'undofile' в вашем vimrc:

set undofile

Может потребоваться установить 'undodir' в другом месте, например, set undodir=~/.local/vim/undo. Примечание: 'undodir' должно существовать.

Следует отметить, что постоянная отмена не контроля версий и не должна рассматриваться как таковая. Например, историю отмен можно легко испортить, отредактировав файл в другом редакторе.

Плагины, такие как Gundo и undotree , могут помочь в глубокой навигации в прошлом или в сложных историях отмены.

...