Geany

Быстрая и легковесная среда разработки

Авторы: Enrico Troeger
Nick Treleaven
Frank Lanitz
Переводчики: Григорий Шмерлинг
Денис Корявов
Дата: 2010-05-22
Версия: 0.19

Copyright © 2005-2010

Документ распространяется на условиях GNU General Public License, публикуемых Free Software Foundation; версии 2 или любой более поздней. Копии этой лицензии находятся в файле COPYING в исходных текстах программы, а также в главе GNU General Public License.

СОДЕРЖАНИЕ

Введение

Что такое Geany

Основной задачей при создании Geany было получить компактную и быструю интегрированную среду разработки (IDE) с минимальной зависимостью от других пакетов. Второй задачей Geany была независимость от любой оболочки (KDE, GNOME и т.п.) — Geany требует только наличия исполняемых библиотек GTK2.

Основные функции Geany:

  • Выделение синтаксиса
  • Свертывание блоков кода (Code folding)
  • Автозавершение имен/слов
  • Работа со сниппетами (фрагментами кода)
  • Автоматическое закрытие тегов XML и HTML
  • Советы
  • Поддержка языков C, Java, PHP, HTML, Python, Perl, Pascal и других
  • Списки имен
  • Навигация по коду
  • Сборка - система для компиляции и исполнения кода
  • Простое управление проектом
  • Интерфейс для модулей

Где взять

Geany можно получить на сайте http://www.geany.org/. Возможно, Geany уже включен в ваш дистрибутив.

Лицензия

Geany распространяется на условиях GNU General Public License, публикуемых Free Software Foundation; версии 2 или любой более поздней. Копии этой лицензии находятся в файле COPYING в исходных текстах программы, а также в главе GNU General Public License.

Входящая в состав системы библиотека Scintilla library (находится в подкаталоге scintilla/) имеет свою собственную лицензию, приведенную в главе Лицензии на Scintilla и SciTE.

Документация

Документация распространяется в форматах HTML и текстовом. Последнюю версию документации можно найти на сайте http://www.geany.org/.

Если у вас есть желание дополнить документацию, см. Как принять участие в разработке документации.

Установка

Технические требования

В системе должны быть установлены библиотеки GTK (>= 2.8.0) и связанные (Pango, GLib и ATK). Обычно дистрибутив уже содержит все необходимое, и установка библиотек выполняется по умолчанию. Для Windows загрузите программы установки с сайта поддержки этих библиотек.

Пакеты программ

Доступно большое число пакетов программ в виде готовых бинарных кодов. Постоянно пополняемый список находится здесь: http://www.geany.org/Download/ThirdPartyPackages.

Компиляция исходных текстов

Скомпилировать Geany несложно. Понадобятся библиотеки GTK (>= 2.8.0) и заголовочные файлы, в том числе Pango, GLib и ATK. Все это имеется на http://www.gtk.org, но, как правило, включается в дистрибутивы с Geany.

Разумеется, понадобятся компиляторы C и C++. Рекомендуем использовать компиляторы лицензируемые согласно GNU.

Сборка с помощью make

Система сборки с использованием утилиты Make общеизвестна и хорошо отлажена.

Потребуется выполнить следующие команды:

$ ./configure
$ make
% make install

Waf - сборка

Система сборки кода с использованием Waf новая, ее разработка продолжается, но системой уже можно пользоваться. В отличие от make, для работы waf должен быть установлен Python. Waf сборка немного быстрее. Главное ее преимущество проявляется в ситуации, когда сборку необходимо повторять несколько раз, внося небольшие изменения в исходные тексты — возможно, только в один-другой из множества файлов. При этом благодаря использованию специального кэша Waf оказывается намного быстрее. Подробности см. ниже в разделе Кэш Waf. При сборке Geany с помощью Waf выполняются команды:

$ ./waf configure
$ ./waf build
% ./waf install

Кэш Waf

Используя кэш, Waf выполняет сборку исполняемого кода не затрачивая время на перекомпиляцию не менявшихся частей исходных текстов программы. Это весьма типичная ситуация в процессе отладки, когда изменения вносятся лишь в один из модулей и необходимо сразу проверить получаемый результат.

Кэш объявляется переменной окружения WAFCACHE. Размещается кэш обычно в каталоге ~/.cache/waf, который необходимо создать заранее командой

$ mkdir -p ~/.cache/waf

и затем объявить для вашей оболочки соответствующую переменную окружения (приводим пример для Bash):

export WAFCACHE=/home/username/.cache/waf

Не забудьте заменить username своим именем пользователя.

Дополнительную информацию о работе с кэшем Waf можно найти на сайте http://code.google.com/p/waf/wiki/CacheObjectFiles.

Очистка кэша

Следует присматривать за каталогом кэша, так как его размер может в ходе работы очень сильно расти. Waf пока этого не делает, так что кэшем придется заниматься вам. Проще всего дать команду, которая удалит из кэша все файлы старше 14 дней:

$ find /home/username/.cache/waf -mtime +14 -exec rm {} \;

Подробности о команде find, ее ключах и опциях см. в ее руководстве manual.

Выборочная установка

Скрипт конфигурирования поддерживает ряд вариантов, для получения справки по которым дайте команду

$ ./configure -help

или, если используете сборщик Waf,

$ ./waf -help

Варианты установки подробно рассмотрены в файле INSTALL. См. также раздел Опции компиляции.

Поддержка динамической загрузки и VTE

Если ваша система не поддерживает динамическую загрузку, вероятно вы захотите включить опцию -disable-vte в скрипте configure. Это предотвратит компиляцию Geany с поддержкой динамической загрузки libvte.so.4 (в случае доступности).

Проблемы при сборке

Если при компиляции возникают какие либо ошибки, проверьте окружение при сборке и попытайтесь найти ошибку; в случае неудачи напишите в рассылку или одному из авторов. Можно также обратиться к поставщику вашего дистрибутива.

Префикс инсталляции

Если после инсталляции потребуется редактировать какие-либо конфигурационные файлы, вам необходимо знать префикс инсталляции, т.е. путь к каталогу в который установлен Geany.

Используйте -print-prefix опцию Geany для проверки (см. Опции командной строки). Первый путь и будет искомым префиксом.

Обычно это каталог /usr если вы устанавливали готовую систему или /usr/local если система компилировалась из исходных текстов.

Руководство пользователя

Запуск Geany

Запустить Geany можно следующими способами:

  • С помощью меню рабочего стола:

    Выберите в меню приложений для рабочего стола команду : Разработка -> Среда разработки Geany.

  • С помощью командной строки:

    Наберите команду и нажмите Enter:

    % geany
    

Рабочее пространство Geany

Так выглядит окно Geany. В нем имеются следующие области:

  • Меню.
  • Панель инструментов (может быть показана или скрыта).
  • Боковая панель (может быть показана или скрыта) с двумя страницами: списком документов и списком имен вашего кода.
  • Главное окно редактора.
  • Панель сообщений в нижней части со страницами:
    • Статус - сообщения о выполнявшихся операциях.
    • Компилятор - сообщения о компиляции и сборке программ.
    • Сообщения - результаты операций "Найти использование", "Найти в файлах" и других действий.
    • Заметки - заметки для любых целей.
    • Терминал - опциональное окно терминала.
  • Строка статуса

Модули для Geany могут добавлять на боковую и нижнюю панели дополнительные страницы.

Порядок закладок страниц можно настроить в интерфейсных предпочтениях (preferences).

Размеры панелей можно менять, перетаскивая мышью разделительные линии.

Опции командной строки

Кратко Полностью Описание действия
- +число Задает переход к строке с указанным номером в первом открываемом файле (так же как и -line). Например, "geany +7 foo.bar" откроет файл foo.bar и поместит курсор редактора в строку 7. Между знаком плюс и числом не должно быть пробела.
- -column Задает переход к столбцу с указанным номером в первом открываемого файле.
-c dir_name -config=
directory_name
Использовать файлы конфигурации из альтернативного каталога (каталог по умолчанию — ~/.config/geany/.
- -ft-names Вывести список имен внутренних типов файлов (полезно для настройки сниппетов).
-g -generate-tags Сгенерировать файл глобальных тегов (см. Генерация файла глобальных тегов).
-P -no-preprocessing Отключить препроцессинг файлов C/C++ при генерации тегов.
-i -new-instance Не открывать запущенные файлы, создать новые экземпляры. Опция применима только если Geany скомпилирован с поддержкой сокетов.
-l -line Задает переход к строке с указанным номером в первом открываемого файле.
- -list-documents Возвращает список документов, открытых в Geany. Опцию можно использовать для доступа к списку открытых в данный момент документов из какой-либо внешней программы. Список построчный, включает полные имена файлов в кодировке UTF-8. Опция применима только если Geany скомпилирован с поддержкой сокетов.
-m -no-msgwin Не показывать окно сообщений. Используйте эту опцию, если не требуется видеть сообщения компилятора и не нужна поддержка VTE.
-n -no-ctags Не загружать данные для завершения имен и советы.
-p -no-plugins Не загружать модули, отключить поддержку модулей.
none -print-prefix Вывести (stdout) префикс установки, каталог данных, каталог библиотек, локальный каталог (в этом порядке, построчно).
-s -no-session Не загружать файлы, с которыми работали в предыдущем сеансе.
-t -no-terminal Не загружать поддержку терминала (когда не нужен эмулятор терминала). Поддержка терминала возможна только если Geany скомпилирован с поддержкой VTЕ. Если в системе не установлен libvte.so.4, поддержка терминала недоступна.
- -socket-file

Использовать это имя файла сокета для коммуникации с запущенной копией Geany. Можно использовать совместно с командой вызова Geany в текущем рабочем пространстве:

geany -socket-file=/tmp/geany-sock-$(xprop 
-root _NET_CURRENT_DESKTOP | awk '{print $3}')
- -vte-lib Указание полного пути или только имени файла библиотеки VTE, /usr/lib/libvte.so или libvte.so. Опция нужна только если не срабатывает автоматическое определение. Доступна если Geany скомпилирован с поддержкой VTE.
-v -verbose Выводить сообщения о действиях и статусе.
-V -version Вывести информацию о версии и завершить работу.
-? -help Показать справочную информацию и завершить работу.
- [files ...]

Загрузить перечисленные файлы вместо тех, с которыми работали в прошлой сессии. Можно попросить Geany сразу показать нужную позицию в файле (строку и столбец). например, команда "geany foo.bar:10:5" откроет файл foo.bar, поместив курсор в 54-ю позицию на 10-й строке.

Можно указать и открыть целый проект, но для этого файл проекта (*.geany) должен быть первым аргументом после ключей опций. Если при этом указаны и другие файлы, они игнорируются.

Geany поддерживает и все общие опции GTK, список которых приведен в справке (см. geany --help для подробностей).

Общие замечания

Загрузка файлов при запуске

При запуске Geany загружает все файлы, которые были открыты в предыдущем сеансе работы. Можно отказаться от такой загрузки в настройке предпочтений (см. Общие настройки запуска). Если указать какие-либо файлы в командной строке запуска, будут открыты только эти файлы. При этом список файлов, с которыми вы работали раньше, можно открыть в меню "Недавние файлы". По умолчанию здесь показаны 10 последних файлов. Изменить это число можно в настройках предпочтений.

При запуске нескольких копий Geany только первая из них открывает файлы предыдущего сеанса работы. При запуске второй копии Geany не указывайте в командной строке открываемые файлы или отключите опцию их загрузки.

Открытие файлов из командной строки ранее запущенной копии Geany

При запуске Geany проверяет, нет ли в памяти ранее запущенной копии, и при ее наличии открывает те же файлы, что были указаны в командной строке при первом запуске. Geany подобно файловому менеджеру не «захватывает» файлы, а позволяет просматривать и редактировать их из другой программы.

При открытии файла можно указать строку и столбец (позицию) в которую будет помещен курсор, например:

geany some_file.foo:55:4

файл some_file.foo будет открыт на строке 55, курсор в позиции 4.

Если почему-либо такое поведение программы вам не нравится, можно отключить опцию «копирования» открываемых файлов из командной строки первой копии соответствующим ключом командной строки - см. раздел Опции командной строки.

Эмулятор виртуального терминала (VTE)

Если вы установили в системе libvte.so, Geany загружает его автоматически и в нижней части окна появляется значок-виджет терминала (закладка).

Если при запуске Geany не находит libvte.so, виджет не загружается. Эмулятор терминала можно отключить, см. раздел Опции командной строки.

С этим терминалом (далее будем называть его VTE) можно работать по большей части так же, как с любой терминальной программой, например xterm. Поддерживается работа с буфером обмена, с помощью которого текст можно копировать или переносить в окно VTE или из него (команды в меню при нажатии правой кнопки мыши). В системах с X Window System вставка из буфера делается средней кнопкой мыши; для двухкнопочных мышей действие средней кнопки часто воспроизводится нажатием сразу на обе имеющиеся).

Оболочку, которая будет использована в VTE, можно указать в настройке предпочтений. Для входа используйте командную строку, необходимые команды вы найдете в manual оболочки. Для zsh и bash используйте аргумент -login.

Замечание

Geany ищет для загрузки файл с именем libvte.so, а при его отсутствии некоторые другие имена. В случае проблем проверьте, правильно ли вы установили libvte. Заметим, что сам Geany будет работать и без этой библиотеки.

Возможно, файл библиотеки называется не libvte.so, а как-то иначе (например, для FreeBSD 6.0 — libvte.so.8). В таком случае укажите правильную ссылку:

# ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so

Не забудьте только заменить X на номер вашего libvte.so.

Можно также задать имя библиотеки VTE в командной строке (см. Опции командной строки) или во время компиляции, указав опцию -with-vte-module-path для ./configure.

Определение собственных стилей виджетов с помощью .gtkrc-2.0

Для многих частей графического интерфейса Geany можно создать свой стиль виджетов. Для этого отредактируйте ваш .gtkrc-2.0 (обычно он находится в вашем домашнем каталоге в UNIX-подобных системах и в подкаталоге etc при установке Geany в Windows).

Для использования стиля необходимо приписать его как минимум одному из виджетов Geany, например, командой

widget "Geany*" style "geanyStyle"

Эта команда определяет стиль "geany_style" всех виджетов Geany. Можно ограничиться только некоторыми виджетами из числа следующих:

  • GeanyMainWindow
  • GeanyEditMenu
  • GeanyToolbarMenu
  • GeanyDialog
  • GeanyDialogPrefs
  • GeanyDialogProject
  • GeanyDialogSearch
  • GeanyMenubar
  • GeanyToolbar

Пример задания стиля шрифта .gtkrc-2.0:

style "geanyStyle"
{
    font_name="Sans 12"
}
widget "GeanyMainWindow" style "geanyStyle"

style "geanyStyle"
{
    font_name="Sans 10"
}
widget "GeanyPrefsDialog" style "geanyStyle"

Открытые файлы

Переход от файла к файлу

Переключаться с одного файла (документа) на другой можно с помощью мыши и клавишными командами. Отметим, что в списке файлов их порядок алфавитный, а на страницах редактора — нет.

Закладки страниц можно расположить с любой стороны главного окна редактора, выбрав нужную сторону в настройке предпочтений.

В разделе Команды работы с окнами документов и их закладками указаны полезные клавиатурные сокращения, включая наиболее часто употребимые для переключения между документами.

Возможности работы с кодировками текстов

Кодировки

Используя возможности библиотеки GLib, Geany автоматически определяет правильную кодировку файлов и поддерживает конвертирование из одной кодировки в другую..

Работать в редакторе можно только с текстовыми файлами. Geany попытается открыть любой заданный файл, но, если в нем обнаружится байт NULL, файл будет усечен по этому байту. Все следующие символы при последующем сохранении будут потеряны.

При открытии файла Geany попытается определить его кодировку. Как правило, это удается, но иногда кодировка может быть определена неверно. В таком случае задайте ее вручную, чтобы файл отображался правильно.

Вот какими способами может быть задана кодировка:

  • В диалоге открытия файлов

    Для этого в диалоге имеется выпадающий список. При выборе варианта "Распознать по содержимому" используется автоматическое определение. Если выбрать вариант "Без кодировки (None)" файл будет открыт без попыток определить кодировку, как есть.

  • С помощью команды меню "Обновить как"

    Данная команда повторно открывает текущий файл, позволяя при этом сменить кодировку.

  • С помощью команды меню "Установить кодировку"

    Это команда перекодировки. В отличие от предыдущих, она не меняет кодировку загруженного файла, а устанавливает выбранную кодировку при его сохранении.

  • Указание кодировки в самом файле

    Как мы уже отмечали, автоопределение кодировки удается не всегда. Обнаружив, что Geany неправильно открывает какой-либо файл, вы можете добавить в него явную спецификацию применяемой кодировки (character set), и Geany будет руководствоваться этой информацией.

