Есть ли хороший плагин Subversion для Vim? - PullRequest
12 голосов
/ 02 августа 2011

Я уже довольно давно использую IDE, такие как NetBeans.NetBeans имеет хороший плагин контроля версий.Когда у меня есть несколько проектов, и я работаю над ними одновременно, я могу выбрать конкретные проекты для фиксации, выделив их и оставив другие.Также окно фиксации позволяет мне легко удалять ненужные файлы для фиксации.Мне не удалось найти эквивалентные плагины для Vim.

Я использовал Nerdtree;хотя он хорош для навигации по проекту, он не показывает мне, какая папка / файлы были изменены.В Netbeans он показывает сине-зеленый значок рядом с затронутым путем к дереву.

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

Я действительно хочупереключиться на Vim, но это останавливает меня.Может ли кто-нибудь предложить подобный плагин для Vim?

ОБНОВЛЕНИЕ: так как это было поднято 3 года назад, я уже давно перестал использовать Subversion и начал использовать GIT, плагины использование с vim имеет поддержку Git (Fugitive)

Ответы [ 6 ]

7 голосов
/ 02 августа 2011

Просто используйте соответствующие команды оболочки (svn commit, svn update и т. Д.).Не имеет смысла иметь плагин SVN для vim.Вы даже можете запускать команды оболочки из vim.Например:

:! svn update

Хотя я не уверен, что это даст какое-то существенное преимущество в случае SVN.

Если я хочу «обмануть» и увидеть графическую структуру каталоговИногда я открываю Subclipse в Eclipse - но в этом нет особой необходимости.

Чтобы начать работу с vim, просто откройте терминал на машине с установленным vim и выполните:

vimtutor

Вы сразу же приступите к работе.

5 голосов
/ 02 августа 2011

Существует несколько плагинов vim для subversion, хотя ни один из них не дает вам полной IDE-подобной интеграции, которая вам нужна.С помощью git можно сделать гораздо больше, поскольку он по своей природе более гибкий, и, если вам интересно, fugutive - это очень хороший плагин для этого: http://vimcasts.org/blog/2011/05/the-fugitive-series/

Но, кточка.Вот несколько плагинов, которые могут помочь с вашим конкретным запросом, и еще несколько в целом:

  • Песочница: http://www.vim.org/scripts/script.php?script_id=2468. Это не совсем то, что вы просили, но вы можетеиспользуйте его для той же цели.Всякий раз, когда вы хотите увидеть состояние репо и выборочно зафиксировать файлы, вы можете выполнить команду Sandbox и следовать инструкциям.Однако в сценарии написано «только для Linux».Вы не упомянули, какую операционную систему вы используете, поэтому, если вы работаете в Windows, я не знаю, будет ли она работать должным образом.
  • VCSCommand: http://www.vim.org/scripts/script.php?script_id=90. Это дает вамdiffs, логи на конкретный файл, обвинение, возврат и некоторые другие вещи.Интерфейс состоит из команд или отображений.
  • svn_commit: http://www.vim.org/scripts/script.php?script_id=1451. Очень маленький скрипт, который «запоминает» последнее сообщение о коммите, поэтому если вы отмените фиксацию для добавления / удаления файлов, вы не сможетеснова введите его.

Опять же, вы, вероятно, не получите нужную вам интеграцию.Vim очень гибок, но в нем сложно работать с некоторыми функциями IDE.Я вижу возможное решение, но для его написания и тестирования потребуется некоторое время.Я сожалею об этом, но вам придется либо адаптироваться к использованию клиента командной строки, как предлагает @mattkelly, либо рассмотреть возможность использования внешней программы для фиксации, следуя совету @ romainl.

3 голосов
/ 03 августа 2011

Я рекомендую VCSCommand. Он имеет удобные отображения из коробки, и он работает с SVN, GIT и HG. Тем не менее, он на самом деле не имеет «GUI» как таковой; Я не думаю, что вы найдете много vim-ориентированных ресурсов, которые делают.

2 голосов
/ 27 мая 2016

Во-первых, я полностью поддерживаю ответ @ matkelly: вам не нужен плагин для использования SVN из VIM.

Как заядлый пользователь vim, я хотел бы дать несколько советов по использованию vim в качестве IDE вместе с интеграцией Subversion. У меня есть несколько снимков, которые я только что сделал на своем экране vim, чтобы вы получили визуальный эффект.

Я пришел с фона затмения. Хотя сейчас я в основном пишу на VIM на своей рабочей станции Fedora. Я до сих пор использую eclipse для определенных задач, в которых он хорош, например, интеграция Mylyn / Tasktop (через перспективу планирования), которая интегрируется с subversion и bugzilla, чтобы помочь мне писать сообщения фиксации для конкретной задачи.

В VIM, чтобы безболезненно взаимодействовать с SVN (и общими задачами оболочки), вам нужно знать несколько сочетаний клавиш:

Я получаю журналы для файла, с которым я сейчас работаю:

:!svn log -l3 %

'%' - это специальный ярлык, который заменяется текущим путем к файлу. Вышеприведенная команда выводит последние 3 сообщения журнала для этого текущего файла.

Угадайте, что делает эта команда?

:!svn diff %

«%: h» указывает, в каком каталоге находится файл:

:!svn status %:h

Пока я в теме, вот несколько указателей для новых пользователей vim, которые хотят переключиться с GUI-IDE на vim и которым трудно перемещаться по тысячам файлов проекта:

Я рекомендую плагин NERDTree, который открывает IDE-подобное дерево каталогов и находит ваш текущий файл в дереве. Это полезно для меня только в редких случаях (для удаления, копирования, перемещения файлов или для установки моего текущего рабочего каталога). Но если все, что мне нужно, это найти определенный файл среди сотен файлов в моем проекте, я просто наберу:

:find Inventory.pm

Круто, я могу частично ввести имя файла и нажать [TAB], что расширяет имя файла для меня !!! Если есть несколько совпадений, он просто перебирает список, пока не найду тот, который имел в виду.

Это первая команда, с которой начинается мой сеанс кодирования; Я записываю компакт-диск в корневую папку моего проекта (поскольку для параметра vim 'path' установлено значение '.'), Запускаю VIM и набираю :find Filename. Никакая GUI IDE, которую я использовал, не справилась бы с такой быстротой. Затем, если я хочу просмотреть папку своего проекта, я просто нажимаю F10, которая отображается на NERDTreeFind, и использую команды jklm VIM для навигации по структуре каталогов.

Когда в VIM открыто несколько буферов (файлов), для удобной навигации по открытым буферам я использую «Buffer Explorer».

Когда я набираю метод или какое-то ключевое слово в VIM, я набираю «CTRL-N», что открывает список тегов (у меня есть cube-теги, настроенные через cron).

Плагин «Tag List» также является обязательным, который открывает список функций / методов в текущем буфере, находит метод, который вы используете в данный момент, и фокусируется на нем.

VIM Screenshot1

VIM Screenshot2

1 голос
/ 23 ноября 2015

Вы можете попробовать плагин от GitHub, https://github.com/juneedahamed/svnj.vim

0 голосов
/ 02 августа 2011

Для простых задач вы должны следовать совету mattkelly:

:!svn co path/to/repo .
:!svn add .
:!svn commit -m 'first commit'
:!svn update

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

Есть файловый менеджер SVNплагины доступны для Windows , Mac OS X и Linux .Они достаточно мощные, чтобы легко справляться с большинством ситуаций.

Если вам приходится иметь дело с действительно сложными ситуациями, рассматривали ли вы специальные графические инструменты, такие как RapidSVN или SmartSVN илидругие?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...