Долгое время я использовал только один текстовый редактор — Vim. Но вот я пришёл на новую работу и ситуация изменилась. Мне было предложено работать над относительно большим (> 300000 строк) коллективным проектом. Проект написан в Visual Studio, в качестве системы контроля версий используется MS Source Safe. Мысль писать в VS мне сразу не понравилось, но, поскольку все остальные условия меня более чем устраивали, я согласился.
Несколько дней я поработал в «пустой» VS и понял, что долго так продолжаться не может. Слишком уж неудобным показался редактор студии после нескольких лет регулярного использования Vim. И я начал искать способ продолжать работу над проектом и при этом использовать свой любимый редактор.
Непродолжительный поиск дал следующие варианты частичного решения проблемы.
viemu.com
Первое что мне пришло в голову — найти плагин, который бы изменил интерфейс тестового редактора студии на Vim-подобный. Такой плагин существует и называется ViEmu. Сразу замечу, что он поддерживает далеко не все возможности Vim.
Короче говоря, ViEmu реализует базовую функциональность Vim, не мешая использовать весь функционал VS. Но, что для меня главное, ViEmu — это не Vim. Поиграв с ViEmu несколько дней, я от него отказался. Слишком уж меня раздражало, когда я на автомате вводил Vim'овские команды или нажимал хоткеи, которые ViEmu не поддерживает и каждый раз недоумевал, почему ничего не работает. Таким образом, ViEmu — это не лучшее решение для пользователя Vim с большим опытом. Он должен хорошо подойти людям, которые хотят научиться использовать Vim, не отказываясь при этом от привычной среды разработки, а также людям, которые в повседневной работе используют только базовый функционал Vim.
code.google.com/p/vivim
ViVim — это ещё один плагин к VS, который использует принципиально другой подход по сравнению с ViEmu. Он просто позволяет запустить GVim внутри окна Visual Studio. После его установки в диалоге «Open with» студии появляется пункт «Vim Editor». Там же можно назначить Vim редактором по умолчанию. На мой взгляд это — наиболее простое и правильное решение проблемы, однако его реализация далеко не идеальна. На моём компьютере ViVim не раз зависал и даже обрушивал VS. Если ViVim немного доработают, я обязательно буду его использовать. Пока же я решил поискать другие варианты.
Таким образом, ViVim основан на правильной идее, но пока сыроват.
www.vim.org/scripts/script.php?script_id=864
Если предыдущие два метода были реализованы как дополнения к VS, то данный является дополнением к Vim. Работает он следующим образом: нужно запустить Visual Studio, открыть в ней проект, затем запустить Vim, выполнить в нём специальную команду, скрипт найдёт запущенную студию и будет обращаться к ней чтобы скомпилировать проект.
Возможно, стоит попробовать использовать ViVim совместно с visual_studio.vim.
www.vim.org/scripts/script.php?script_id=524
www.vim.org/scripts/script.php?script_id=1437
Последний вариант — самый радикальный. Можно просто редактировать файлы в Vim и запускать VS вместо make только для компиляции проекта.
Итак, есть несколько способов работать с проектами VS с помощью Vim. Ни один из них не является идеальным. Я для себя пока не выбрал, какой способ использовать. Если вы знаете другие способы — напишите пожалуйста в комментариях.
UPD: Этим постом я не хотел показать, что Visual Studio хуже Vim или наоборот. Я хотел лишь хотел показать, как можно использовать привычный интерфейс там, где он изначально не предусмотрен.
Несколько дней я поработал в «пустой» VS и понял, что долго так продолжаться не может. Слишком уж неудобным показался редактор студии после нескольких лет регулярного использования Vim. И я начал искать способ продолжать работу над проектом и при этом использовать свой любимый редактор.
Непродолжительный поиск дал следующие варианты частичного решения проблемы.
Вариант 1: ViEmu
viemu.com
Первое что мне пришло в голову — найти плагин, который бы изменил интерфейс тестового редактора студии на Vim-подобный. Такой плагин существует и называется ViEmu. Сразу замечу, что он поддерживает далеко не все возможности Vim.
Плюсы ViEmu
- Элементарная установка
- Безглючная работа внутри VS
- Интеграция с IntelliSense и отладчиком
Минусы ViEmu
- По умолчанию работают не все хоткеи, их надо настраивать вручную
- Минимальное количество настроек
- Нет поддержки скриптов и, соответственно, плагинов
- Наверняка ещё много чего не поддерживает (использовал его недолго, поэтому подробный список привести не могу)
- Стоит денег (около 100$ за персональную лицензию)
Короче говоря, ViEmu реализует базовую функциональность Vim, не мешая использовать весь функционал VS. Но, что для меня главное, ViEmu — это не Vim. Поиграв с ViEmu несколько дней, я от него отказался. Слишком уж меня раздражало, когда я на автомате вводил Vim'овские команды или нажимал хоткеи, которые ViEmu не поддерживает и каждый раз недоумевал, почему ничего не работает. Таким образом, ViEmu — это не лучшее решение для пользователя Vim с большим опытом. Он должен хорошо подойти людям, которые хотят научиться использовать Vim, не отказываясь при этом от привычной среды разработки, а также людям, которые в повседневной работе используют только базовый функционал Vim.
Вариант 2: ViVim
code.google.com/p/vivim
ViVim — это ещё один плагин к VS, который использует принципиально другой подход по сравнению с ViEmu. Он просто позволяет запустить GVim внутри окна Visual Studio. После его установки в диалоге «Open with» студии появляется пункт «Vim Editor». Там же можно назначить Vim редактором по умолчанию. На мой взгляд это — наиболее простое и правильное решение проблемы, однако его реализация далеко не идеальна. На моём компьютере ViVim не раз зависал и даже обрушивал VS. Если ViVim немного доработают, я обязательно буду его использовать. Пока же я решил поискать другие варианты.
Плюсы ViVim
- Полная поддержка всех возможностей Vim
- Работа внутри окна VS
Минусы ViVim
- Глюки
- Отсутствие возможности использовать функционал VS непосредственно внутри Vim (хотелось бы хотя бы компилировать проект и просматривать список ошибок командой Vim'а)
Таким образом, ViVim основан на правильной идее, но пока сыроват.
Вариант 3: скрипт visual_studio.vim
www.vim.org/scripts/script.php?script_id=864
Если предыдущие два метода были реализованы как дополнения к VS, то данный является дополнением к Vim. Работает он следующим образом: нужно запустить Visual Studio, открыть в ней проект, затем запустить Vim, выполнить в нём специальную команду, скрипт найдёт запущенную студию и будет обращаться к ней чтобы скомпилировать проект.
Плюсы visual_studio.vim
- Возможность писать код и компилировать внутри Vim'а
Минусы visual_studio.vim
- Необходимость держать VS запущенной
- Отсутствие интеграции с MS SourceSafe, IntelliSense, отладчиком
Возможно, стоит попробовать использовать ViVim совместно с visual_studio.vim.
Вариант 4: Compiler files
www.vim.org/scripts/script.php?script_id=524
www.vim.org/scripts/script.php?script_id=1437
Последний вариант — самый радикальный. Можно просто редактировать файлы в Vim и запускать VS вместо make только для компиляции проекта.
Плюсы
- Можно работать над проектом, не выходя из Vim и не запуская VS вручную
Минусы
- Помимо возможности компиляции никакая интеграция с VS не осуществляется
Итак, есть несколько способов работать с проектами VS с помощью Vim. Ни один из них не является идеальным. Я для себя пока не выбрал, какой способ использовать. Если вы знаете другие способы — напишите пожалуйста в комментариях.
UPD: Этим постом я не хотел показать, что Visual Studio хуже Vim или наоборот. Я хотел лишь хотел показать, как можно использовать привычный интерфейс там, где он изначально не предусмотрен.