Спецификация кодировки

Geany понимает мета-тег HTML, содержащий информацию о кодировании файла, например:

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />

Для файлов других форматов (не HTML) задайте кодировку в закомментированной строке следующим образом:

/* geany_encoding=ISO-8859-15 */

или:

# geany_encoding=ISO-8859-15 #

# и /* .... */ — примеры символов, указывающих на комментарий, который будет пропущен компилятором. Формат записи комментариев зависит от конкретного языка программирования; для нас сейчас ограничивающие символы не важны: кодировка указана подстрокой " geany_encoding=ISO-8859-15 " (в которую входят начальный и концевой пробелы). Кодировку ISO-8859-15 Geany постоянно принимает за ISO-8859-1; после вставки в файл приведенной подстроки файл будет открываться правильно.

Начиная с версии Geany 0.15 для задания кодировки можно также использовать строку, соответствующую шаблону: coding[\t ]*[:=][\t ]*([a-z0-9-]+)[\t ]*

Заметим, что...

спецификацию кодировки необходимо разместить в пределах первых 512 байт файла.

Примеры:

# encoding = ISO-8859-15

или:

# coding: ISO-8859-15

Кодировка "None"

Указание кодировки "None" означает, что не следует пытаться подобрать кодировку файла. Это может быть полезно, например, при попытке открыть файл неизвестного формата «как есть», хотя бы до первого нулевого байта 00h (NULL).

Метка порядка байтов в Юникоде (BOM)

При открытии файлов в двухбайтовых кодировках Unicode Geany обнаруживает и учитывает ВОМ, если метка присутствует в файле (см. http://en.wikipedia.org/wiki/Byte_Order_Mark). В Unix-подобных системах использование ВОМ может вызвать проблемы с программами, которые ее не учитывают. Например, компилятор gcc останавливается с выдачей сообщения об ошибке, PHP не может разобрать содержащий ВОМ скрипт и т.д. В строке статуса Geany будет показано наличие ВОМ в файле.

Если требуется поставить или удалить BOM, используйте меню документов и соответствующую настройку.

Заметим, что...

если вы не знаете, есть ли в файле BOM, нужна ли эта метка и что с ней делать — можно про нее забыть.

Редактирование

Свертывание текста

Geany поддерживает свертывание, т.е. возможность временно скрывать и снова разворачивать фрагменты редактируемого исходного текста. При этом в окне редактора слева появляются небольшие серые значки [+] и [-], указывающие на наличие скрытого фрагмента текста и возможность скрытия соответственно. Секции отмечаются вертикальными линиями. Многие типы файлов поддерживают иерархическое свертывание (вложенность сворачиваемых фрагментов)..

Заметим, что...

Вы можете изменить стиль значков и линеек свертывания — см. filetypes.common Настройки свертывания.

Если свертывание текста вам не нравится или вы им не пользуетесь, можно отключить его в настройке предпочтений.

Отметка "Сворачивать/Разворачивать все вложенные элементы" в настройке предпочтений определяет, будут ли при наличии вложенного свертывания открываться сразу все уровни свернутого текста ниже текущего.

Если при щелчке по значку свертки нажата клавиша Shift, действие опции меняется на обратное, т.е. если, например, включено раскрытие всей иерархии — с Shift откроется только первый уровень.

Прямоугольное выделение

Выделяя текст при нажатых клавишах Control и Shift (или Control и Alt, если первая комбинация не срабатывает), можно выделить прямоугольный блок. Внутри выделенного блока можно затем редактировать текст.

Перетаскивание

Выделенный фрагмент текста можно перетащить мышью на новое место, как во многих других текстовых редакторах. Если при перетаскивании нажать и удерживать клавишу Control, вместо перетаскивания текст будет скопирован.

Отступы

Geany позволяет делать отступы как с помощью табуляций, так и вставкой ряда пробелов. Применяемый способ выбирается при настройке предпочтений редактирования (подробнее см. по ссылке). Эта настройка может быть изменена явным выбором в меню Документ->Тип отступа, а также установкой опции отступов Разпознать по содержимому, в последнем случае используется тот способ, который чаще применялся в конкретном файле.

Способ создания отступов в текущем документе показан в статус-строке:

ТАБ (TAB)
- с помощью символов табуляции.
ПРБ (SP)
- с помощью пробелов.
ТАБ/ПРБ (T/S)
- и табуляцией, и пробелами.

Автоматическая установка отступов

Если включен этот режим, при завершении строки текста нажатием клавиши Enter отступ следующей строки устанавливается автоматически.

Для установки отступа предусмотрено четыре режима:

Пустой
- установка отступа отключена.
Базовый
- отступ следующей строки равен отступу предыдущей.
Текущие символы
- как Базовый, но, кроме того, строка с отступом делается после открывающей фигурной скобки '{', а при вводе закрывающей скобки '}' отступ убирается. Для языка Python роль открывающей скобки играет двоеточие ':' в конце строки.
Совмещать скобки
- как Текущие символы, но отступы для открывающей и закрывающей скобок одинаковы.

Закладки

Чтобы отметить место в тексте, поставив закладку в определенную строку, щелкните левой кнопкой мыши на левой границе окна редактора или нажмите Ctrl-m. На полях появится маленький зеленый плюс: закладка поставлена. Повторный щелчок или нажатие клавиш Ctrl-m удаляет закладку. Закладок в документе может быть сколько угодно; удалить все сразу можно командой "Удалить маркеры" в меню "Документ".

Для перехода к следующей установленной закладке нажмите клавиши Ctrl-(точка), к предыдущей — Сtrl-(запятая). Вместе с командами перехода по открытым файлам (их закладкам в редакторе) Ctrl-PgUp/PgDn и Ctrl-Tab команды перехода по закладкам позволяют очень быстро перемещаться по открытым в редакторе текстам.

Переходы по элементам программного кода

Для удобства работы в Geany предусмотрена навигация по некоторым элементам исходных текстов:

При переходе к одному из таких элементов Geany запоминает текущую позицию и переходит к следующему элементу. Для возвращения назад используйте команду "Вернуться на шаг назад", движения вперед — "Перейти на шаг вперед". Этот метод работает и в разных файлах.

Пересылка текста настраиваемыми командами

Выделенный фрагмент текста можно переслать из Geany в другое приложение, записав соответствующую команду в диалоге "Установить пользовательские команды" ("Правка -> Форматирование" или контекстное меню). Эту функцию можно использовать, например, для передачи фрагмента кода в текстовый процессор, а после форматирования или какой-то дополнительной обработки назад в Geany. Передача выполняется командой "Правка->Форматирование->Отправить выделенное в". Выделенный текст посылается на стандартный вход stdin команды пересылки, результат обработки передается на стандартный выход stdout, откуда считывается назад в Geany и в итоге замещает сделанное выделение. Стандартный выход сообщений об ошибках внешней программы stderror также передается в stdout Geany, что поможет разобраться в случае появления ошибок обработки.

Команда пересылки записывается в окне диалога после нажатия кнопки "Добавить" (можно ввести несколько разных команд, для каждой заводится своя строка). Для удаления команды достаточно очистить строку и нажать OK.

Подстановка контекста

В настройке предпочтений можно записать команды (разные для различных типов файлов, см. "context_action_cmd" в разделе Формат файла), параметром которых будет слово или выделение в тексте, в котором находится курсор. Контекстное действие вызывается в контекстном меню редактора или клавишной командой).

Текущее слово или выделение подставляется в команду как параметр "%s".

Например, следующая команда открывает сайт с документацией по PHP:

firefox "http://www.php.net/%s"

Если выполнить команду, когда курсор находится в слове "echo", браузеру будет передана команда http://www.php.net/echo и открыта справка по echo.

Автозавершение

Geany может предлагать список возможных вариантов завершения слов как для элементов языков программирования, так и для любых слов в документе.

Список вариантов появляется при наборе нескольких первых символов (по умолчанию 4, настраивается в Настройки завершений ввода) или по клавишной команде Завершить слово (по умолчанию Ctrl-Space, о настройке см. Команды редактора).

Если включен режим автозавершения для всех слов Автозавершение всех слов в документе (см. Настройки завершений ввода), в список вариантов попадут все уже имеющиеся в документе подходящие слова.

По мере продолжения ввода слова список автозавершения будет сокращаться, а если подходящих вариантов нет — закроется вовсе. Закрыть его можно в любое время нажатием Escape.

Выбор варианта из списка осуществляется стрелками вверх-вниз и нажатием Enter/Return, либо двойным щелчком мышью. В текст будет подставлен выбранный вариант, а если включен режим Отбрасывать окончания слов при завершении (см. Настройки завершений ввода), все символы после вставленного слова будут удалены.

Автозавершение по частям

При нажатии вместо Enter клавиши Tab (настройка по умолчанию) вызывает вставку выбранного варианта не сразу, а по частям, что может быть полезно при вводе программного кода. Например, для вставки префикса gtk_combo_box_entry_:

  • gtk_com<TAB>
  • gtk_combo_<TAB>
  • gtk_combo_box_<e><TAB>
  • gtk_combo_box_entry_<s><ENTER>
  • gtk_combo_box_entry_set_text_column

(Можно назначить этот вариант действий не Tab, а другой клавише - см. Команды редактора). Если изменить или очистить комбинацию клавиш для постепенного завершения, Tab будет срабатывать так же, как и Enter.

Контекстное автозавершение

Пример:

struct
{
    int i;
    char c;
} foo;

Когда вы напечатаете foo., будет показан список автозавершения для имен 'i' и 'c'.

Это работает только для С-подобных языков в которых устанавливаются области видимости имен. Анализатор тегов С будет распознавать только общие объявления и не сможет работать для локально объявленных объектов и структур.

Пользовательские фрагменты (сниппеты)

Сниппеты - своего рода сокращения, которые для ускорения ввода текста заменяются (или автозавершаются) на часто повторяющиеся фрагменты. Заготовив (и запомнив) их в нужном количестве, можно намного ускорить ввод регулярного текста.

Например, если вы часто вводите в текст свое имя, можно создать такой сниппет:

[Default]
myname=Enrico Trоеger

Всякий раз, как только вы наберете myname <TAB> слово "myname" будет заменено на "Enrico Trоеger". Клавиша ТАВ, вызывающая замену, может быть изменена в настройках клавишных команд (Завершить фрагмент кода).

Следует ли использовать завершение или замену сокращений, Geany считывает при запуске из специального конфигурационного файла snippets.conf.

Общий файл конфигурации находится в каталоге $prefix/share/geany, где $prefix — каталог, в который установлен Geany (см. Префикс инсталляции). Не рекомендуется редактировать этот файл, поскольку при обновлении Geany он обновляется и внесенные изменения окажутся потеряны.

Для сохранения настроек скопируйте файл из $prefix/share/geany в свой каталог для конфигурационных файлов (обычно ~/.config/geany/).

Пример команды копирования:

% cp /usr/local/share/geany/snippets.conf /home/username/.config/geany/

Есть альтернатива: создать собственный конфигурационный файл ~/.config/geany/snippets.conf для своих настроек, при этом «стандартные» настройки Geany будет считывать из общего файла в $prefix/share/geany.

Файл snippets.conf содержит разделы, определяющие общие сниппеты и те, которые доступны для определенных типов файлов (например, для текстов на разных языках программирования).

Для всех типов файлов действуют разделы "Default" и "Special" . Раздел "Special" отличается тем, что в нем хранятся сниппеты, применяемые только внутри других сниппетов. Благодаря этому можно создать общий сниппет - «шаблон», в котором вводить по мере надобности те или другие элементы (подробнее см. в snippets.conf).

Вы можете определить новую секцию для файлов определенного типа, например файлов "C++". Сниппеты этой секции будут работать только в файлах заданного типа, причем при одинаковых именах они будут здесь приоритетны по сравнению со сниппетами секции "Default".

При подготовке сниппетов можно использовать специальный синтаксис.

Управляющие последовательности

\n or %newline% Вставить новую строку (последовательность заменяется байтами, фиксирующими конец строки — LF, CR/LF, или CR).
\t or %ws% Сделать отступ. Последовательность заменяется в соответствии с настройками установки отступов в редактируемом документе.
\s вставить пробел перед значением или после него (чтобы получить в тексте 'key= value' , надо записать 'key=\svalue')
%cursor% После автозавершения поместить курсор в эту позицию. Позиций может быть несколько, тогда с помощью клавишной команды Move cursor in snippet после вставки сниппета можно перепрыгивать с одной на другую.
%...% имя ключа вложенного сниппета для секции "Special". Определив в "Special", например, "brace_open" последовательность %brace_open% можно использовать в любом другом сниппете.

Имена сниппетов не должны содержать пробелов; с учетом этого ограничения можно использовать почти любую подстроку. Применение сниппетов не ограничено вводом типовых конструкций языков программирования наподобие if, for, switch. Можно использовать эту возможность для любых целей.

Начиная с версии Geany 0.15 в сниппетах можно использовать маски шаблонов, отмеченные в разделе Маски шаблонов как пригодные в сниппетах. Например, приведенный выше пример с именем автора можно улучшить так:

[Default]
myname=My name is {developer}
mysystem=My system: {command:uname -a}

Условное слово myname будет заменено на "My name is " с подстановкой имени разработчика developer.

Вставка символов из набора Юникод

Начиная с GTK 2.10 и следующих версий можно вставлять в текст символы из полной кодировки Unicode, в том числе отсутствующие в текущей кодировке. Для этого нажмите клавиши Ctrl-Shift-u и затем, удерживая Ctrl-Shift, наберите шестнадцатиричный код требуемого символа и, наконец, нажмите Enter or Return (не отпуская Ctrl-Shift!). Если отпустить эти клавиши, при нажатии Enter или любой другой клавиши кроме вставки кода юникодного символа произойдет и вставка новой строки или символа нажатой клавиши.

