Как я могу сделать "контроль версий" в VIM? - PullRequest
6 голосов
/ 09 декабря 2011

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

Если мне в итоге не удалось получить быстрый код, я хочу вернуться к исходному рабочему коду.

Полагаю, этого можно добиться с помощью ветви отмены, но я не нашел, каксделать это.

Ответы [ 5 ]

7 голосов
/ 09 декабря 2011

Используйте систему контроля версий.Я рекомендую Git + Беглец .

Серьезно!

Вы не оглянетесь.

6 голосов
/ 09 декабря 2011

Да, вы можете добавить функцию отмены веток, которая делает ее более похожей на систему контроля версий.

В vim 7.3 вы можете иметь постоянную отмену, как описано здесь , вам нужно толькодобавьте следующие строки в ваш .vimrc.

set undodir=~/.vim/undodir
set undofile

Чтобы получить максимальную отдачу от веток, я настоятельно рекомендую gundo , поскольку вы можете использовать его для визуализации дерева и просмотра различийкоммиты.

2 голосов
/ 13 декабря 2011

Использование системы контроля версий, безусловно, хорошая идея для любых проектов, над которыми вы работаете, даже если они довольно маленькие.Тем не менее, HaskellElephant делает хорошее замечание - иногда вы можете поэкспериментировать с небольшим одноразовым скриптом, который вы хотите настроить.На самом деле может быть довольно круто иметь возможность создавать точки сохранения в таких случаях, поэтому я поиграл с функцией undotree() vim и придумал следующий скрипт:https://gist.github.com/1473170

Например, вы можете указать его под ~/.vim/plugin.Выполнение команды :StoreUndo foo создаст точку сохранения с именем "foo".Вы можете вносить любые изменения, которые вам нравятся.Когда вы выполните :RestoreUndo foo, буфер восстановит сохраненное состояние.Команда RestoreUndo завершается со всеми существующими точками сохранения.

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

2 голосов
/ 09 декабря 2011

Есть плагины для vim.

Проверьте также: http://www.vim.org/scripts/script.php?script_id=90

0 голосов
/ 09 декабря 2011

Я не специалист по vim (на самом деле, я едва могу его использовать), но мне приходят на ум решения:

  • Используйте реальный контроль версий, вот для чего он,Возможно, даже один из них «распределен», поскольку им не нужен отдельный репозиторий;
  • Просто сделайте резервную копию своего файла / папки, когда захотите.
  • Вы даже можетенапишите короткую программу (сценарий оболочки?), которая скопирует для вас файл / папку с автоматически добавленным суффиксом, который помечает время, когда вы сделали копию.
  • ..., а затем привяжите эту программу к ярлыку vim(понятия не имею, как это сделать, но, по слухам, vim настолько могущественен, что я предположил бы, что у него есть такая особенность).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...