Убойные фишки редактора Geany: проекты и тэги
Программа Geany позиционируется двояко — как очень продвинутый текстовый редактор и как лёгкая IDE (Integrated Development Environment), то есть интегрированная среда разработки программного обеспечения. И потому представляет собой наглядную иллюстрацию к некогда высказанному здесь тезису — требования к главному рабочему инструменту применителей-текстовиков (в эту категорию я зачисляю всех сочинителей нарративных текстов, вне зависимости от жанра и ориентации) и разработчиков (то есть сочинителей исходных текстов программ) в значительной мере пересекаются.
Вступление
Безусловной, самой убойной фишкой Geany является изобилие плагинов: именно они превращают хороший, но не выдающийся инструмент для работы с текстами в лучший текстовый редактор всех времён и народов. По крайней мере, времён нынешних, и народов, для которых профессией является сочинение текстов, причём не исходных, а нарративных. Хотя и для редактирования исходников он прекрасно подходит — но об его «лучшести» в этом плане судить не нам с Мануалом.
Вторая «общеубойная» фишка Geany — сочетаемость фишек. Каждая из которых по отдельности может быть полезной, но далёкой от «убойности». А вот две-три такие фишки в сочетании дают эффект кумулятивного заряда. Что можно проиллюстрировать на примере. Однако сначала — ещё пара общих слов.
Geany и Gtk3
Текстовый редактор Geany основан на библиотеках Gtk. И испокон веку собирался со 2-й версией этого тулкита. Собственно, и до сих пор собирается — хотя поддержка Gtk2 давно закончилась, а развитие прекратилась ещё давнее. Тем не менее, пакеты geany
с Gtk2 присутствуют в официальных репозитория всех дистрибутивов, майнтайнеры которых не прошли мимо этого замечательного редактора.
Однако постепенно сборки Geany с Gtk3 начали появляться во всякоразных неофициальных репозиториях ряда дистрибутивов. Не была исключением и Ubuntu PPA-репозиторий — пакет geany-gtk3
имеется в PPA-репозитории Шона Дэвиса (Sean Davis).
Мы с Мануалом ознакомились с этим пакетом в наших сборках Cintu, а также Neon’а и Maui. И пришли к выводу, что Gtk3’шная сборка по функционалу стала идентичной Gtk2’шной, а с точки зрения декора существенно выигрывает за счёт возможности применения к ней современных тем проекта, например, проекта Numix:
По части стабильности работы мы также не нашли, к чему придраться. Кроме того, geany-gtk3
версии 1.30 полностью подхватил настройки Gtk2’шной версии 1.27, включая макросы. Последнее отнюдь не подразумевалось по умолчанию: за почти 10 лет применения Geany мы с Мануалом минимум дважды сталкивались с несовместимость макросов при переходе на следующую версию даже в одной линии развития Geany.
В итоге после обсуждения и обмена мнениями было решено, что все свои воззрения на текстовый редактор Geany кот Мануал будет излагать применительно к его сборке с поддержкой библиотек Gtk3. Тем более что именно в этом виде он входит в наши последние сборки Cintu — во все midi- и maxi-редакции.
Управление проектами
Возвращаемся к нашим, то есть Geany’евым, фишкам. В Geany имеется штатный менеджер проектов — достаточно функциональный и гибко настраиваемый, существенно превосходящий по возможностям механизм сессий редактора Kate. Однако по богатству возможностей уступающий своему аналогу из редактора Komodo Edit. В частности, в Geany нельзя держать в одном экземпляре программы несколько открытых проектов. И, если возникает необходимость параллельной работы над несколькими проектами (а у нас с Мануалом это обычное дело), то приходится или закрывать текущий проект, или запускать другой экземпляр редактора, что не всегда удобно.
Однако ситуация в Geany исправляется установкой плагина geany-plugin-projectorganizer
(или, в редакции на базе Gtr3, которую мы в настоящее время применяем — geany-gtk3-plugin-projectorganizer
). И включением через Инструменты –> Менеджер модулей, соответствующего ему модуля Органайзер проектов:
Органайзер проектов дополняет функционал штатного менеджера проектов. Позволяя, в частности, подключать к текущему проекту внешние каталоги:
Кроме того, Органайзер проектов наращивает штатные возможности поиска текстовых фрагментов, и так достаточно обширные. Позволяя, в частности, осуществлять рекурсивный поиск в файлах (в том числе и неоткрытых) всего проекта или какой-либо его ветки, во всех файлах, или по маске:
В скобках заметим, что в Geany есть и альтернативный менеджер проектов, обеспечиваемый плагином geany-plugin-gproject
, призванный служить полной заменой штатному управлению проектами. Однако с поставленной задачей он не справляется, с Органайзером проектов проектов несовместим, и говорить о нём кот Мануал отказывается категорически.
Это лишь один пример сочетания неплохих, но неуникальных штатных функций с функциями подключаемыми, что в сущности и обеспечивает «убойность» интегральной фишки. О других примерах такого рода, например, о сочетании встроенного терминала и файлового менеджера, кот Мануал расскажет со временем. Однако в Geany есть и собственная уникальная (а потому изначально убойная) фишка — отображение так называемого списка символов. Вопреки тому, что можно подумать, исходя из названия, она обеспечивает лёгкую навигацию по большому и сложно структурированному тексту. И следующий рассказ Мануала будет посвящён именно ей.
Навигация по тэгам
Во Вступлении к этому очерку кот Мануал отметил, что большинство убойных фишек в Geany обеспечиваются сочетанием штатных возможностей этого редактора и сопровождающих его плагинов (а то и плагинами только). Однако в нём и собственная уникальная фишка, ни от каких плагинов не зависящая. И называется она в настройках — Отображать список символов.
Опция с таким именем по умолчанию включена в настройках редактора. Как, впрочем, и опция Показывать список документов, которая на скриншоте ниже выключена за ненадобностью (для нас):
Визуально это выражается в том, что в боковой панели, а она, естественно, тоже выводится по умолчанию, будут видны две вкладки, именуемые, соответственно, Символы и Документы. Со второй из них всё ясно — она содержит список открытых в редакторе документов:
А вот первая — пуста, если не считать надписи Символы не найдены. А какие такие символы — для меня оставалось покрыто мраком неизвестности, пока я не открыл в Geany большой структурированный HTML-файл с рубрикацией нескольких уровней. Не тот, который можно будет увидеть на следующем скриншоте — это было до сочинения книжки про «Linux Mint и его Cinnamon». И, конечно же, задолго до знакомства с котом Мануалом — уж он-то сразу вразумил бы меня, что Список символов представляет собой лёгкий и удобный способ навигацию по тексту, включающем какие-либо коды. Например, теги HTML-разметки:
В котором можно развернуть, например, заголовки 2-го уровня и щелчком на имени рубрики переместиться к ней:
И потом проделать то же самое для заголовков 3-го уровня (или сколько их там есть):
Список заголовков каждого уровня может быть отсортирован по имени (это умолчание Geany) или по появлению в тексте (что удобней при навигации по HTML-файлу):
Конечно, это — не совсем представление структуры документа, а именно список рубрик. Однако такая возможность оказалась незаменимой при сборке книжек из отдельных ранее написанных статей и глав.
Впрочем, навигация по списку символов оказалась не менее удобной и при редактировании конфигурационных файлов. И вот здесь сортировка списка по имени может в некоторых случаях оказаться предпочтительной:
Можно предполагать, что механизм списка символов оказался бы полезным и при работе с make-файлами и прочими конфигами при сборке ядра и прочих софтин. Но, к счастью (или всё-таки к сожалению?) такие задачи для нас с Мануалом нынче не актуальны.