GVIDE - основанная на gVim среда разработки (IDE)

Основные особенности

  1. Скрывает различия между режимами VIM (normal, insert, visual). GVIDE переключает VIM в режим вставки при запуске и вся дальнейшая работа происходит в этом режиме. Периодически, тем не менее, GVIDE переключает VIM в режим 'normal' (т.к. это необходимо для выполнения некоторых операций), но переключает в режим вставки сразу же по выполнении этих операций. Таким образом, для пользователя процесс редактирования выглядит вполне традиционно, без переключения режимов.
  2. Определяет набор традиционно используемых в современных редакторах shortcuts. Так, появляется возможность выделять текст с помощью Shift + клавиши перемещения, копировать в буфер обмена с помощью Ctrl+C/Ctrl+Insert, вставлять с помощью Ctrl+V/Shift+Insert и т.д. Полный список клавиатурных сокращений может быть найден в документации.
  3. Позволяет работать в различных режимах - обычный, IDE, Debug и Diff. Эти режимы отличаются расположением фреймов и различными операциями, привязанными к клавиатурным шорткатам. Так, клавиша F5 в режиме IDE означает "Начать отладку", тогда как в режиме Debug она же означает "Продолжить отладку".
  4. Предоставляет некоторые дополнения к VIM (внесены изменения в исходные коды VIM). Эти дополнения являются функциями внутреннего языка VIM, доступными для исполнения в пользовательских скриптах. Имена всех функций-расширений начинаются с префикса "gvide_" (к примеру, "gvide_popup").
  5. Добавляет общий механизм обработки асинхронных событий в VIM. Cуть механизма заключается в возможности реагирования на внешние события (такие как появления команд в канале FIFO) так же, как и на события от клавиатуры/мыши (т.е. непосредственно сразу же после их возникновения). Это довольно важное отличие от традиционного VIM, в котором возможность реагирования на асинхронные события была доступна только через регистрацию VIM-сервера и подключения к нему VIM-клиентов (да и она была добавлена относительно недавно). На данный момент механизм реализован только для GTK версий gVim (фактически только для Linux), но в скором времени планируется поддержка для Windows и Mac OS X версий.
  6. Предоставляет собственный конфигурационный файл со значительно более простой структурой, чем оригинальный .vimrc (в котором, по сути, всегда была смесь из опций и функций языка VimScript). Соответственно, для использования GVIDE нет необходимости в изучении VimScript и/или конфигурационных правил VIM.
  7. Интегрированная поддержка систем контроля версий. На данный момент поддерживаются CVS, SVN и GIT. Поддержка пока не полная, простор для улучшений имеется, однако базовые функции (добавление/удаление файлов, просмотр локальных изменений, update/commit) работают.
  8. Рабочий процесс основан на понятии "проект". Фактически проект в понимании GVIDE - это просто место в файловой системе + набор открытых файлов. При открытии проекта происходит автоматический переход в нужный каталог и открываются все запомненные файлы. Также GVIDE предоставляет список проектов (сортируемый в порядке Most Recently Used), из которого легко переключатся между ними.
  9. Интеграция с exuberant ctags. Это позволяет использовать специфичную для проекта синтаксическую подсветку. Так, если в каком-то проекте существует класс MySpecificClass, то он будет подсвечен как класс, а не как функция. Примечание: обращаю внимание на то, что для C++ поддержка пока лимитированная, т.к. ctags все-таки не является полноценным C++ компилятором и может ошибаться. Тем не менее, на практике это работает довольно неплохо.
  10. Быстрый поиск символов, переход на объявление/определение и назад. Стэк переходов. Очень хорошо помогает разобраться в структуре незнакомого кода. См. примечание к предыдущему пункту.
  11. Интеграция с системной документацией (man). Просто установите курсор на слово в тексте и нажмите F1.
  12. Автодополнение набираемого текста. Поиск возможных вариантов дополнения ведется в текущем и других открытых файлах. Также есть возможность явного дополнения слова, когда поиск ведется также в списке символов текущего проекта. В этом случае выдается табличка с вариантами дополнений. Примечание: есть также возможность использовать дополнение, зависимое от контекста (так, в контексте метода будет выдаваться в первую очередь дополнение для локальных переменных), но, т.к. работа над этим модулем еще не завершена, его использование по умолчанию отключено.
  13. Интеграция с отладчиком для визуальной отладки (в том числе и пошаговой). На данный момент работает только интеграция с 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. Запускайте и наслаждайтесь!