Есть хороший плагин subversion для Vim?

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

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

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

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

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

Ответ 1

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

:! svn update

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

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

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

vimtutor

Вы скоро начнете работать.

Ответ 2

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

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

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

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

Ответ 3

Я рекомендую VCSCommand. Он имеет удобные отображения из коробки, и он работает с svn, git и hg. Однако на самом деле он не имеет "GUI" как таковой; Я не думаю, что вы найдете много ресурсов, ориентированных на vim.

Ответ 4

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

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

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

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

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

:!svn log -l3 %

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

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

:!svn diff %

'%: h' указывает директорию, в которой находится файл:

:!svn status %:h

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

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

:find Inventory.pm

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

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

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

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

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

VIM Screenshot1

VIM Screenshot2

Ответ 5

Для простых задач вам следует следовать советам по матерке:

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

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

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

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