GVIDE - основанная на gVim среда разработки (IDE)
Основные особенности
- Скрывает различия между режимами VIM (normal, insert, visual). GVIDE переключает VIM в режим вставки при запуске и вся дальнейшая работа происходит в этом режиме. Периодически, тем не менее, GVIDE переключает VIM в режим 'normal' (т.к. это необходимо для выполнения некоторых операций), но переключает в режим вставки сразу же по выполнении этих операций. Таким образом, для пользователя процесс редактирования выглядит вполне традиционно, без переключения режимов.
- Определяет набор традиционно используемых в современных редакторах shortcuts. Так, появляется возможность выделять текст с помощью Shift + клавиши перемещения, копировать в буфер обмена с помощью Ctrl+C/Ctrl+Insert, вставлять с помощью Ctrl+V/Shift+Insert и т.д. Полный список клавиатурных сокращений может быть найден в документации.
- Позволяет работать в различных режимах - обычный, IDE, Debug и Diff. Эти режимы отличаются расположением фреймов и различными операциями, привязанными к клавиатурным шорткатам. Так, клавиша F5 в режиме IDE означает "Начать отладку", тогда как в режиме Debug она же означает "Продолжить отладку".
- Предоставляет некоторые дополнения к VIM (внесены изменения в исходные коды VIM). Эти дополнения являются функциями внутреннего языка VIM, доступными для исполнения в пользовательских скриптах. Имена всех функций-расширений начинаются с префикса "gvide_" (к примеру, "gvide_popup").
- Добавляет общий механизм обработки асинхронных событий в VIM. Cуть механизма заключается в возможности реагирования на внешние события (такие как появления команд в канале FIFO) так же, как и на события от клавиатуры/мыши (т.е. непосредственно сразу же после их возникновения). Это довольно важное отличие от традиционного VIM, в котором возможность реагирования на асинхронные события была доступна только через регистрацию VIM-сервера и подключения к нему VIM-клиентов (да и она была добавлена относительно недавно). На данный момент механизм реализован только для GTK версий gVim (фактически только для Linux), но в скором времени планируется поддержка для Windows и Mac OS X версий.
- Предоставляет собственный конфигурационный файл со значительно более простой структурой, чем оригинальный .vimrc (в котором, по сути, всегда была смесь из опций и функций языка VimScript). Соответственно, для использования GVIDE нет необходимости в изучении VimScript и/или конфигурационных правил VIM.
- Интегрированная поддержка систем контроля версий. На данный момент поддерживаются CVS, SVN и GIT. Поддержка пока не полная, простор для улучшений имеется, однако базовые функции (добавление/удаление файлов, просмотр локальных изменений, update/commit) работают.
- Рабочий процесс основан на понятии "проект". Фактически проект в понимании GVIDE - это просто место в файловой системе + набор открытых файлов. При открытии проекта происходит автоматический переход в нужный каталог и открываются все запомненные файлы. Также GVIDE предоставляет список проектов (сортируемый в порядке Most Recently Used), из которого легко переключатся между ними.
- Интеграция с exuberant ctags. Это позволяет использовать специфичную для проекта синтаксическую подсветку. Так, если в каком-то проекте существует класс MySpecificClass, то он будет подсвечен как класс, а не как функция. Примечание: обращаю внимание на то, что для C++ поддержка пока лимитированная, т.к. ctags все-таки не является полноценным C++ компилятором и может ошибаться. Тем не менее, на практике это работает довольно неплохо.
- Быстрый поиск символов, переход на объявление/определение и назад. Стэк переходов. Очень хорошо помогает разобраться в структуре незнакомого кода. См. примечание к предыдущему пункту.
- Интеграция с системной документацией (man). Просто установите курсор на слово в тексте и нажмите F1.
- Автодополнение набираемого текста. Поиск возможных вариантов дополнения ведется в текущем и других открытых файлах. Также есть возможность явного дополнения слова, когда поиск ведется также в списке символов текущего проекта. В этом случае выдается табличка с вариантами дополнений. Примечание: есть также возможность использовать дополнение, зависимое от контекста (так, в контексте метода будет выдаваться в первую очередь дополнение для локальных переменных), но, т.к. работа над этим модулем еще не завершена, его использование по умолчанию отключено.
- Интеграция с отладчиком для визуальной отладки (в том числе и пошаговой). На данный момент работает только интеграция с GDB, но возможно подключение и других отладчиков в будущем.
В этом списке не упомянуты много других, не столь важных особенностей. Более полный список будет описан в документации. К сожалению, на данный момент она состоит из разрозненных кусочков, над которыми еще нужно немало поработать для придания целостного вида. Тем не менее, я продолжаю работать над проектом, поэтому все будет двигаться только вперед и ни шагу назад.
Да, и вот еще что. Если кому-то будет интересно поучаствовать в развитии GVIDE, я с радостью приму помощь. Пишите мне на адрес, указанный внизу страницы.
Скачать
Здесь можно скачать последний snapshot из репозитория.Инструкции по сборке
Ниже описан процесс сборки под linux- Установите пакеты, необходимые для сборки gVim - gcc, binutils, gtk2, gtk2-devel
- Скачайте последнюю версию gvide и распакуйте в какой-нибудь временный каталог
- Перейдите внутрь каталога gvide и введите команду:
./make.sh --help
Если все в порядке, вы увидите что-то вроде этого:Usage: ./make.sh [OPTIONS] [install|install-gvide] Options should be specified in the form "--name=value" or "--name value" Available options: -h, --help Print this screen --prefix=DIR Install prefix (/usr by default) --fetch Fetch required sources (VIM and ctags) --svn=REV Fetch specified revision of VIM (HEAD by default) Available targets: install-gvide Install only GVIDE files, dont't install 3dparty soft (VIM and ctags) install Full install - GVIDE files and 3dparty soft clean Clean all intermediate files of the 3dparty soft - Теперь наберите
./make.sh --fetch install
Эта команда скачает последнюю версию VIM из репозитория, exuberant ctags, сконфигурирует и построит исполняемые файлы, а также скопирует все что нужно в указанное место (prefix). Если этот каталог недоступен для записи, выполнять команду следует из-под sudo или su. - Если все прошло нормально, по указанному пути можно будет найти <prefix>/bin/gvide. Запускайте и наслаждайтесь!