В некоторых ранних версиях Geany для этого приема предварительно необходимо освободить используемое по умолчанию сочетание клавиш Ctrl-Shift-u (см. клавишные команды, а затем выполнить команду Инструменты->Обновить настройки или рестартовать Geany. Работа данной функции зависит также от GTK.

Для GTK < 2.10 можно не нажимать Ctrl-Shift-u, но тогда возможны конфликты с другими клавишными определениями Geany.

Поиск, замена и переход

Звездочкой в списке помечены действия, вызвать которые можно из контекстного меню редактора или клавишными командами. Не отмеченные присутствуют также и в основном меню "Поиск".

  • Поиск
  • Поиск использования *
  • Поиск в файлах
  • Замена
  • Перейти к определению тега *
  • Перейти к объявлению тега *
  • Перейти к строке

Панель инструментов

На панели имеются форма поиска и форма для перехода к строке по номеру. Для перехода к этим инструментам имеются сочетания клавиш (см. Команды переноса фокуса). Клавиша Esc возвращает курсор в окно редактора.

Поиск

Диалоговое окно поиска можно использовать для поиска как в текущем документе, так и в других открытых в Geany.

Настройка поиска

Синтаксис записи для Использования регулярных выражений рассмотрен в разделе Регулярные выражения.

Заметим, что

для регулярных выражений используются escape-последовательности.

Эти последовательности трансформируются в символы (спецсимволы) с использованием кодировки UTF-8. Например, \t означает символ табуляции. Распознаются последовательности: \\, \n, \r, \u#### (код Unicode).

Найти все

При выборе варианта "Найти все" будет предложено выбрать область поиска:

  • В документе — в текущем документе
  • В сессии — во всех открытых в данный момент в Geany документах
  • Пометить — пометить найденные вхождения цветом.

(Цветные выделения затем можно удалить командой "Удалить маркеры" меню "Документ").

Выбор шрифта для полей ввода в диалоге поиска

По умолчанию в диалоге используется моноширинный шрифт (с одинаковой шириной всех символов, например Courier), поскольку в нем легче различаются важные в программном коде мелкие знаки - точки, запятые и т.п.

Для изменения шрифта определите стиль в .gtkrc-2.0, указав имя шрифта. (в UNIX-подобных системах обычно находится в домашнем каталоге, в Windows — в подкаталоге etc инсталляции Geany):

style "search_style"
{
    font_name="Monospace 8"
}
widget "GeanyDialogSearch.*.GtkEntry" style:highest "search_style"

Обратите внимание на слово ":highest" (высший) в последней строке: оно задает приоритет данного определения стиля. Если не «высший», стиль будет проигнорирован и ничего не изменится.

Поиск использования

Поиск использования ("Найти использование") охватывает все открытые файлы. Он подобен варианту "Найти все - В сессии" в диалоге поиска.

В этом варианте контекстом поиска является текущее выделение, а при его отсутствии - текущее слово. Таковым считается слово, ближайшее к курсору редактора, либо слово, по которому был произведен щелчок правой кнопкой мыши для вызова контекстного меню. Результаты поиска выводятся в виде таблицы в окне сообщений.

Поиск в файлах

Это мощная функция, осуществляющая поиск контекста в файлах, находящихся в заданном каталоге и его подкаталогах (неважно, открытых в Geany или нет). Работает такой поиск с помощью системной утилиты Grep, путь к которой должен быть указан в настройке предпочтений.

Здесь необходимо указать кодировку (выбор из списка) файлов, в которых будет вестись поиск. Введенный поисковый контекст конвертируется в указанную кодировку (а результаты поиска будут показаны в UTF-8). Остальные опции служат для передачи grep дополнительных аргументов.

Фильтрование результатов при работе с системами контроля версий

Если будет проводиться поиск в дереве подкаталогов (Рекурсивно в подкаталогах), можно установить в поле "Дополнительные опции" фильтр, который ограничит отбор результатов поиска по шаблону имен файлов, передав в grep соответствующий аргумент для -exclude. Это может быть полезно при работе с системой контроля версий, когда в подкаталогах может оказаться множество версий файлов. Пример:

Пример для SVN: -exclude=*.svn-base

-exclude работает только с именами файлов, но не путями. Для GNU Grep >= 2.5.2 можно использовать аргумент -exclude-dir для отбрасывания CVS- и скрытых каталогов наподобие .svn.

Пример: -exclude-dir=.* -exclude-dir=CVS

Замена

Диалог замены аналогичен рассмотренному выше диалогу поиска, в нем применяются те же опции.

Заменить все

Для замены всех вхождений искомого контекста на заменяющий будут предложены три варианта:

  • В документе — в текущем документе
  • В сессии — во всех открытых в данный момент документах
  • В выделенном — в выделенном фрагменте текущего документа.

Переход к определению тега

Если текущее слово является именем тега (например, функции) и открыт файл, содержащий соответствующее определение, команда вызовет переход к строке начала определения в этом файле. Текущим считается слово, ближайшее к курсору редактора, либо слово, под которым был произведен щелчок правой кнопкой мыши для вызова контекстного меню.

Переход к объявлению тега

Этот поиск аналогичен предыдущему, переход производится к объявлению (например, прототипа функции или extern), а не определению.

Переход к строке

Переход к строке с заданным номером в текущем файле.

Регулярные выражения

Поставив в диалоге поиска или замены отметку Регулярные выражения, можно использовать регулярные выражения (см. Настройки поиска). Синтаксис этих выражений приведен в таблице, он является POSIX-совместимым.

Заметим, что

  1. опция Escape-последовательности всегда требует применения регулярных выражений.
  2. Поиск назад с использованием регулярных выражений не поддерживается.
  3. Коды \b, \d, \s, \w являются расширениями GNU и недоступны в не-GNU POSIX системах, если Geany не был скомпилирован с опцией -enable-gnu-regex (часто используется в Windows).

В регулярные выражения могут включаться следующие интерпретируемые символьные последовательности:

. Любой символ.
( Начало области разметки вхождений.
) Конец области разметки вхождений.
\n

Здесь n - порядковые номера областей разметки вхождений от 1 до 9.

Поиск (Wiki)\1 обнаружит вхождение WikiWiki.

Поиск с заменой подстроки Fred([1-9])XXX на Sam\1YYY, будучи применен к Fred2XXX, даст Sam2YYY.

\0 Замена всего соответствующего текста.
\b Замена в границах слова.
\c

d, D, s, S, w or W обозначают класс символов (как в текущем наборе, так и вне его).

  • d: десятичные цифры
  • D: любой символ, кроме десятичных цифр
  • s: пустое пространство (пробел, \t \n \r \f \v)
  • S: любой непробельный символ (см.выше)
  • w: алфавитно-цифровые символы и подчеркивание
  • W: любой символ кроме алфавитно-цифровых и подчеркивания
\x Позволяет использовать символы, имеющие специальное значение. Например, \[ будет интерпретировано как квадратная скобка а не начало набора символов, \\ как обратная наклонная черта.
[...]

Вхождением будет считаться любой из символов последовательности в скобках. Если первый символ последовательности ^, все наоборот: остальные символы НЕ считаются искомыми). Сокращение S-E (start dash end) обозначает символы с S по E включительно.

Символы ] и - не имеют специального значения в первой позиции набора могут быть и последними. Для из включения следует записать []A-Z-].

Примеры:

[]|-]    поиск трех символов: ], |, -
[]-|]    поиск символов от ] до | 
[a-z]    поиск любых строчных букв 
[^]-]    поиск любого символа кроме - и ]
[^A-Z]   поиск любого символа кроме прописных букв
[a-z A-Z] поиск любой буквы
^ Поиск начала строки (кроме случая внутри описания набора символов, см. выше).
$ Поиск конца строки.
* Поиск любого числа вхождений начиная с 0. Например, по условию Sa*m будут найдены Sm, Sam, Saam, Saaam и т.д.
+ Поиск любого числа вхождений начиная с 1. По условию Sa*m будут найдены Sam, Saam, Saaam и т.д.
? Поиск 0 или 1 вхождения. например, по условию Joh?n будут найдены John и Jon.

Заметим, что

эта таблица взята из документации по Scintilla и SciTE и адаптирована. Эта документация распространяется по лицензии License for Scintilla and SciTE.

Теги

Под тегами (именами) понимается информация, соотносящая коды в программе с объявлениями и определениями в исходных текстах.

Geany позволяет выводить сведения о имеющихся тегах ("workspace tags") в поддерживаемых типах файлов при открытии файла. Можно также автоматически загружать внешний файл тегов ("global tags files") при запуске или вручную командой Инструменты -> Загрузить теги.

В Geany применен собственный формат для файла тегов, подобный ctags, однако несовместимый с ним. Использование Geany для генерации файла глобальных тегов рассмотрено ниже.

Пространство имен

Анализ тегов каждого документа производится всякий раз при его открытии или сохранении; результаты отображаются в списке имен в левой части окна Geany. Эти теги используются также для автозавершения и подсказок для всех документов текущего сеанса работы, имеющих одинаковый тип файлов.

Команду "Перейти к тегу" можно использовать для любого имени из списка (workspace tag). См. Переход к определению тега.

Глобальное пространство имен

Глобальные теги можно использовать для тех же целей, причем даже если ни один из файлов с исходными текстами не открыт. Они определены в библиотеке API и обновляются при обновлении библиотеки.

Можно загрузить глобальные теги из специально подготовленного файла, причем разными способами:

  • Командой "Загрузить теги" в меню "Инструменты".
  • Создав каталог ~/.config/geany/tags и перенеся туда файл (или сделав симлинк) перед запуском Geany.
  • Создав каталог $prefix/share/geany/tags,и перенеся туда файл (или сделав симлинк) перед запуском Geany $prefix — префикс пути инсталляции (см. Префикс инсталляции).

Можно также создать свой собственный файл определений тегов. Он должен иметь имя

name.lang_ext.tags

где lang_ext — одно из расширений для типа файла, ассоциируемого с тегами. Подробнее см. в разделе Расширения типов файлов.

Файлы глобальных тегов, используемые по умолчанию

Для ряда языков программирования список глобальных тегов загружается при первом открытии файла соответствующего типа. В настоящее время такие файлы имеются для следующих языков:

  • C - GTK+ и GLib
  • Pascal
  • PHP
  • HTML
  • LaTeX
  • Python

Формат файлов глобальных тегов

Используются два формата:

  • Tagmanager
  • Pipe-separated

