20070926

Интеграция Vim и Subversion (SVN)

Сегодня попробовал плагин svncommand для vim-а. Позволяет выполнять команды SVN не выходя из редактора. Так, раньше я редактировал файлы рабочей копии, потом нажимал Ctrl-Z, набирал в коммандной строке что-нибудь вроде svn diff | vim - чтобы посмотреть, что изменилось, запоминал имена файлов, выходил (:q!) и делал один или несколько раз svn commit и вновь возвращался в редактор (fg).

Теперь можно редактируя файл сразу посмотреть изменения относительно его версии в SVN нажав \sd или набрав :SVNDiff. Чтобы посмотреть изменения для всего каталога — открыть каталог (:e .) и опять \sd. Чтобы отправить изменения текущего файла в репозиторий (закоммитить) — \sc или :SVNCommit. Буфер для ввода комментария открывается автоматически. Точно также добавить новый файл можно с помощью \sa (:SVNAdd), а откатиться к версии из репозитория — с помощью \sr (:SVNRevert). Первое впечатление — это довольно удобно.

Для установки плагина достаточно поместить файл svncommand.vim в ~/.vim/plugins, а svn.vim и svnlog.vim в ~/.vim/syntax.

P.S. Комбинации клавиш svncommand.vim у меня частично совпали с комбинациями клавиш для другого используемого плагина — SpellChecker.vim, который проверяет орфографию. Так что я в конечном итоге подправил свой svncommand.vim, заменив все сочетания вида \sбуква на \vбуква.

P.P.S. Уже написав эту заметку наткнулся на плагин vcscommand.vim. Он, похоже, делает то же самое, поддерживая CVS, SVN и SVK, и судя по всему более свежий.