Есть хороший плагин 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 или другие?
Ответ 6
Вы можете попробовать плагин из GitHub, https://github.com/juneedahamed/svnj.vim