Формат указывается в первой строке, которая должна быть комментарием (начинаться с символа # и пробела за ним). В строке записывается format=pipe или format=tagmanager соответственно, причем строчными буквами. Это помогает Geany правильно считать файл. Если такой строки нет, Geany пытается определить используемый формат, но при этом возможна ошибка.

Формат Tagmanager немного сложнее, он используется для файлов, создаваемых командой geany -g. Каждый тег помещается в новой строке, различные атрибуты (возвращаемое значение, список аргументов и др.) разделяются соответствующими символами.

В формате Pipe-separated теги также записываются построчно, здесь атрибуты разделяются символом | (pipe — труба, в синтаксисе командной строки прямая черта служит для передачи данных между программами. Прим.перев.). Строка выглядит так:

basename|string|(string path [, string suffix])|
Первое поле — тег (обычно это имя функции).
Второе поле — тип возвращаемого значения.
Третье поле — список аргументов для данного тега.
Четвертое поле — для описания. В данном случае не используется, при этом должно быть оставлено пустым.

За исключением первого поля (имени тега), остальные поля могут оставаться пустыми, но разделяющая их черта должна присутствовать.

Подготовив необходимый файл тегов в таком формате, сохраните его в каталоге для тегов, как описано выше в разделе Глобальные теги.

Генерация файла глобальных тегов

После разбора ряда исходных файлов вы можете создать собственный файл глобальных тегов. Для этого служит команда

geany -g [-P] <Файл тегов> <Список файлов>
  • Имя файла тегов должно отвечать приведенному выше формату.
  • Список файлов — список имен файлов, которые следует дать с полными путями доступа (этого не требуется только в случае генерации тегов для C/C++ при соответствующим образом установленной переменной окружения CFLAGS).
  • Ключ -P или -no-preprocessing при использовании препроцессора C отключает обработку директив #include для исходных текстов C/C++. Используйте такой вариант, если вы не хотите использовать общий заголовочный файл и будете вводить команду для каждого исходного файла, либо не хотите указывать переменную окружения CFLAGS.

Пример для программирования на языке D, библиотека wxD:

geany -g wxd.d.tags /home/username/wxd/wx/*.d

Генерация файлов тегов C/C++:

Для файлов тегов C/C++ требуются gcc и grep, поскольку заголовочные файлы обрабатываются препроцессором для включения других заголовков, с которыми они связаны.

Переменная окружения CFLAGS должна быть задана с правильными путями -I/path. Приводим пример для генерации тегов для библиотеки GnomeUI, работа в оболочке bash:

CFLAGS=`pkg-config -cflags libgnomeui-2.0` geany -g gnomeui.c.tags \
/usr/include/libgnomeui-2.0/gnome.h

Используя этот пример, вы можете адаптировать команду для использования CFLAGS и заголовочных файлов с любой нужной библиотекой.

Замена используемого по умолчанию файла тегов C/C++ :

По умолчанию Geany использует для C и C++ файл глобальных тегов c99.tags, обычно находящийся в каталоге /usr/share/geany. Этот файл можно заменить другим, содержащим теги, извлеченные из какого-то набора заголовочных файлов. При следующем запуске Geany вместо c99.tags будет загружен ваш новый файл тегов. Сохраняйте копию своего файла, так как при обновлении Geany он окажется заменен на стандартный и потерян.

Игнорирование тегов

Если определенные теги приводят к ошибкам при анализе кода, их можно игнорировать. Для этого создайте файл "ignore.tags" в каталоге конфигураций Geany (обычно ~/.config/geany/). Перечислите в этом файле теги, которые необходимо игнорировать, разделяя их пробелами или в отдельных строках.

Приводим более подробную информацию из руководства к Exuberant Ctags:

Составьте список идентификаторов, которые при разборе исходных файлов  C and C++  должны обрабатываться особым образом. Эта опция предоставлена для обработки частных случаев, возникающих при использовании макросов препроцессора. Включенные в список идентификаторы при разборе исходных файлов они будут проигнорированы. Если идентификатор имеет суффикс '+', ctags будет игнорировать также любой следующий за ним список аргументов в скобках. Если два идентификатора записаны через знак равенства '=' , для целей разбора первый из них будет заменен вторым.

За дальнейшими подробностями обращайтесь к странице руководства Exuberant Ctags.

Настройка предпочтений

Для настройки Geany служит диалог, вызываемый командой Правка -> Настройки. Внесенные изменения подтверждаются нажатием кнопок "Применить" или "OK" и сохраняются между сеансами работы. Большинство опций настройки имеют пояснения; подсказка появляется при наведении курсора мыши.

Настройки вида, доступные в меню "Вид", также сохраняются при завершении работы с Geany, а вот настройки в меню "Документ" действуют только для работы с текущем документом и в следующем сеансе работы будут заменены на используемые по умолчанию.

Некоторые редко используемые настройки отнесены к скрытым, см. Скрытые предпочтения.

Заметим, что

в следующих разделах сначала приводятся иллюстрации, а за ними соответствующие пояснения.

Общие настройки при запуске

Запуск

Загрузить файлы из последней сессии
Загружать те же файлы, которые открывались в предыдущем сеансе работы с Geany.
Загружать виртуальный терминал
Загружать библиотеку поддержки виртуального терминала, который будет показан в окне сообщений.
Включить поддержку модулей
Разрешить использование модулей.

Выход

Сохранять позицию и размеры окна
Сохранить размеры и положение окон.
Подтверждение выхода
Запрашивать подтверждение выхода.

Пути

Рабочий каталог при запуске
Каталог, который после запуска будет открываться при операциях загрузки и сохранения файлов. Требуется указывать абсолютный путь. Для использования текущего рабочего каталога оставляйте это поле пустым.
Файлы проекта
Путь к каталогу, который будет текущим для открытия файлов проектов.
Дополнительный путь для модулей
Еще один каталог для модулей. По умолчанию Geany ищет модули в общем каталоге инсталляции и в каталоге конфигураций. Указывать еще один каталог в котором могут находиться модули обычно необходимости нет, но это может понадобиться, если компьютером пользуется несколько человек. Добавочный каталог будет общим, а установленные в нем модули доступны всем пользователям.

Различные общие настройки

Разное

Сигнал об ошибках или по окончании сборки
Звуковой сигнал при завершении компиляции или в случае ошибки.
Перейти к дежурным сообщениях при появлении новых
При появлении нового сообщения о статусе Geany автоматически переключаться на окно сообщений
Подавлять вывод дежурных сообщений в строке состояния

Не показывать сообщения в строке статуса, отображать их только в окне сообщений.

Совет

Можно использовать сочетание клавиш "Перейти к редактору" — при этом обновляется статистика документа в статус-строке. См. Команды управления фокусом.

Использовать диалоги Windows для сохранения/открытия файлов
В Windows работать со стандартными диалогами открытия и сохранения файлов Windows вместо применяемых по умолчанию диалогов GTK.
Авто-фокус для виджетов (фокус следует за мышью)
Автоматически переносить фокус на виджет (элемент управления), над которым находится курсор мыши. Опция действует в большинстве окон Geany.

Проекты

Использовать файлы сессий для проектов
При закрытии проектов сохранять текущий сеанс работы. Вы сможете продолжать различные сеансы работы над проектами, ранее открывавшиеся файлы будут открыты автоматически.
Хранить файл проекта внутри основного каталога проекта
При создании новых проектов по умолчанию путь к файлу проекта будет включать путь к основному каталогу проектов. Если опция не выбрана, по умолчанию путь к файлу проекта будет относительным от базового. Так или иначе, задать путь как нужно можно в диалоге "Новый проект".

Настройки интерфейса

Шрифты

Редактор
Выбор шрифта для отображения документов в редакторе.
Список тегов
Выбор шрифта для списка имен в боковой панели.
Окно сообщений
Выбор шрифта для окна сообщений.

Закладки в редакторе

Показывать вкладки редактора текста
Показывать в редакторе закладки документов (позволяют выбирать документ щелчком мыши, не используя меню "Документ").
Показывать кнопки закрытия
Показ на закладках кнопок закрытия документа.
Расположение новых вкладок
Выбор места для новых закладок при создании документов: слева или справа.
За текущей
Помещает закладку после закладки текущего документа, а не с краю.
Двойной щелчок скрывает все дополнительные окна
При двойном щелчке по полосе закладок скрывает дополнительные элементы управления (как команда Вид->Показать/Скрыть все панели).

Положение закладок

Редактор
Выбор размещения закладок редактора (справа, слева, вверху или внизу окна).
Боковая панель
Выбор размещения закладок боковой панели.
Окно сообщений
Выбор размещения закладок окна сообщений.

Разное

Показ строки статуса
Показ статус-строки ниже главного окна. В строке показывается информация о редактируемом файле (текущая строка и позиция, кодировка, тип файла и др.).

Настройки панели инструментов

Панель

Показывать панель инструментов
Показ панели инструментов.
Добавить панель инструментов в меню
Объединить панель инструментов с меню, а не выводить ее ниже. Опция экономит рабочее пространство по вертикали.
Настроить панель инструментов
См. Настройка панели инструментов.

Вид значков

Стиль панели инструментов
Выбор варианта показа значков: значки с текстом, одни значки или только текст. Вариант "Системные настройки" выбирает стиль, заданный в GTK.
Размер иконок
Размер значков: крупные, мелкие, очень мелкие. Вариант "Системные настройки" выбирает размер, заданный в GTK.

Настройки редактирования

Опции

Перенос строк
Переносить длинные строки, отображая как несколько строк по ширине окна.
Использовать "умную" клавишу Home
При включенной опции первое нажатие клавиши Home перемещает курсор на первый непробельный символ текущей строки, повторное нажатие — на начало строки.
Отключить Drag&Drop
Отключение перетаскивания выделенного фрагмента мышью.
Включить сворачивание блоков кода
Разрешить скрытие групп строк «сворачиванием», что облегчает навигацию по длинному документу.
Сворачивать/разворачивать все вложенные элементы
При иерархическом сворачивании скрывать или раскрывать все вложенные уровни вместе с верхним.
Использовать индикаторы для показа ошибок при сборке
Красное подчеркивание строк, в которых компилятор выдал ошибки.
Новая строка убирает лишние пробелы
При завершении строки нажатием Enter/Return удалять концевые пробелы, если они есть.
Обрезать текст по столбцу
В заданной позиции автоматически обрывать строку и начинать новую.
Маркер переключения комментариев:
Помечать строки с комментариями в исходных текстах.

Настройки отступов

Подробности см. в разделе Отступы.

Тип

Как создавать отступы:

  • Табуляция
  • Пробелы
  • — с помощью символов табуляции или пробелов.

Вариант Tabs and Spaces в некоторых редакторах называется Soft tab support — «мягкая» табуляция. Позволяет более гибко регулировать отступы.

Ширина
Ширина отступа в знакоместах (пробелах). По умолчанию 4.
Распознать по содержимому
Попытаться установить характеристики отступов по образцу открытого файла.
Тип авто-отступа:

Способ автоматической установки отступа новой строки при нажатии Enter.

Базовый
Основной способ: отступ как в предыдущей строке.
Текущие символы
По текущему символу: отступ ставится в зависимости от типа файла и таких знаков как, например, фигурные скобки для языка С и двоеточия для Python.
Совмещать скобки
По скобкам. Аналогично Текущие символы, но, например, для C-подобных языков закрывающая скобка } ставится с таким же отступом как открывающая.
Отступ при помощи клавиши Tab

Установка отступа клавишей табуляции. Если опция выбрана, нажатие клавиши Tab устанавливает отступ текущей строки или выделения, а клавиш Shift-Tab — удаляет. Собственно, при этом клавиша tab просто вставляет символ табуляции (что может отличаться установки отступов по некоему способу).

Заметим, что

Для установки и удаления отступов можно также использовать настраиваемые клавишные сочетания. Действие клавиши Tab может быть различным в зависимости от контекста операции, например при установке отступа и вставке сниппета.

Настройки завершений ввода

Завершения

Автозавершение фрагментов кода
Вставлять сниппеты. Набор предварительно определенных слов после табуляции будет приводить к замене этих слов текстовым фрагментом — сниппетом. См. Пользовательские фрагменты (сниппеты).
Автозавершение тегов XML
При вводе тега XML автоматически добавлять закрывающий тег.
Автоматическое продолжение многострочных коментариев

Автоматически продолжать многострочный комментарий в С - подобных языках при вставке новой строки внутри комментария. Если выбрана эта опция, Geany будет вставлять в каждую новую строку внутри комментария звездочку. Например, при нажатии Enter в конце строки кода

/*
 * Это многострочный коментарий, нажмите клавишу <Return>

Geany начнет новую строку так:

*

и с тем же отступом что у предыдущей строки. И будет это делать до тех пор, пока в очередной строке не окажется код закрытия комментария */.

Автозавершение имен
Автозавершение имен (например, функций) — по первым введенным символам будут предлагаться подходящие варианты.
Автозавершение всех слов в документе
Автозавершение не только для имен, но и любых слов в документе.
Отбрасывать окончания слов при завершении
После завершения ввода выбором одного из предложенных вариантов удалять все символы правее курсора.
Количество символов, необходимых для автозавершения
Число первых символов, после набора которых будут предлагаться варианты завершения слова.
Количество строк в списке завершения
Число строк, при котором будет выводиться окно автозавершения.
Максимальное количество предложений для имени тега
Максимальное число предлагаемых вариантов в списке автозавершения.

Автоматическое закрытие скобок и кавычек

Geany может при вводе открывающей скобки или кавычки автоматически вставлять закрывающую. Например, если вы ввели (, рядом автоматически появится скобка ). Следующие опции определяют, с какими символами будет работать эта функция.

Скобки ( )
Автозакрытие круглых скобок.
Фигурные скобки { }
Автозакрытие фигурных скобок.
Угловые скобки [ ]
Автозакрытие квадратных скобок.
Одинарные ковычки ' '
Автозакрытие одинарных кавычек.
Двойные кавычки " "
Автозакрытие двойных кавычек.

Настройка визуализации

С помощью этого диалога настраивается отображение текста и различных элементов в окне редактора.

Рабочее окно

Обратить цвета подсветки синтаксиса
При выделении инвертировать цвета (например, показывать белый цвет на черном фоне).
Показывать интикаторы отступа
Линии отступов. Показать вертикальные линии по размеру отступов, что поможет аккуратному вводу вручную следующих отступов.
Показывать пробелы
Показать пробелы. Знаки табуляции будут показаны стрелочками "->" пробелы точками.
Показывать окончания строк
Показать концы строк (символы CR - Carriage Return, «возврат каретки», или LF - Line Feed).
Показывать номера строк
Показывать на полях номера строк.
Отступ для маркера строк
Показать правее номеров поле для пометки строк.
Остановить прокрутку на последней строке
Останавливать прокрутку на последней строке документа.

Маркер длинных строк

Отмечать длинные строки. Длинные строки получат специальную отметку, что подскажет, что их не помешало бы разбить.

Тип
Строка
Тонкая вертикальная линия в заданной позиции по длине строки.
Фон
Изменение цвета фона после заданной длины строки (рекомендуем эту опцию для пропорциональных шрифтов).
Отключено
Отключить маркировку длинных строк.
Столбец
Положение отметки. Введите число, указывающее ограничение длины строки в знакоместах (позицию).
Цвет
Цвет для отметки длинных строк.

Виртуальные пробелы

Виртуальные пробелы. Так здесь называется пустое пространство на экране после конца строки. Можно разрешить перемещать в эту область курсор, но ни пробелы, ни какие-либо другие символы туда при этом не вводятся до тех пор, пока с клавиатуры или командой вставки не будет введен реальный текст.

Отключено
Не показывать виртуальные пробелы (т.е. не пускать курсор дальше конца строки).
Только для выделения столбцом
Разрешать перемещение курсора за конец строки только в пределах прямоугольного выделения.
Всегда
Всегда разрешать перемещение курсора за конец строки.

Настройки работы с файлами

Новые файлы

Открывать новые документы из командной строки
Создавать новые документы при указании имен еще не существующих файлов в командной строке запуска Geany.
Кодировка по умолчанию (для новых файлов)
Кодировка, применяемая по умолчанию для новых файлов.
Использовать одну и ту же кодировку для открытия файлов формата отличного от Unicode
Считать все открываемые файлы с кодировкой отличной от Юникода имеющими одну кодировку, указанную ниже.
Кодировка по умолчанию (файлы с кодировкой отличной от Unicode)
Кодировка по умолчанию для файлов с кодировкой отличной от Юникода. Вместо применения автоопределения кодировки файлы будут показаны с применением выбранной кодировки. Используйте эту опцию, когда Geany не может определить кодировку файла.

Сохранение файлов

Опции этого раздела задают дополнительные операции, которые могут выполняться при сохранении документа. Все они могут быть отменены с помощью команды Undo.

Следить за наличием новой строки в конце файла
Если в конце документа нет пустой строки, она будет добавлена.
Убирать лишние пробелы и табуляции
Удалить из строк хвостовые пробелы.
Заменить табуляции пробелами

Заменить знаки табуляции соответствующим числом пробелов.

Заметим, что

лучше уж сразу использовать для создания отступов пробелы. См. раздел Отступы.

Разное

Длина списка недавних файлов
Сколько файлов, с которыми вы работали раньше, показывать в списке Recent files.
Период проверки диска:

Интервал в секундах для проверки состояния файла документа на диске (не был ли он изменен помимо Geany). Установка значения 0 отключает такую проверку.

Заметим, что

Такая проверка проводится только для локальных файлов. Удаленные файлы не проверяются из-за возможных проблем с производительностью (файлы в ~/.gvfs/ считаются удаленными ).

Настройки утилит

Пути утилит - пути к исполняемым файлам программ:

Терминал
терминала,
Браузер
браузера (интернет-проводника),
Утилита grep
grep.

Заметим, что

пользователям Windows рекомендуется использовать grep.exe из проекта UnxUtils (http://sourceforge.net/projects/unxutils). grep.exe проекта Mingw в настоящее время может не работать с Geany.

Команды

Контекстное действие
Контекстное действие. Здесь можно записать команду, параметром которой послужит текущее слово, представляемое в командной строке как "%s" .

Настройки шаблонов

В поля этой формы можно внести различные сведения, которые затем могут использоваться как мета-данные для вставки в документы (например, в заголовок файла).

Заметим, что

После внесения изменений необходимо выполнить команду Инструменты->Обновить настройки или рестартовать Geany.

./images/pref_dialog_templ.png

Данные для шаблонов

Разработчик
Разработчик.
Инициалы
Его инициалы.
Электронная почта

Адрес e-mail.

Заметим, что

Можно ввести в публикуемый адрес искажения, затрудняющие работу собирающих адреса спаммерских ботов, например name<at>site<dot>ext.

Компания
Компания.
Начальная версия
Начальная версия файла.
Дата; Дата и время
Форматы записи года, даты, даты и времени суток. Здесь можно использовать форматы, применяемых для функции ANSI C strftime. Подробнее см. в

Настройки сочетаний клавиш

Некоторые перечисленные в форме операции по умолчанию не связаны ни с сочетаниями клавиш, ни с командами меню.

Заметим, что

Более подробная информация представлена в разделе Сочетания клавиш.

Настройки печати

Использовать внешнюю команду для печати
Использовать системную команду печати.
Использовать собственный механизм печати GTK
Использовать печать средствами GTK.
Показывать номера строк
Печатать слева номера строк.
Печатать номера страниц
Печатать в правом нижнем углу номер страницы.
Печатать заголовки страниц
Печатать верхние колонтитулы.
Использовать только имя текущего файла
Использовать имя файла без указания полного пути.
Формат даты
Формат печати дат. Можно использовать форматы функции ANSI C strftime(). См. в http://man.cx/strftime.

Настройки терминала (VTE)

См. также: Виртуальный эмулятор терминала (VTE).

Виртуальный терминал

Шрифт
Шрифт для окна терминала.
Цвет текста
Укажите цвет текста.
Цвет фона
Выбор цвета фона.
Прокручиваемые строки
Число строк в буфере прокрутки истории терминала.
Оболочка
Каталог, в котором находится системная оболочка.
Прокрутка по нажатию клавиши
Переход на новую строку при вводе.
Прокрутка по мере ввода
Прокрутка выдачи в окне вниз.
Мигающий курсор
Мигание курсора в окне терминала.
Переопределять сочетания клавиш Geany
Перехват терминалом клавишных команд (кроме команд установки фокуса).
Отключить горячую клавишу для меню (по умолчанию F10)
Отключить клавишу F10 входа в меню при работе с терминалом.
Следовать пути текущего файла
Изменять путь терминала в соответствии с путем к текущему файлу.
Выполнять программы в VTE
Исполнять в виртуальном терминале программы. Учтите, что при запуске нескольких программ их выдача в окне VTE может оказаться перемешана.
Не использовать скрипт для запуска
Не использовать скрипт отображения статуса выхода исполняемой программы. Это может быть полезно, если вы уже запустили в VTE программу подобную консоли Python. Используйте с осторожностью.

Работа с проектами

Функции работы с проектом являются в Geany вспомогательными. В настоящее время поддерживаются:

Список файлов проекта используется, когда включена опция "Использовать файлы сессий для проектов" в группе "Проект" диалога настройки предпочтений.

Пока открыт определенный проект, меню "Сборка" будет содержать пункты, определенные в настройках проекта. См. также раздел конфигурирование меню сборки.

Настройки текущего проекта сохраняются при его закрытии или при выходе из Geany. При следующем запуске будет открыт файл проекта, с которым велась работа в конце предыдущей сессии.

Рассмотрим команды меню проектов.

Новый проект

Для создания нового проекта введите его имя в поле "Имя". По умолчанию новый файл проекта создается так: ~/projects/name.geany. Обычно лучше сохранять все файлы своих проектов в одном каталоге, независимо от каталогов с файлами исходных текстов.

В поле "Путь к каталогу" text записан путь к каталогу ~/projects/name. Вы можете изменить его на любой другой, не меняя файлы в каталоге.

Свойства проекта

Можно определить для проекту дополнительное описание (в настоящее время Geany это описание никак не использует).

В поле "Путь к каталогу" записывается каталог, в котором исполняются команды меню "Сборка". Здесь можно вводить как абсолютный путь, так и относительный начиная с каталога с файлом проекта.

Задание пути к проекту

Кнопка "Указать путь к каталогу проекта" заносит в поля рабочих каталогов для команд сборки путь к каталогу проекта %p.

Заметим, что

нажатие кнопки 'установить' переустановит все рабочие каталоги, ранее заданные для проекта.

Открыть проект

Команда открытия проекта вызывает в каталоге ~/projects стандартный диалог выбора файлов. Имена файлов проектов имеют расширение .geany.

При включенной поддержке работы с проектами Geany закроет все ранее открытые файлы и откроет файлы, ассоциированные с проектом.

Закрыть проект

При закрытии проекта Geany закроет проектные файлы и откроет те, которые были закрыты при переходе к работе с проектом.

Меню сборки "Сборка"

После редактирования исходных текстов наступает время компиляции, линковки, сборки, интерпретации, запуска и т.п. Geany поддерживает работу со многими языками программирования, для каждого из которых существует свой порядок этих операций. Как и многие другие среды разработки, не привязанные к определенному языку, Geany не имеет встроенной системы сборки кода и позволяет использовать любую внешнюю систему. Для этого меню "Сборка" предоставляет гибкие возможности настройки запуска компиляторов и других необходимых приложений.

В этом разделе мы рассмотрим применяемую по умолчанию конфигурацию меню "Сборка" и ее настройку.

Запуск компиляции и пр. с помощью команд из Geany имеет два преимущества:

Предупреждения и ошибки будут показаны в окне красным цветом. Щелкнув по сообщению, вы переключитесь на файл с исходным текстом (при необходимости он будет открыт), прямо на строку кода, обработка которой вызвала ошибку или предупреждение. Такие строки будут отмечены в исходном тексте (см. ниже Индикаторы).

Совет

Если Geany не обрабатывает должным образом сообщения об ошибках, выдаваемые вашим компилятором, вы можете настроить разбор сообщений самостоятельно с помощью диалога команд сборки, см. Конфигурация меню "Сборка"

.

Индикаторы

Строки исходного текста, которые привели к выдаче сообщений об ошибках, будут подчеркнуты красной волнистой чертой. Если вы захотите убрать это подчеркивание, это можно сделать командой "Remove all indicators" в меню документов.

Можно убрать индикацию и в настройке предпочтений.

Команды меню "Сборка"

В зависимости от типа текущего файла, по умолчанию меню "Сборка" будет содержать следующие команды:

  • Скомпилировать
  • Сделать
  • Сделать все
  • Сделать заданную цель
  • Сделать объект
  • Следующая ошибка
  • Предыдущая ошибка
  • Выполнить
  • Установить команды сборки

Компиляция

Для файлов разного типа эта команда используется по разному.

Для компилируемых языков, таких как C and C++, запускается компилятор для преобразования исходного текста в двоичный код. Из отдельных исходных файлов будут получены файлы объектов кода в двоичном виде.

Интерпретируемые языки, например Perl, Python, Ruby компилируются в байтовый код, если язык его поддерживает, или производится только проверка синтаксиса. Если средств проверки не имеется, файл запускается на исполнение в интерпретаторе языка.

Сборка

Для компилируемых языков команда выполняет сборку (link) двоичных объектов, полученных из файлов исходных текстов, в исполняемый файл. Если нужный объектный файл отсутствует, сразу же будет выполнена компиляция, т.е. обе стадии получения исполняемой программы пройдут за один шаг.

Для интерпретируемых языков команда "Сборка" не используется.

Сделать

Команда запускает утилиту "make" в каталоге с текущим файлом.

Сделать заданный объект

Запрашивается параметр для утилиты 'Make', указывающий имя объекта для построения. Например, после ввода 'clean' будет выполнена команда "make clean".

Сделать объект

Будет выполнена команда "make current_file.o", в том же каталоге где находится текущий файл. Команда полезна для обработки одного лишь текущего файла, а не всего проекта сразу.

Следующая ошибка

Переход к следующей обнаруженной ошибке.

Предыдущая ошибка

Переход к предыдущей обнаруженной ошибке.

Выполнить

Команда запускает на исполнение собранный файл программы, или скрипт с оболочкой, или интерпретируемый скрипт в окне терминала. Путь к терминальной программе должен быть правильно задан в настройках на странице "Инструменты". Можно использовать любую терминальную программу, работающую в Bourne - совместимой оболочке и принимающую аргумент "-e" командной строки. Можно применять и встроенный виртуальный терминал VTE , см. Эмулятор виртуального терминала (VTE).

После завершения работы программы нажмите Enter/Return (появится соответствующий запрос) и вы сможете просмотреть текстовую выдачу исполнявшейся программы перед закрытием окна терминала.

Сообщения, выдаваемые исполняемыми программами, Geany не анализирует.

Остановить запущенные процессы

После запуска программы вместо команды "Выполнить" и кнопки запуска "Запустить" на панели инструментов появляются команда и кнопка остановки программы. Для остановки процессу (и его дочернему процессу) посылается сигнал SIGQUIT.

Некоторые запущенные процессы остановить таким способом не удастся, например, при образовании нескольких дочерних процессов.

Эмуляторы терминала

Правильно работает терминал Xterm. Если вы используете "Terminal" (программа Xfce), в командную строку запуска на странице Настройки->Инструменты необходимо добавить опцию -disable-server иначе остановить работу программы не удастся.

Настройка команд сборки

По умолчанию команды "Скомпилировать" и "Сборка" вызывают компилятор GCC и линковщик лишь с основными необходимыми аргументами. С помощью диалога "Установить команды сборки" можно добавить любые необходимые флаги, аргументы, параметры, имена и пути библиотек для линковки.

Подробности см. ниже в разделе Конфигурация меню "Сборка".

Заметим, что

если для системы сборки требуются сложные настройки или необходимо использовать разные наборы настроек, рекомендуем подготовить файлы скриптов для Make и использовать команду Make. Это будет проще и для вас и для пользователей, самостоятельно компилирующих вашу программу.

Сделанные настройки автоматически сохраняются при выходе из Geany.

Конфигурация меню "Сборка"

меню "Сборка" позволяет настраивать не только входящие в него команды и названия пунктов, но и каталоги, в которых они должны исполняться.

Например, если вы поменяли одну из команд по умолчанию на работу с 'waf', можно соответственно изменить и название команды в меню.

Подчеркивание в названии команды показывает символ для запоминания вызова с клавиатуры.

меню "Сборка" делится на четыре группы пунктов, имеющих различные свойства.

  • Файловые команды. Зависят от типа файла текущего документа. Помещают выдачу выполняемой программы в окно компилятора и анализируют на наличие ошибок.
  • Команды, не связанные с типом файла. Не зависят от типа файла текущего документа; также помещают выдачу в окно и анализируют на ошибки..
  • Команды исполнения. Запускают собранные или другие внешние программы, возможно работающие длительное время. Выдача программ без анализа пересылается в окно терминала, указанного в настройках предпочтений.
  • Постоянные (не конфигурируемые) команды. Выполняют действия Geany: навигацию по ошибкам, вывод окна диалога для записи команд.

Максимальное число команд в каждой из настраиваемых групп определяется при запуске Geany. Для этого служат скрытые настройки, (см. Настройки формата файлов). Независимо от этого числа фактически в меню будут показаны только те команды, которые были настроены.

Конфигурация команд меню может определяться четырьмя способами:

  • из проектного файла, если он был открыт;
  • из настроек предпочтений пользователя;
  • исходя из типа файла;
  • по умолчанию.
Способы перечислены в порядке уменьшения их приоритета. Подробнее варианты загрузки команд разных групп меню показаны в следующей таблице.

Группа команд Файл проекта Настройки По типу файла По умолчанию
По типу файла

Загрузка из файла проекта и сохранение в него.

Загрузка из файла filetype.xxx в каталоге ~/.config/geany/filedefs. Сохранение в этот же файл, при его отсутствии файл создается.

Загрузка из файла filetype.xxx в каталоге установки Geany. Сохранение - по предпочтению пользователя.

Нет.
Без различия типа

Загрузка из файла проекта и сохранение в него.

Загрузка из файла geany.conf в ~/.config/geany. Сохранение в этот же файл, при его отсутствии файл создается.

Загрузка из файла filetype.xxx в каталоге установки Geany. Сохранение - по предпочтению пользователя.

1. _Make
Команда: make

2. Make Custom _Target
Команда: make

3. Make _Object
Команда: make %e.o

Команды исполнения

Загрузка из файла проекта или другого файла, указанного в нем. Сохранение в файл проекта.

Загрузка из файла geany.conf в ~/.config/geany или файла filetype.xxx в ~/.config/geany/filedefs. Сохранение в файл filetype.xxx file в ~/.config/geany/filedefs.

Загрузка из файла filetype.xxx в каталоге установки Geany. Сохранение - по предпочтению пользователя.

1. _Execute
Команда: ./%e

Дополнительные замечания

  • Для имени файла filetype.xxx расширение xxx берется как у текущего документа.
  • Названия команд (пункты меню) могут переводиться на разные языки.
  • Настройки для файлов определенного типа в предпочтениях и файле проекта отличаются тем, что в проекте указываются только пункты меню, а предпочтения позволяют сохранить различные настройки.
  • Кажется странным, что и не зависящие от типа файла команды сохраняются в файле filetype file, но это сделано для совместимости сохранения также и зависящих от типа файла команд.
  • Настройка команд исполнения для файла проекта и независимых от типа файла предпочтений может быть сделана только редактированием соответствующего файла вручную, см. Формат файла настройки предпочтений и Формат файла проекта.

Диалог ввода команд меню "Сборка"

Настройка меню "Сборка" происходит в основном с помощью формы "Установить команды сборки". Эта форма вызывается при настройке предпочтений и настройке проекта.

В форме выделены три секции:

  • команды, зависящие от типа файла открытого документа,
  • команды, не зависящие от типа файла,
  • Команды запуска программ.

У каждой секции имеется три столбца полей: для названия пункта меню, записи соответствующей команды и рабочего каталога для ее вызова. Если название пункта не задано, в меню эта команда не появится; при пустом поле каталога команда выполняется в том каталоге, в котором находится текущий документ.

Первая и вторая секции содержат также поля для ввода регулярных выражений, используемых для поиска сообщений об ошибках.

В диалоге всегда показаны команды, выбранные в соответствии с их приоритетом. Если команда определена в проекте (имеет высший приоритет), она будет показана серым цветом и недоступна для правки в форме. (Понятно, что это относится к работе с настройкой предпочтений — при настройке проекта все команды доступны для правки).

При очистке полей кнопкой-«метлой» в форме будут показаны команды следующего, более низкого уровня приоритета. Если потребуется их скрыть, удалите название команды (пункта меню), но в поле самой команды должен оставаться хотя бы один символ.

Подстановки в командах и путях

При записи используются следующие параметры, заменяемые как описано ниже:

  • %d - абсолютный путь к каталогу текущего файла,
  • %e - имя текущего файла без пути и расширения,
  • %f - имя текущего файла без пути,
  • %p - если открыт проект, его базовый путь.

Заметим, что

Если заданный в настройках проекта базовый путь не абсолютный, он рассматривается относительно каталога с файлом проекта. Таким образом, если сохранять файлы проектов в узлах дерева каталогов с исходными файлами, где хранятся файлы проектов, спецификация всех путей будет привязана к структуре каталогов. Часть структуры с данными конкретного проекта может при этом переноситься на новое место или подвергаться операциям захвата и освобождения системой контроля версий без необходимости переконфигурировать пути в меню "Сборка".

Клавишные команды в меню "Сборка"

Клавишные команды («горячие клавиши») можно определить для первых двух пунктов секции команд компиляции по типам файлов, первых трех пунктов команд, не зависящих от типа файла, и первых двух пунктов секций запуска и постоянных команд. В форме настройки (см. Настройка клавишных команд) соответствующие пункты имеют названия, показанные в разделе меню "Сборка" выше.

На нынешний момент нет возможности задать клавишные команды для других элементов меню.

Файлы конфигурации

Настраиваемое меню "Сборка" появилось в Geany версии 0.19, что потребовало добавления новой секции в конфигурационные файлы (см. Формат файлов конфигурации). При открытии файлов проекта старого формата Geany будет пытаться картировать их секции так, как требуется в новом формате, но иногда это не удается. Проверьте и при необходимости исправьте настройки меню "Сборка".

Печать

Начиная с версии 0.13 Geany поддерживает печать с использованием API GTK. Отпечатанные страницы будут выглядеть примерно так же, как на экране. Имеется и ряд дополнительных опций.

Дополнительно к тексту документа можно печатать номера строк, страниц и верхний колонтитул, включающий имя файла, номер страницы, дату и время распечатки. Имя файла по умолчанию выводится с полным путем доступа; изменить формат вывода можно в настройках предпочтений. Для даты и времени можно использовать варианты, предусмотренные для функции ANSI C strftime.

Настроить формат можно и в диалоге печати непосредственно перед ее началом. Для демонстрации превью в Unix-подобных системах GTK использует по умолчанию программу для просмотра файлов PDF evince. Если эта программа не установлена или желательно использовать другую, укажите такую программу в файле .gtkrc-2.0 (обычно находится в домашнем каталоге). Для этого просто добавьте в конец файла строку, например:

gtk-print-preview-command = "epdfview %f"

Для превью печати можно использовать xpdf, kpdf и пр.

К сожалению, поддержка печати с помощью GTK доступна только при сборке Geany с GTK версий 2.10 и старше и работает с этими же версиями GTK. В противном случае Geany предоставляет только базовую поддержку печати. Это означает, что файл можно распечатать системной командой. Напечатанный документ не будет содержать каких-либо синтаксических выделений. Команда печати записывается в настройках, по умолчанию применяется

% lpr %f

Параметр %f заменяется на имя текущего файла. Geany не покажет сообщения об ошибках, поэтому если потребуется проверить и уточнить команду печати, воспользуйтесь командной строкой.

Пример часто используемых настроек:

% a2ps -1 -medium=A4 -o - %f | xfprint4

Требуются утилиты a2ps и xfprint4, вместо последней можно также использовать gtklp и др.

Модули

Чтобы при старте Geany были загружены модули, предварительно в общих настройках должна быть включена опция "Включить поддержку модулей". Учтите, что при запуске из командной строки имеется опция -p, отключающая загрузку модулей. Модули для загрузки Geany ищет в каталогах

Большинство модулей добавляют те или иные функции в меню "Инструменты".

Начиная с версии 0.13 в Geany имеется менеджер модулей, который позволяет не только выбрать модули для загрузки при следующем запуске, но и загружать и выгружать их в текущем сеансе работы. По умолчанию модули не загружаются (пока нет выбранных). С помощью менеджера можно также настроить опции модулей, если они предусмотрены.

См. также Документация по модулям включенным в Geany.

Клавишные команды

Geany поддерживает клавишные команды (клавиатурные сокращения, горячие клавиши) редактора Scintilla. Список этих команд см. в разделе Клавишные команды Scintilla. Применяемые в Scintilla команды можно переопределить.

Команды переключения документов

Приведенные ниже команды не конфигурируются, но могут быть переопределены.

Клавиши Действие
Alt-[1-9] Перейти к окнам открытых документов, номера закладок слева направо.
Alt-0 Перейти к документу под крайней справа закладкой.
Ctrl-Shift-PgUp Перейти к документу под крайней слева закладкой.
Ctrl-Shift-PgDn Перейти к документу под крайней справа закладкой.

Конфигурируемые сочетания клавиш

Для перечисленных ниже действий вы можете определить свои собственные сочетания клавиш. Для этого откройте диалог настройки предпочтений, выберите действие и щелкните команду "изменить". Нажав свою комбинацию клавиш и затем ОК, вы зафиксируете изменение. Для каждого действия можно ввести только одну клавишную команду, а одной команде можно приписать только одно действие.

Некоторые из команд, применяемые по умолчанию, являются общепринятыми. Например, Ctrl-N для создания нового файла и Ctrl-O для открытия файлов. Не стоит изменять эти команды, но для таких действий вы можете добавить и другие комбинации клавиш. Например, наряду с Ctrl-O можно использовать для вызова диалога открытия файлов и Alt-O.

Все команды, показанные в следующих таблицах, можно перенастроить. В случаях, когда по умолчанию сочетание клавиш не определено, соответствующая ячейка оставлена пустой. Общепринятые и используемые во многих приложениях помечены значком (C) .

Команды для работы с файлами

Действие Клавиши Описание
Создать Ctrl-N (C) Создать новый файл.
Открыть Ctrl-O (C) Открыть файл.
Открыть выбранный файл Ctrl-Shift-O Открыть файл с выбранным именем.
Открыть последнюю закрытую вкладку   Снова открыть закладку документа, закрытую последней.
Сохранить Ctrl-S (C) Сохранить файл.
Сохранить как   Сохранить файл под новым именем.
Сохранить все Ctrl-Shift-S Сохранить все открытые файлы.
Закрыть все Ctrl-Shift-W Закрыть все открытые файлы.
Закрыть Ctrl-W (C) Закрыть файл.
Обновить Ctrl-R (C) Перезагрузить файл. Все несохраненные изменения в ходе его правки будут потеряны.
Печать Ctrl-P (C) Напечатать файл.

Команды редактора

Действие Клавиши Описание
Отменить Ctrl-Z (C) Отменить последнее действие.
Вернуть Ctrl-Y Повторить последнее действие.
Удалить строку(и) Ctrl-K Удалить текущую строку или, при наличии выделения, несколько строк.
Удалить до конца строки Ctrl-Shift-Delete Удалить текст от позиции курсора до конца строки.
Дублировать строку(и) Ctrl-D Сдублировать текущую строку или, при наличии выделения, несколько строк.
Переставить строку Ctrl-T Заменить текущую строку на копию предыдущей.
Прокрутить до текущей строки Ctrl-Shift-L Прокрутить текст так, чтобы текущая строка оказалась посередине окна. Положение курсора и/или имеющееся выделение не меняются.
Прокрутить на строку вверх Alt-Up Прокрутка на строку вверх.
Прокрутить на строку вниз Alt-Down Прокрутка на строку вниз.
Завершить слово Ctrl-Space Закончить слово. Команда открывает список автозавершения. Если был открыт список автозавершения тегов, он заменяется списком обычных слов (даже если автозавершение не было включено).
Показывать подсказки Ctrl-Shift-Space Показать подсказку по текущей функции или методу.
Показывать список макросов Ctrl-Return Показать список доступных в рабочей области макросов и переменных.
Завершить фрагмент кода Tab Завершить (вставить) сниппет.
Подавлять автозавершение фрагментов кода   Отменить вставку сниппета. Если набрана ключевая подстрока сниппета, вместо него будет вставлен пробел или табуляция в зависимости от клавиш завершения. Например, при установке команды завершения с пробелом, установка этой команды на Shift+space вместо завершения сниппета вставит пробел.
Контекстное действие   Исполняет команду, используя как параметр текущее слово (под курсором или ближайшее к нему). См. Контекстные действия.
Перемещать курсор в фрагменте   Переводит курсор на следующую позицию в сниппете, если такие позиции в нем предусмотрены.
Автозавершение фрагментов кода Tab При открытом списке автозавершения завершает текущее выделение до части следующего слова.
Переместить строку(и) вверх   Передвигает текущую строку или выделенные строки на одну строку вверх.
Переместить строку(и) вниз   Передвигает текущую строку или выделенные строки на одну строку вниз.

Команды работы с буфером обмена

Действие Клавиши Описание
Вырезать Ctrl-X (C) Вырезать выделенный фрагмент, поместив его в буфер.
Копировать Ctrl-C (C) Скопировать выделенный фрагмент в буфер.
Вставить Ctrl-V (C) Вставить содержимое буфера в позиции курсора.
Вырезать строку(и) Ctrl-Shift-X Вырезать текущую строку или выделенные строки, поместив в буфер.
Копировать строку(и) Ctrl-Shift-C Скопировать в буфер текущую строку или выделенные строки.

Команды выделения

Действие Клавиши Описание
Выделить все Ctrl-A (C) Выделить весь документ.
Выделить слово Alt-Shift-W Выделить текущее слово (под курсором).
Выделить параграф Alt-Shift-P Выделить текущий абзац (границей абзаца считаются две пустые строки).
Выделить строку(и) Alt-Shift-L Выделить текущую строку (если есть частично выделенные строки, включая их).
Выделить до начала слова   Выделить до предыдущего слова.
Выделить до окончания слова   Выделить до следующего слова.

Команды вставки

Действие Клавиши Описание
Вставить дату Shift-Alt-D Вставить дату.
Вставить переменный пробел   Альтернативный отступ. Если для отступов предусмотрена табуляция, вставить вместо нее соотв. число пробелов; если предусмотрены пробелы - вставить табуляцию.

Команды форматирования

Action Default shortcut Description
Переключить регистр в выделении Ctrl-Alt-U Сменить регистр символов в выделенном фрагменте. Если в нем есть символы и в нижнем и в верхнем регистрах - все переводятся в нижний.
Комментировать   Закомментировать текущую строку или выделение.
Раскомментировать   Раскомментировать текущую строку или выделение.
Переключить комментарий Ctrl-E Включить-выключить комментирование для текущей строки.
Увеличить отступ Ctrl-I Увеличить отступ для текущей строки или выделения.
Уменьшить отступ Ctrl-U Уменьшить отступ для текущей строки или выделения.
Увеличить отступ на один пробел   Увеличить отступ строки или выделения на 1 пробел.
Уменьшить отступ на один пробел   Уменьшить отступ строки или выделения на 1 пробел.
Использовать "умный" отступ   Установить отступ строки или выделения так же, как в предыдущей строке./td>
Передать пользовательской команде 1 (2,3) Ctrl-1 (2,3) Передать выделение выбранной внешней программе (как параметр для одной из трех первых настроенных для этого команд, см. Отправка текста внешним программам для выяснения подробностей).
Отправить выделенное в терминал   Отправить текущую строку или выделение во встроенный терминал (VTE).
Переформатировать строки/блок   Если для текущего документа настроено ограничение длины строк, переформатировать выделенный фрагмент или текущий фрагмент с одинаковым отступом с учетом ограничения.

Команды настроек

Действие Клавиши Описание
Настройки Ctrl-Alt-P Открыть диалог настройки предпочтений.
Настройки модулей   Открыть диалог настройки работы с модулями.

Команды поиска

Действие Клавиши Описание
Найти Ctrl-F (C) Открыть диалог поиска.
Найти следующее Ctrl-G Найти следующее вхождение.
Найти предыдущее Ctrl-Shift-G Найти предыдущее вхождение.
Заменить Ctrl-H (C) Открыть диалог замены.
Найти в файлах Ctrl-Shift-F Открыть диалог поиска в файлах.
Следующее собщение   Перейти к строке, для которой имеется следующее сообщение в окне сообщений.
Предыдущее сообщение   Перейти к строке, для которой имеется предыдущее сообщение в окне сообщений.
Найти использование   Найти все вхождения текущего слова или выделения во всех открытых документах и вывести список результатов в окно сообщений.
Статистика документа   Найти все вхождения текущего слова или выделения в документе и вывести список результатов в окно сообщений.
Пометить все Ctrl-Shift-M Найти все вхождения текущего слова или выделения в документе и выделить их цветным фоном. Если ничего не найдено, убрать цветные выделения..

Команды перехода

Действие Default shortcut Описание
Перейти на шаг вперёд   Перейти к следующей позиции, сохраненной в истории навигации (см. История навигации.
Вернуться на шаг назад   Перейти к предыдущей позиции, сохраненной в истори навигации (см. История навигации.
Перейти на строку Ctrl-L Перейти к форме перехода к строке по номеру.
Перейти к парной скобке Ctrl-B Если курсор находится перед скобкой или за ней — перейти к скобке, образующей с ней пару. Повторное нажатие возвращает к первой скобке.
Переключить маркер Ctrl-M Включение-выключение маркера (закладки) для текущей строки.
Перейти к следующему маркеру Ctrl-. Перейти к следующей закладке.
Перейти к предыдущему маркеру Ctrl-, Перейти к предыдущей закладке.
Перейти определению тега   Перейти к определению тега (текущего слова). Если оно не найдено, например определения находятся в другом файле или команда дана не для имени а для обычного слова, Geany лишь выдаст звуковой сигнал. См. Переход к определению тега.
Перейти к объявлению тега   Перейти к объявлению тега (текущего слова). Если оно не найдено, Geany лишь выдаст звуковой сигнал. См. Переход к объявлению тега.
Перейти к началу строки Home Перейти к первому символу строки после отступа, при повторном нажатии — в начало строки.
Перейти к концу строки End Перейти в конец строки.
К концу текущей строки Alt-End Перейти в конец экранной строки. Когда используется перенос длинных строк по ширине окна, эта команда позволяет перейти в конец текущей строки на экране, а не к символу конца всей строки. Если перенос не применяется, команда аналогична Go to End of Line.
Перейти к началу слова Ctrl-/ Перейти к предыдущей части текущего слова.
Перейти к концу слова Ctrl- Перейти к следующей части текущего слова.

Команды настройки просмотра

Действие Клавиши Описание
На весь экран F11 (C) Полноэкранный просмотр.
Показать/скрыть окно сообщений   Включение - выключение показа окна сообщений.
Показать/скрыть боковую панель   Включение - выключение боковой панели.
Показать/скрыть все дополнительные виджеты   Включение - выключение всех добавочных виджетов (элементов управления: закладок, панелей, окна сообщений, строки статуса).
Увеличить Ctrl-+ (C) Укрупнить изображение текста.
Уменьшить Ctrl- (C) Сделать изображение текста меньше.
Обычный размер Ctrl-0 Восстановить предыдущее увеличение (масштаб).

Команды управления фокусом

Действие Клавиши Описание
Перейти к редактору F2 Перейти в окно редактора. При этом с короткой задержкой будет обновлена строка со статистикой документа.
Перейти к заметкам F6 Перейти к окну для заметок.
Переключиться в терминал F4 Перейти в окно терминала.
Перейти к поиску F7 Перейти к форме поиска на панели инструментов (если она видна).
Перейти к боковой панели   Перейти к боковой панели.
Переключиться на компилятор   Перейти к сообщениям компилятора.
Перейти к сообщениям   Перейти к окну сообщений.
Показывать окно сообщений   Показать вкладку окна сообщений.
Перейти к списку документов   Перейти к списку документов на боковой панели, если он виден.
Перейти к списку тегов   Перейти к списку имен на боковой панели, если он виден.

Команды работы с окнами документов и их закладками

Действие Клавиши Описание
Перейти на документ слева Ctrl-PageUp (C) Перейти к документу в окне слева.
Перейти на документ справа Ctrl-PageDown (C) Перейти к документу в окне справа.
Перейти на последний документ Ctrl-Tab Переход по часто используемым документам. Перейти к предыдущему документу, с которым работали до текущего (если он еще открыт). Если нажать и удерживать Ctrl (или другую назначенную клавишу - модификатор), будет открыт диалог, затем последующие нажатия вызовут переход ко второму, третьему и т.д. предыдущим документам.
Переместить документ влево Alt-PageUp Передвинуть закладку окна текущего документа левее.
Переместить документ вправо Alt-PageDown Передвинуть закладку окна текущего документа правее.
Переместить документ в начало   Передвинуть закладку окна текущего документа на первое место.
Переместить документ в конец   Передвинуть закладку окна текущего документа на последнее место.

Команды для работы с документом

Действие Клавиши Описание
Заменить табуляции пробелами   Заменить знаки табуляции рядами пробелов.
Заменить пробелы табуляциями   Заменить пробелы знаками табуляции.
Свернуть/развернуть текущий блок   Свернуть - развернуть текущий блок кода.
Свернуть все   Свернуть все блоки кода.
Развернуть все   Развернуть все блоки.
Обновить список тегов Ctrl-Shift-R Перезагрузить список тегов / имен.
Переключить режим переноса строк   Включить - выключить пословный перенос строк по ширине окна.
Переключить перенос строк   Включить - выключить автоматический обрыв строк в заданной позиции.
Удалить маркеры   Удалить все маркеры (закладки), сделанные командой 'Mark All' в диалоге поиска или вручную.
Убрать индикаторы ошибок   Убрать в документе все индикаторы ошибок.

Команды сборки

Действие Клавиши Описание
Скомпилировать F8 Скомпилировать текущий файл.
Сборка F9 Собрать (если требуется скомпилировать и слинковать) файл.
Сделать всё Shift-F9 Собрать текущий файл с помощью утилиту Make.
Сделать указанную цель Ctrl-Shift-F9 Собрать исполняемый файл с заданным именем с помощью Make.
Сделать объект   Скомпилировать текущий файл в объект с помощью Make.
Следующая ошибка   Перейти в исходном тексте к следующей строке, в которой при сборке обнаружена ошибка.
Предыдущая ошибка   Перейти в исходном тексте к предыдущей строке, в которой при сборке была обнаружена ошибка.
Запустить F5 Запустить файл на исполнение в эмуляторе терминала.
Установить команды сборки   Открыть диалог настройки команд сборки.

Команды работы с инструментами

Действие Клавиши Описание
Показать выбор цвета   Выбрать цвет.

Команды справочной системы

Действие Клавиши Описание
Справка F1 (C) Открыть руководство.

Конфигурационные файлы

ВНИМАНИЕ

Для работы с файлами конфигурации необходимо использовать кодировку UTF-8 без BOM.

Команды меню "Инструменты"

В меню Инструменты имеется подменю Файлы настроек, предоставляющее доступ ко всем конфигурационным файлам, с которыми может работать пользователь. Щелчок по выбранному файлу загрузит его в редактор; когда вы сохраните файл по завершении правки, Geany перезагрузит его и внесенные изменения вступят в силу.

Заметим, что

другие конфигурационные файлы, не указанные в этом меню, необходимо открывать вручную. Они не будут перезагружены автоматически после сохранения (см. ниже Обновить настройки).

Команду Обновить настройки следует применять после обновления какого-либо конфигурационного файла или модификации шаблона, для обновления цветов синтаксических выделений

Заметим, что

есть исключение: после правки и сохранения файла filetypes.common цвета подсветки синтаксиса исходных текстов не меняются, так как это потребовало бы заметного времени.

Файл общей конфигурации

В этом файле хранятся общие настройки, не переопределенные в локальных конфигурационных файлах пользователей.

Файл находится в каталоге $prefix/share/geany/geany.conf (где $prefix — путь инсталляции Geany, см. Префикс инсталляции) и загружается при запуске Geany, если отсутствует пользовательский файл конфигурации. В нем могут сохраняться любые настройки, но не обязаны содержаться все применяемые настройки.

Заметим, что

Положение и использование общего конфигурационного файла зависит от решений системного администратора при установке Geany для многопользовательской работы.

Файлы определений типов файлов

В этих файлах хранятся настройки, специфичные для работы с файлами определенных типов. Это цвета разметки синтаксиса, символы для комментирования строк, настройки компилятора и линкера и др.

Собственные типы файлов

При запуске Geany ищет файлы filetypes.*.conf в системном и пользовательском каталогах для типов файлов и добавляет все найденные файлы типов с именами, отвечающими приведенному шаблону.

Собственные типы предоставляют меньше возможностей настройки, чем встроенные. В настоящее время поддерживаются:

  • Распознавание и установка типа файла (после создания пользователем соответствующего файла filetype_extensions.conf).

  • Настройки для типа файла в разделе [settings] (см. Формат файла).
    • Использование анализатора тегов (ключ tag_parser).
    • Использование выделений синтаксиса (ключ lexer_filetype).
  • Команды сборки.

  • Загрузка файлов глобальных имен(пространство имен разделяется с именами полученными анализом тегов).

Системные файлы

Общесистемные файлы конфигурации находятся в каталоге $prefix/share/geany и имеют имена filetypes.$ext, где $prefix — путь инсталляции Geany (см. Префикс инсталляции); $ext — имя типа файла. Для каждого типа файла имеется соответствующий файл. Файл filetypes.common содержит общие настройки, неспецифичные для конкретных типов файлов.

Предупреждение

Не рекомендуется редактировать файлы с общесистемными настройками, поскольку они будут переписаны при обновлении Geany и внесенные изменения окажутся потеряны.

Пользовательские файлы

Для изменения настроек скопируйте файлы из каталога $prefix/share/geany в подкаталог filedefs вашего каталога для конфигураций (обычно ~/.config/geany/).

Например,

% cp /usr/local/share/geany/filetypes.c /home/username/.config/geany/filedefs/

Теперь вы можете редактировать эти файлы, не опасаясь потери изменений после очередного обновления Geany. Другой способ — создать файл ~/.config/geany/filedefs/filetypes.X и вносить в него только те настройки, которые вы изменяете. Отсутствующие части будут считаны из общего файла в $prefix/share/geany.

Наряду с рассмотренными ниже секциями, каждый из файлов определений для типов может содержать секцию [build-menu], которая рассмотрена в разделе Секция [build-menu].

Формат файла

Секция [styling] — стиль

В этой секции определяются цвета подсветки синтаксиса. Формат определения:

  • key=foreground_color;background_color;bold_flag;italic_flag

Цвета кодируются шестнадцатиричными значениями уровней в каналах RGB с добавлением префикса 0x. Например, код чистого красного цвета 0xff0000, синего — 0x0000ff. Регистр здесь не важен, но мы предпочитаем использовать строчные буквы. Bold и italic — флаги установки жирного и курсивного начертаний, они могут принимать значения "true" или "false" (любой другой вариант будет воспринят как "false").

Если какие-либо из полей строки пропущены, для них будут использованы значения из стиля по умолчанию "default",

Например, код key=0xff0000;;true определяет красный шрифт, фон по умолчанию, жирное начертание.

Именованные стили

Второй возможный способ — сослаться на имя стиля, определенного в файле filetypes.common.

  • key=named_style
  • key2=named_style2,bold,italic

Параметры bold и italic опциональны, их действие заключается в реверсировании соответствующих флагов именованного стиля на который сделана ссылка. В отличие от булевых параметров стиля, это строки, вместо точки с запятой разделителем здесь служит запятая.

Например, запись key=comment,italic

определяет стиль с параметрами стиля "comment" но с курсивным шрифтом (если в образце шрифт прямой).

Имена и параметры стилей можно увидеть в секции [named_styles] файла filetypes.common.

Секция [keywords] - ключевые слова

Секция содержит ключевые слова для различных списков, специфичных для типа файла. Некоторые типы файлов не поддерживают ключевые слова, для них добавление в секцию новых ключей работать не будет. Можно изменять только существующие списки, добавляя или удаляя слова.

Важно

Ключевые слова должны быть записаны в одну строку.

Секция [lexer_properties]

Секция специальных настроек для Scintilla, записываемых в формате key.name.field=some.value.

Секция [settings] — настройки

extension

Расширение файла, по умолчанию используемое при сохранении файла (не включая точку). Используемое расширение должно соответствовать одному из ассоциированных с данным типом файлов (см. Расширения файлов).

Пример: extension=cxx

wordchars

Символы, которые могут служить границей слов. Используются при пословном выделении и при поиске.

Пример: (смотрите в системных файлах типов filetypes.* files)

comment_open

Символ(ы), открывающие в коде строки комментариев. Если используются многострочные комментарии, необходимо задать и закрывающие символы.

Пример: comment_open=/*

comment_close

Символ(ы), закрывающие многострочный комментарий.

Пример: comment_close=*/

comment_use_indent

Поставьте 'false', если символы начала комментария должны располагаться начиная с самого начала строки, или 'true', если перед ними возможен отступ.

Примеры:

Если comment_use_indent=true, команда комментирования (Ctrl-D) сгенерирует такую строку:

#command_example();

А если comment_use_indent=false, такую::

#   command_example();

Отметим, что эта настройка имеет смысл только для однострочных комментариев, например, начинающихся с '//', '#' или ';'.

Пример: comment_use_indent=true

context_action_cmd

Команда, которая может вызываться для обработки текущего слова или выделения (подставляется на место параметра %s).

Пример использования: открыть документацию по API для функции, на названии которой стоит курсор.

Такая команда может быть задана для конкретных типов файлов, если же она отсутствует, будет использована общая команда. Команды (имена программ) можно указывать без полного пути, так как их поиск осуществляется с учетом переменной окружения $PATH. Для повышения безопасности можно указывать и полные пути.

Совет: для файлов PHP весьма полезна следующая настройка: context_action_cmd=firefox "http://www.php.net/%s"

Пример: context_action_cmd=devhelp -s "%s"

tag_parser
Название языка для менеджера тегов например "C".
lexer_filetype
Имя типа файла для синтаксических выделений в файле другого типа. Имена не должны быть рекурсивными, т.е. имя не должно использоваться самим ключом lexer_filetype.

Секция [build_settings]

В Geany v0.19 эта секция заменена секцией [build-menu]. Настройки из секции [build-menu] имеют преимущество в случае наличия в файле и старой секции.

error_regex

Расширенное регулярное выражение для разбора сообщений выдачи при сборке исполняемого файла (нахождения имен файлов и номеров строк с ошибками).

Geany считывает только два первых полученных результата. Цифровая часть интерпретируется как номер строки, остальное как имя файла.

Пример: error_regex=(.+):([0-9]+):[0-9]+

Пример разбираемого сообщения: test.py:7:24: E202 whitespace before ']'

Команды сборки

При конфигурировании любой команды меню "Сборка" с помощью формы "Сборка" в настройках проекта результаты работы сохраняются в секции [build-menu], заменяя предыдущие настройки.

compiler

Команда запуска компилятора. Однако, ее можно использовать и для интерпретируемых языков, таких как Perl или Python. Для этих языков опцию можно применить для проверки синтаксиса, выдача которой будет направлена в окно сообщений компилятора.

Для работы с именами файлов, содержащими пробелы, такие имена следует заключать в кавычки. Доступны следующие шаблоны имен файлов:

  • %f - полное имя файла без пути доступа;
  • %e - собственно имя файла, без пути и без расширения.

Пример: compiler=gcc -Wall -c "%f"

linker

Команда сборки файла. Если файл еще не скомпилирован, это будет сделано предварительно. Geany автоматически добавляет опцию -o. Команды хорошо работают с GNU gcc, но с другими компиляторами и линкерами возможны проблемы.

Пример: linker=gcc -Wall "%f"

run_cmd

Команда запуска готового исполняемого файла. Параметр %e означает только имя этого файла без расширения; для подстановки полного имени используйте параметр %f (например, для скриптов оболочки).

Пример: run_cmd="./%e"

Файл filetypes.common

В файле filetypes.common хранятся общие настройки, не зависящие от конкретного типа файлов.

Секция [named_styles]

Объявленные в этой секции именованные стили могут использоваться для ссылок в секциях [styling] остальных файлах описания типов filetypes.* file.

Пример.

В файле filetypes.common:

[named_styles]
foo=0xc00000;0xffffff;false;true
bar=foo

В файле filetypes.c:

[styling]
comment=foo

Эта ссылка заменяет копирование и перенос описания стиля в другие файлы.

Заметим, что

Для именованных стилей можно определить алиасы (дублирующие имена), что собственно и показано выше на примере: bar. Алиас должен объявляться после основного стиля.

Секция [styling]

default

Стиль по умолчанию, используется для файлов типов, не связанных с исходными текстами.

Пример: default=0x000000;0xffffff;false;false

selection

Стиль для показа выделений. Формат:

  • Foreground color - цвет шрифта.
  • Background color - цвет фона.
  • Use foreground color - применить цвет шрифта.
  • Use background color - применить цвет фона.

Цвета будут использованы только при установке для 3-го и 4-го аргументов значения 'true'. По умолчанию цвет фона темно-серый, цвет шрифта зависит от синтаксического выделения.

Пример: selection=0xc0c0c0;0x00007F;true;true

brace_good

Стиль для подсвечивания парных скобок.

Пример: brace_good=0xff0000;0xFFFFFF;true;false

brace_bad

Стиль для подсвечивания скобок, для которых не найдены парные.

Пример: brace_bad=0x0000ff;0xFFFFFF;true;false

caret

Стиль курсора. Интерпретируются только первый и третий аргументы. Установка третьего аргумента изменит вид курсора на «block».

Пример: caret=0x000000;0x0;false;false

caret_width

Ширина курсора в пикселах, максимум — 3. Интерпретируется только первый аргумент. Значение 0 сделает курсор невидимым.

Пример: caret=1;0;false;false

current_line

Окраска фона текущей строки. Интерпретируются только второй (цвет фона) и третий (true/false - вкл./выкл фон) аргументы.

Пример: current_line=0x0;0xe5e5e5;true;false

indent_guide

Окраска линий размера отступов. Интерпретируются только первый и второй аргументы.

Пример: indent_guide=0xc0c0c0;0xffffff;false;false

white_space

Окраска пробельного пространства (табуляций и пробелов). Третий аргумент определяет, использовать ли заданный здесь цвет переднего плана или цвет, заданный для определенного типа файла в соотв. файле настроек.

Пример: white_space=0xc0c0c0;0xffffff;true;true

folding_style

Значки сворачивания блоков текста. Интерпретируются только первый и второй аргументы.

Возможные значения первого аргумента, определяющие тип значков:

  • 1 - квадраты
  • 2 - кружки
  • 3 - стрелки
  • 4 - знаки +/-

Возможные значения второго аргумента:

  • 0 - линий нет
  • 1 - for straight lines
  • 2 - for curved lines

По умолчанию: folding_style=1;1;

Стрелки: folding_style=3;0;

folding_horiz_line

Тонкая горизонтальная линия в месте сворачивания текста. Интерпретируется только первый аргумент, его возможные значения:

  • 0 - не отображать линию,
  • 1 - линия выше свернутого текста,
  • 2 - линия ниже свернутого текста.

Пример: folding_horiz_line=0;0;false;false

line_wrap_visuals

Визуальные отметки, показывающие что данная строка переносится по ширине окна. Значения для первого аргумента:

  • 0 - отметок нет,
  • 1 - отметка в конце подстроки (в месте переноса),
  • 2 - отметка в начале каждой из подстрок. Для размещения отметки делается отступ минимум на 1 знакоместо.

Второй аргумент определяет, показывать ли отметку около границы окна или вплотную к тексту. Значения:

  • 0 - около границы окна,
  • 1 - в конце подстроки вплотную к тексту,
  • 2 - в начале подстроки вплотную к тексту.

Остальные аргументы не интерпретируются.

Пример: line_wrap_visuals=3;0;false;false

line_wrap_indent

Первый аргумент - размер отступа для подстрок при переносе строки по ширине окна в количестве пробелов. Используется только если второй аргумент - 0.

Второй аргумент: сделать отступ перенесенных подстрок как у первой подстроки или увеличить. Возможные значения:

  • 0 - отступ определяется первым аргументом,
  • 1 - отступ определяется по первой подстроке,
  • 2 - отступ по сравнению с первой подстрокой увеличивается на следующую ступень шкалы отступов.

Интерпретируется только первый аргумент.

Пример: line_wrap_indent=0;1;false;false

translucency

Уровни непрозрачности для текущей строки (первый аргумент) и выделения (второй аргумент). Допустимы значения от 0 до 256.

Для Windows 95, 98 and ME следует всегда устанавливать 256 для отключения прозрачности, в противном случае Geany может зависнуть.

Интерпретируются только первый и второй аргументы.

Пример: translucency=256;256;false;false

marker_line

Стиль для подсветки строки (например, при использовании команд перехода). Первый аргумент, цвет символов, используется только если включены маркеры (см. меню "Вид").

Интерпретируются только первый и второй аргументы.

Пример: marker_line=0x000000;0xffff00;false;false

marker_search

Маркер пометки результатов поиска (когда в диалоге поиска включена опция "Mark"). Интерпретируется только второй аргумент, задающий цвет фона при отображении прямоугольника.

Пример: marker_search=0x000000;0xb8f4b8;false;false

marker_mark

Отмеченные строки (команда "Переключить маркер", Ctrl-M). Первый аргумент, цвет символов, используется только если включены маркеры (см. меню "Вид").

Интерпретируются только первый и второй аргументы.

Пример: marker_mark=0x000000;0xb8f4b8;false;false

marker_translucency

Уровни непрозрачности для маркера строк (первый аргумент) и маркера поиска (второй аргумент). Допустимы значения от 0 до 256.

Для Windows 95, 98 and ME следует всегда устанавливать 256 для отключения прозрачности, в противном случае Geany может зависнуть.

Интерпретируются только первый и второй аргументы.

Пример: marker_translucency=256;256;false;false

line_height

Межстрочный интервал. Первый аргумент задает верхний отступ, второй - нижний (от базовой линии шрифта).

Интерпретируются только первый и второй аргументы.

Пример: line_height=0;0;false;false

calltips

Подсказки.

Пример: calltips=0xc0c0c0;0xffffff;false;false

Секция [settings]

whitespace_chars

Символы, считающиеся дающими пробельное пространство (а также знаки препинания и спецсимволы, прим.перев.). Эти символы игнорируются при операциях выделения, переноса и удаления по границам слов (см. Клавишные команды Scintilla).

Сюда должны входить пробел (\s) и табуляция (\t).

Пример: whitespace_chars=\s\t!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~

Расширения типов файлов

Изменение расширения, по умолчанию используемого для сохранения файлов определенного типа, рассмотрено в разделе Файлы определений для типов файлов .

Можно переопределить список расширений используемых Geany, который находится в файле filetype_extensions.conf.

Чтобы ваша настройка заменила системную, скопируйте этот файл из $prefix/share/geany в свой каталог конфигураций, обычно это ~/.config/geany/. $prefix - путь к инсталляции Geany, см. Префикс инсталляции).

Пример:

% cp /usr/local/share/geany/filetype_extensions.conf /home/username/.config/geany/

Удалите строки с теми списками расширений, менять которые вы не хотите. Для редактирования списков вносите изменения в строку справа от знака =, записывая возможные для данного типа файла расширения через точку с запятой.

Например, список задания набора расширений для Make /home/username/.config/geany/filetype_extensions.conf должен выглядеть примерно так:

[Extensions]
Make=Makefile*;*.mk;Buildfile;

Формат файла настройки предпочтений

Файл ~/.config/geany/geany.conf содержит все выбранные вами настройки и опции работы Geany. Его не следует редактировать во время работы Geany, поскольку при выходе будут сохранены настройки текущего сеанса работы и файл окажется перезаписан.

Скрытые предпочтения

Имеется ряд редко используемых настроек, не показанных в диалоге Preferences. Они могут быть изменены редактированием файла настроек, после чего следует перезагрузить настройки (Инструменты->Обновить настройки) или рестартовать Geany. Ищите требуемый ключ и меняйте его значение. Пример:

brace_match_ltgt=true

В следующей таблице приведены имена ключей скрытых настроек в файле конфигурации.

Ключ Описание По умолчанию
Редактирование    
brace_match_ltgt Подсветка угловых скобок <, >. false
show_editor_scrollbars Показ линеек прокрутки. true
use_gtk_word_boundaries Искать ли конец слова при выполнении связанных с границами слов команд Scintilla (см. Клавишные команды Scintilla). true
complete_snippets_whilst_editing Разрешать ли завершение сниппета если продолжается правка строки (когда за курсором уже имеется какой-то текст). Параметр используется только если клавишная команда Complete snippet связана с пробелом. false
Интерфейс    
show_symbol_list_expanders Показ маленьких значков сворачивания ветвей дерева списка имен (только в GTK 2.12 и старше). true
allow_always_save Выполнение команды сохранения файла даже при отсутствии его изменений. false
compiler_tab_autoscroll Автоматическая прокрутка сообщений в окне компилятора (до последней строки). true
Эмулятор терминала VTE    
emulation Режим эмуляции терминала. Изменяйте только в случае если VTE termcap файлы отличны от vte/termcap/xterm. xterm
send_selection_unsafe По умолчанию Geany при передаче выделения в терминал отбрасывает любые хвостовые строки, чтобы предотвратить исполнение содержащегося в них кода. Это делается главным образом для безопасности. Если почему-либо вы хотите отказаться от отсечения строк и исполнять всю передачу напрямую, установите true. false
Работа с файлами    
use_safe_file_saving Безопасный режим записи файлов на диск. По умолчанию опция отключена, и файлы записываются напрямую. В случае недостатка места на диске это приведет к потере данных. В безопасном режиме данные сначала сбрасываются во временный файл, который в случае успеха перемещается в конечный файл. Это обеспечивает лучшую защиту от ошибок в случае исчерпания дискового пространства. Однако нарушаются жесткие ссылки на оригинальный файл и его разрешения (например, сбрасываются флаги исполнения). Используйте эту опцию осторожно, она и сама может вызвать серьезные проблемы. Лучше заранее позаботиться о достаточном дисковом пространстве. false
Меню "Сборка"    
number_ft_menu_items Максимальное число команд в секции меню "Сборка" для типов файлов. 2
number_non_ft_menu_items Максимальное число команд в секции меню "Сборка" не связанной с типом файлов. 3
number_exec_menu_items Максимальное число команд в секции запуска на исполнение меню "Сборка". 2

Секция [build-menu]

В секции [build-menu] описывается конфигурация меню "Сборка". Такая секция может входить в файлы конфигурации для типов файлов, предпочтений, проектов; во всех случаях она имеет описанный1 ниже формат. Разные команды меню загружаются из разных файлов, см. таблицу в разделе Конфигурация меню "Сборка". Все настройки могут быть сделаны с помощью окон диалога, за исключением команд исполнения в описаниях типов файлов и определений типов файлов в файле проекта, которые требуют ручного редактирования.

Для каждой команды меню в секции build-menu имеется запись следующего формата:

GG_NN_FF

где

  • GG - группа команд меню:
    • FT для файлов по типу
    • NF для файлов без учета типа
    • EX для исполнения
  • NN - двузначный номер команды в группе, начиная с 00
  • FF - поле,
    • LB для метки (названия пункта меню)
    • CM для команды
    • WD для рабочего каталога

Формат файла проекта

Кроме относящихся к проекту настроек такой файл может содержать список файлов текущего сеанса работы с Geany.

Добавления в секции [build-menu]

Файл проекта может содержать в секции [build-menu] добавочные поля сверх тех, что были рассмотрены выше в разделе Секция [build-menu].

Команды меню связанные с типами файлов, настроенные для проекта, хранятся в файле проекта. Список типов файлов находится в разделе filetypes.

Формат записей для типов файла соответствует приведенному в разделе Секция [build-menu], но ключи имеют префикс из имени типа, как оно приведено в списке filetypes, например запись для команды меню в разделе типов для языка С должна быть следующей:

CFT_00_LB=Label

Шаблоны

Geany поддерживает работу со следующими шаблонами:

Для использования этих шаблонов откройте меню "Правка" или контекстное меню окна редактора, выберите команду "Вставить комментарии" выберите и вставьте необходимый шаблон.

Заголовок файла и запись об изменениях всегда вставляются в начале файла.

Для вставки описания функции курсор должен находиться внутри нее, чтобы автоматически могло быть найдено имя функции. Описание вставляется на одну строку выше функции. Если имя функции найти не удалось, в тексте описания вместо правильного имени появится "unknown".

Заметим, что

Geany автоматически перезагружает шаблоны, обнаружив сохранение файла в каталоге для шаблонов. Перезагружаются шаблоны и по команде Инструменты->Обновить настройки.

Шаблоны с мета-данными

Мета-данные могут использоваться со всеми шаблонами, но по умолчанию применяются только для заголовка файла и записей об изменениях.

В диалоге конфигурации имеется страница "Шаблоны" (см. Настройка шаблонов). Здесь можно определить данные, по умолчанию вставляемые в шаблоны. Чтобы изменения вступили в силу, вызовите команду Инструменты->Обновить настройки или перезагрузите Geany.

Шаблоны файлов

Это шаблоны для создания новых файлов. Чтобы воспользоваться ими, выберите в меню "Файл" команду "Создать из шаблона".

Несколько шаблонов для разных типов файлов устанавливаются по умолчанию. Можно добавить шаблоны, создав соответствующие файлы.

Их содержимое - требуемый текст образца документа, в который могут включаться параметры подстановки, например {fileheader}.

Собственные шаблоны файлов

Шаблоны считываются из следующих каталогов:

Соответствующий тип файла определяется по расширению имени файла шаблона, если оно имеется. Например, созданный файл module.c появится в меню для создания с помощью шаблонов файлов с типом 'C'.

Шаблоны типов файлов

Заметим, что

вместо этих шаблонов рекомендуется использовать собственные шаблоны файлов.

Шаблоны типов файлов считываются из каталога ~/.config/geany/templates и имеют имена, состоящие из слова "filetype." и имени типа, например "filetype.python", "filetype.sh" и т.п. Если вы сомневаетесь по поводу расширения, оно такое же как расширение файла конфигурации типа, обычно находящегося в каталоге /usr/share/geany, с префиксом "filetypes.".

Имеется также файл шаблона filetype.none, используемый при вызове команды "Создать" без указания типа файла. По умолчанию этот шаблон пустой.

Настройка шаблонов

Шаблоны находятся в каталоге ~/.config/geany/templates/. Открыв тот или иной шаблон, вы можете отредактировать его по своему желанию. There are some wildcards which will be automatically replaced by Geany at startup.

Параметры в шаблонах

В шаблонах могут содержатся параметры - ключевые слова, заменяемые при загрузке. Все они помещаются в тексте в фигурные скобки "{" and "}", например {date}.

Параметры для подстановки символов

Параметр Описание Доступность
ob { открывающая фигурная скобка. Шаблоны файлов, заголовки файлов, сниппеты.
cb } закрывающая фигурная скобка. Шаблоны файлов, заголовки файлов, сниппеты.
pc % Процент (сам символ % используется в формате сниппетов). Сниппеты.

Общие параметры

Являются настраиваемыми, см. Настройки шаблонов.

Параметр Описание Доступность
developer Разработчик. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
initial Сокращение имени разработчика, например "JFD" вместо John Foobar Doe. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
mail E-mail разработчика. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
company Компания, организация. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
version Начальная версия при создании файла. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.

Дата и время

Формат настраиваемый, см. Настройка шаблонов. Можно использовать спецификации, предусмотренные для функции ANSI C strftime. Подробности см. на http://man.cx/strftime.

Параметр Описание Доступность
year Текущий год. ФОрмат по умолчанию YYYY. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
date Текущая дата. Формат по умолчанию YYYY-MM-DD. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
datetime Дата и время.Формат по умолчанию: DD.MM.YYYY HH:mm:ss ZZZZ. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.

Динамические параметры

Параметр Описание Доступность
untitled Слово "untitled" (в локализациях переводится). Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
geanyversion Версия Geany version, например. "Geany 0.19". Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
filename Имя текущего файла. Для новых файлов будет подставлено при первом сохранении, если параметр находится в пределах трех первых строк файла. Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.
project Название проекта, если оно имеется. Шаблоны файлов, заголовки файлов, сниппеты.
description Описание проекта, если оно имеется. Шаблоны файлов, заголовки файлов, сниппеты.
functionname Имя функции на которой стоит курсор. Описание функции.
command:path Исполняет указанную команду и подставляет вместо параметра ее выдачу. Подробнее см. Специальный параметр {command:} Шаблоны файлов, заголовки файлов, описания функций, журнал изменений, bsd, gpl, сниппеты.

Вставка фрагментов

Параметр Описание Доступность
gpl Краткая ссылка на лицензию GPL. Заголовок файла.
bsd Краткая ссылка на лицензию BSD. file header.
fileheader Шаблон заголовка файла. Параметр замещается только в шаблонах типов файлов. Сниппеты, файловые шаблоны
Специальный параметр {command:}

Параметр вызывает исполнение указанной команды, а ее выдача (stdout) вставляется в файл.

Пример:

{command:uname -a}

Получаемый результат:

Linux localhost 2.6.9-023stab046.2-smp #1 SMP Mon Dec 10 15:04:55 MSK 2007 x86_64 GNU/Linux

Используя этот прием, поместите в шаблон рядом с параметром необходимый поясняющий текст.

В окружении вызываемой команды установлены переменные GEANY_FILENAME, GEANY_FILETYPE и GEANY_FUNCNAME. Эти переменные имеются всегда, но могут быть пустыми. Их значения устанавливаются только тогда, когда они известны Geany. Например, переменная GEANY_FUNCNAME будет содержать значение только в шаблоне описания функции. Посмотреть значения переменных можно командами оболочки, например

$GEANY_FILENAME

Заметим, что

если указанная команда (программа) не нашлась или не была запущена, в текст будет подставлена пустая строка. Определить в чем дело можно с помощью сообщения об ошибке (stderror) которое будет показано в окне сообщений и в диалоге Справка->Сообщения отладки.

Настройка панели инструментов

С помощью редактора панели или ручного редактирования файла ui_toolbar.xml можно добавлять, удалять и переставлять кнопки и другие элементы панели инструментов.

Редактор панели вызывается из настройки предпочтений на самой панели инструментов или щелчком по ней правой кнопкой мыши и выбором из контекстного меню.

Редактирование размещения панели вручную

Для получения приоритета над общими системными настройками скопируйте файл ui_toolbar.xml из каталога $prefix/share/geany в свой каталог конфигураций, обычно ~/.config/geany/. $prefix - путь к инсталляции Geany.

Пример:

% cp /usr/local/share/geany/ui_toolbar.xml /home/username/.config/geany/

Затем можно редактировать файл, добавляя любые доступные элементы перечисленные в файле, удаляя и переставляя существующие, в том числе разделители. Если при правке возникнут ошибки формата XML, вместо исправленного файла Geany использует общий.

Заметим, что

  1. можно добавить на панель новые действия, и не указанные в таблице ниже.
  2. Все добавления и изменения должны производиться в пределах пути /ui/toolbar/ .

Доступные элементы панели инструментов

Действие Описание
Создать Создать новый файл
Открыть Открыть файл
Сохранить Сохранить файл
Сохранить всё Cохранить все открытые файлы
Обновить Повторно загрузить файл с диска
Закрыть Закрыть файл
Закрыть всё Закрыть все открытые файлы
Печать Напечатать файл
Вырезать Вырезать выделенный фрагмент в буфер обмена
Копировать Скопировать выделенный фрагмент в буфер обмена
Вставить Вставить содержимое буфера обмена
Удалить Удалить выделенный фрагмент
Отменить Отменить последнее действие
Вернуть Снова вернуть последнее действие
Назад Перейти к предыдущему положению
Вперед Перейти к следующему положению
Скомпилировать Скомпилировать файл
Сборка Собрать файл (действие определяется в подменю для команд Make. Geany запоминает последнее выбранное действие и затем использует его по умолчанию при щелчке по кнопке).
Запустить Запустить полученную программу на исполнение (или просмотр)
Выбор цвета Открыть диалог выбора цвета с палитры
Увеличить Укрупнить текст (масштаб)
Уменьшить Уменьшить текст (масштаб)
Уменьшить отступ Уменьшить отступ
Увеличить отступ Увеличить отступ
Заменить Замена
Поиск Поле ввода для элемента 'Поиск'
Найти Искать в файле введенный текст (работает вместе с 'Поиск')
Перейти Поле ввода места перехода для 'Перейти к' (может использоваться самостоятельно)
Перейти к Перейти к строке по номеру (работает вместе с 'GotoEntry')
Настройки Открыть диалог настроек
Выход Выход

Документация по модулям

Сохранение

Мгновенное сохранение

Модуль дает каждому вновь созданному файлу случайное имя, устанавливая тип файла по использованному шаблону. Это позволяет быстро компилировать файл и делать прочие операции, не отвлекаясь на диалог "Сохранить как". Это может быть полезно, если вы часто пишете небольшие фрагменты чтобы их тут же протестировать.

Резервные копии

При сохранении текущего файла модуль создаст его резервную копию с предыдущим состоянием. В менеджере модулей можно задать каталог для сохранения копий и указать, какое расширение им присваивать.

Как принять участие в работе над документацией

Этот документ, (geany.txt) создан в reStructuredText (or "reST"). Его исходный файл находится в подкаталоге doc Geany. Если вы хотите внести изменения в документацию, следует скачать исходный файл непосредственно с SVN, чтобы быть уверенным что это последняя версия. Для экспорта отредактированного файла в форматы HTML или PDF запустите в этом же каталоге "make doc" или "make pdf" соответственно. В первом случае будет обновлен файл geany.html, во втором создан файл geany-0.19.pdf.

Если вы довольны результатами работы, создайте патч:

% svn diff geany.txt > foo.patch

и предложите этот файл для списка рассылки.

Для сборки документации у вас должен быть установлен пакет утилит Python docutils. Пакет для систем Debian и Fedora называется python-docutils.

Клавишные команды Scintilla

Copyright В© 1998, 2006 Neil Hodgson <neilh(at)scintilla(dot)org>

Данное приложение распространяется на условиях лицензии для Scintilla и SciTE. Копия текста лицензии включена в комплект исходных кодов программы (scintilla/License.txt) и дана в приложении к настоящему документу, см. Лицензия на Scintilla и SciTE.

20 June 2006

Клавишные команды

Клавишные команды для Scintilla в основном следуют общепринятым соглашениям для Windows и GTK+. Все клавиши перемещения (стрелки, page up/down, home, end) позволяют менять размеры выделения при удержании клавиши Shift для потокового выделения и клавиш Shift и Ctrl для прямоугольного выделения. Некоторые команды могут оказаться недоступны при работе с теми или иными локализациями раскладки клавиатуры, так как будут использованы в системных целях. В меню указаны клавишные эквиваленты команд. Некоторые менее употребительные команды не имеют эквивалентных команд меню:

Действие Клавиши
Увеличить размер текста. Ctrl+Keypad+
Уменьшить размер текста. Ctrl+Keypad-
Вернуть размер текста к нормальному. Ctrl+Keypad/
Сделать отступ для блока текста. Tab
Убрать отступ. Shift+Tab
Удалить до начала слова. Ctrl+BackSpace
Удалить до конца слова. Ctrl+Delete
Удалить до начала строки. Ctrl+Shift+BackSpace
Перейти в начало документа. Ctrl+Home
Расширить выделение к началу документа. Ctrl+Shift+Home
Перейти к началу подстроки в окне. Alt+Home
Расширить выделение к началу подстроки в окне. Alt+Shift+Home
Перейти в конец документа. Ctrl+End
Расширить выделение до конца документа. Ctrl+Shift+End
Расширить выделение до конца подстроки в окне. Alt+Shift+End
Предыдущий абзац. Shift расширяет выделение. Ctrl+Up
Следующий абзац. Shift расширяет выделение. Ctrl+Down
Предыдущее слово. Shift расширяет выделение. Ctrl+Left
Следующее слово. Shift расширяет выделение. Ctrl+Right

Советы и подсказки

«Блокнот» документов

Редактор

Интерфейс

GTK

Следующие свойства унаследованы от X-Windows (GTK поддерживает их в Windows):

Опции, устанавливаемые при компиляции

Ряд опций может быть изменен только при компиляции Geany. Для их изменения необходимо редактировать соответствующие файлы исходных текстов, находящиеся в подкаталоге src subdirectory. Найдите блок строк начинающийся с #define GEANY_*. При этом не должны изменяться никакие определения, кроме перечисленных ниже.

Заметим, что

большинству пользователей все это ни к чему.

src/geany.h

Опция Описание По умолчанию
GEANY_STRING_UNTITLED Строка, задающая имя для новых файлов, предлагаемое по умолчанию. Переводится в локализациях. untitled
GEANY_WINDOW_MINIMAL_WIDTH Минимальная ширина главного окна. 620
GEANY_WINDOW_MINIMAL_HEIGHT Минимальная высота главного окна. 440
GEANY_WINDOW_DEFAULT_WIDTH Ширина главного окна при первом запуске по умолчанию. 900
GEANY_WINDOW_DEFAULT_HEIGHT Высота главного окна при первом запуске по умолчанию. 600
Только для Windows    
GEANY_USE_WIN32_DIALOG Если 1, для открытия и сохранения файлов используются диалоги Windows (только для 32-разрядных версий!) вместо диалогов GTK. Диалоги Windows не позволяют выбрать кодировку файлов. 0

project.h

Опция Описание По умолчанию
GEANY_PROJECT_EXT Расширение для файлов проектов Geany по умолчанию. geany

editor.h

Опция Описание По умолчанию
GEANY_WORDCHARS Символы,которые могут входить в состав слов; важны для действий со словами как таковыми. строка символов: a-z, A-Z, 0-9 и символ подчеркивания.

keyfile.c

Эти настройки по умолчанию могут быть переопределены в диалоге Настройка предпочтений.

Опция Описание По умолчанию
GEANY_MIN_SYMBOLLIST_CHARS Набор какого числа символов вызовет список автозавершения. 4
GEANY_DISK_CHECK_TIMEOUT Время в секундах между проверками неизменности файла на диске (на изменение какой-либо другой программой). 30
GEANY_DEFAULT_TOOLS_MAKE Используемая утилита make по умолчанию (опция может также включать путь). "make"
GEANY_DEFAULT_TOOLS_TERMINAL Эмулятор терминала по умолчанию (должен принимать опцию командной строки "-e"). Опция может включать путь. "xterm"
GEANY_DEFAULT_TOOLS_BROWSER Интернет-браузер по умолчанию. Опция может включать путь.. "firefox"
GEANY_DEFAULT_TOOLS_PRINTCMD Программа печати по умолчанию. Должна позволять работать с «плоскими», т.е. чисто текстовыми файлами. Опция может включать путь. "lpr"
GEANY_DEFAULT_TOOLS_GREP Утилита grep по умолчанию. Должна быть совместима с GNU grep. Опция может включать путь. "grep"
GEANY_DEFAULT_MRU_LENGTH Длина списка "Недавние файлы" (ранее открывавшихся файлов). 10
GEANY_DEFAULT_FONT_SYMBOL_LIST Шрифт, используемый на боковой панели для показа имен и открытых файлов. "Sans 9"
GEANY_DEFAULT_FONT_MSG_WINDOW Шрифт для окна сообщений "Sans 9"
GEANY_DEFAULT_FONT_EDITOR Шрифт по умолчанию используемый для редактора. "Monospace 10"
GEANY_TOGGLE_MARK Строка, используемая для отметки комментариев при включении/выключении их показа. "~ "
GEANY_MAX_AUTOCOMPLETE_WORDS Максимальная длина списка слов для автозавершения. 30

build.h

Опция Описание По умолчанию
GEANY_BUILD_ERR_HIGHLIGHT_MAX Число сообщений об ошибках, которые следует подсвечивать в окне компилятора и в исходном коде (обычно интерес представляют несколько первых ошибок, последующие являются уже их следствием). 100

build.c

Опция Описание По умолчанию
PRINTBUILDCMDS Всякий раз при расчете приоритета команд меню "Сборка" выводить состояние меню в таблице конфигурирования. Может быть полезно при отладке перезагружаемого файла конфигурации. Выдача может оказаться громоздкой. Может быть также включено или отключено отладчиком установкой printbuildcmds в 1/0, что имеет приоритет над опцией компиляции. FALSE

GNU General Public License

            GNU GENERAL PUBLIC LICENSE
               Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software-to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

            GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

             END OF TERMS AND CONDITIONS

        How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year  name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items-whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.

License for Scintilla and SciTE

Copyright 1998-2003 by Neil Hodgson <neilh(at)scintilla(dot)org>

All Rights Reserved

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation.

NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.