.. |(version)| replace:: 2.1
.. -*- reStructuredText -*-
=======
Geany
=======
--------------------------------------------
Быстрая и легковесная среда разработки GTK+
--------------------------------------------
:Авторы: Enrico Tröger,
Nick Treleaven,
Frank Lanitz,
Colomban Wendling,
Matthew Brush
:Переводчик: Алевтина Карашокова
:Дата: 2023-10-19
:Версия: |(2.1)|
© Участники Geany, 2005
Документ распространяется на условиях GNU General Public License, публикуемых Free Software Foundation; версии 2 или любой более поздней. Копии этой лицензии находятся в файле COPYING в исходных текстах программы, а также в главе `GNU General Public License`_.
.. Содержание::
Введение
========
Что такое Geany
---------------
Geany — это компактная и легковесная интегрированная среда разработки (IDE). Основной задачей при разработке было получить компактную и быструю IDE с минимальной зависимостью от других пакетов. Второй задачей была независимость от любой оболочки (KDE, GNOME и т.п.) — Geany требует только наличия исполняемых библиотек GTK+.
Основные функции Geany:
* Выделение синтаксиса
* Сворачивание кода
* Автозавершение символов/слов
* Работа со сниппетами (фрагментами кода)
* Автоматическое закрытие тегов XML и HTML
* Советы
* Поддержка языков C, Java, PHP, HTML, Python, Perl,
Pascal и других
* Списки символов
* Навигация по коду
* Сборка — система для компиляции и исполнения кода
* Простое управление проектом
* Интерфейс для модулей
Где взять
---------
Geany можно получить на сайте https://www.geany.org/. Возможно, Geany уже включена в ваш дистрибутив.
Список доступных пакетов смотрите в разделе https://www.geany.org/Download/ThirdPartyPackages.
Лицензия
--------
Geany распространяется на условиях GNU General Public License, публикуемых Free Software Foundation; версии 2 или любой более поздней. Копии этой лицензии находятся в файле COPYING в исходных текстах программы, а также в главе `GNU General Public License`_.
Входящая в состав системы библиотека Scintilla library (находится в подкаталоге ``scintilla/``) имеет свою собственную лицензию, приведённую в главе `Лицензии на Scintilla и SciTE`_.
Документация
------------
Документация распространяется в форматах HTML и текстовом. Последнюю версию документации можно найти на сайте https://www.geany.org/.
Если у вас есть желание дополнить документацию, см. `Как принять участие в разработке документации`_.
Установка
=========
Технические требования
----------------------
В системе должны быть установлены библиотеки GTK (>= 3.24) и связанные (Pango, GLib и ATK). Обычно дистрибутив уже содержит всё необходимое, и установка библиотек выполняется по умолчанию. Для Windows загрузите программы установки с сайта поддержки этих библиотек.
Пакеты программ
---------------
Доступно большое число пакетов программ в виде готовых бинарных кодов. Постоянно пополняемый список находится здесь: //www.geany.org/Download/ThirdPartyPackages.
Компиляция исходных текстов
---------------------------
Скомпилировать Geany несложно. Понадобятся библиотеки GTK (>= 3.24) и заголовочные файлы, в том числе Pango, GLib и ATK. Всё это имеется на http://www.gtk.org, но, как правило, включается в дистрибутивы с Geany.
Разумеется, понадобятся компиляторы C и C++. Рекомендуем использовать компиляторы, лицензируемые согласно GNU.
Сборка с помощью автоинструментов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Чтобы скомпилировать Geany самостоятельно, вам понадобится утилита Make, предпочтительно GNU Make.
Потребуется выполнить следующие команды::
$ ./configure
$ make
Затем с правами администратора::
% make install
Или с помощью sudo::
% sudo make install
Выборочная установка
^^^^^^^^^^^^^^^^^^^^
Скрипт конфигурирования поддерживает ряд вариантов, для получения справки по которым дайте команду::
$ ./configure --help
Варианты установки подробно рассмотрены в файле INSTALL.
* См. также раздел `Опции компиляции`_.
Поддержка динамической загрузки и VTE
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Если ваша система не поддерживает динамическую загрузку, вероятно, вам потребуется включить опцию ``--disable-vte`` в скрипте ``configure``. Это предотвратит компиляцию Geany с поддержкой динамической загрузки ``libvte.so.4`` (в случае доступности).
Проблемы при сборке
^^^^^^^^^^^^^^^^^^^
Если при компиляции возникают какие-либо ошибки, проверьте окружение при сборке и попытайтесь найти ошибку; в случае неудачи напишите в рассылку или одному из авторов. Можно также обратиться к поставщику вашего дистрибутива.
Префикс установки
-------------------
Если вы хотите найти системные файлы Geany после установки, вам может понадобиться знать префикс установки.
Используйте ``--print-prefix`` опцию Geany для проверки (см. `Опции командной строки`_). Первый путь и будет искомым префиксом.
В Unix-подобных системах это обычно каталог ``/usr``, если вы устанавливали готовую систему, или ``/usr/local``, если система компилировалась из исходных текстов.
.. Примечание::
редактирование системных файлов не обязательно, так как вместо них следует использовать
файлы конфигурации для каждого пользователя, которые не требуют прав администратора.
См. `Файлы конфигурации`_.
Руководство пользователя
========================
Запуск Geany
------------
Запустить Geany можно следующими способами:
* С помощью меню рабочего стола:
Выберите в меню приложений для рабочего стола: Разработка --> Среда разработки Geany.
В Windows вы найдёте Geany после установки в меню приложений в специальной папке.
* С помощью командной строки:
Наберите команду и нажмите Enter::
% geany
Рабочее пространство Geany
--------------------------
Так выглядит окно Geany:
.. image:: ./images/main_window.png
.. Примечание::
снимки экрана в этом документе сделаны с использованием темы GTK Adwaita по умолчанию,
но Geany будет адаптироваться к теме GTK рабочего стола, которая установлена.
Рабочее пространство содержит следующие области:
* Меню.
* Панель инструментов (может быть показана или скрыта).
* Боковая панель (может быть показана или скрыта) со следующими вкладками:
* Документы — `список документов <#document-list-views>`_.
* Символы — список символов вашего кода.
* Главное окно редактора.
* Панель сообщений в нижней части с вкладками:
* Статус — сообщения о выполнявшихся операциях.
* Компилятор — сообщения о компиляции и сборке программ.
* Сообщения — результаты операций `Найти использование`_, `Найти в файлах`_ и других действий.
* Заметки — заметки для любых целей.
* Терминал — опциональное `окно терминала <#virtual-terminal-emulator-widget-vte>`_.
* Строка статуса
Большинство из них можно настроить в `Настройках интерфейса`_, меню `Вид`_ или во всплывающем меню для соответствующей области.
Модули для Geany могут добавлять на боковую и нижнюю панели дополнительные вкладки.
Положение вкладок можно выбрать в настройках интерфейса.
Размеры панелей можно менять, перетаскивая мышью разделительные линии.
Использование боковой панели
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
На боковой панели есть контекстное меню, с помощью которого можно управлять тем, что будет отображаться, и выполнять действия, относящиеся к данной вкладке (другие вкладки, добавленные модулями, описаны в документации к модулю):
* Символы
* развернуть/свернуть дерево
* управлять порядком сортировки
* управлять группировкой символов по типу
* найти символ в документах
Вкладку символов можно также отфильтровать, введя строку в поле в верхней
части вкладки. Все символы, содержащие введённую строку в качестве подстроки,
будут показаны в дереве. Несколько фильтров могут быть разделены пробелом.
* Документы
* развернуть/свернуть дерево
* сохранить в или загрузить из файлов
* поиск дерева по выбранному файлу
* показать или скрыть пути к документам
Опции командной строки
----------------------
============ ======================= =================================================
Кратко Полностью Описание действия
============ ======================= =================================================
— +число Задаёт переход к строке с указанным номером в первом
открываемом файле (так же как и --line; не ставьте
пробел между знаком + и числом). Например, «geany +7
foo.bar» откроет файл foo.bar и поместит курсор в строку 7.
— --column Задаёт переход к столбцу с указанным номером в первом
открываемом файле.
-c dir_name --config=directory_name Использовать файлы конфигурации из альтернативного
каталога. Каталог по умолчанию — ``~/.config/geany/``,
в котором находится ``geany.conf`` и другие файлы
конфигурации.
— --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 Не загружать модули, отключить поддержку модулей.
— --print-prefix Вывести (stdout) префикс установки, каталог данных, каталог
библиотек и локальный каталог (в этом порядке, построчно).
Эта функция предназначена в основном для авторов модулей,
чтобы определить пути установки.
-r --read-only Открыть все файлы, указанные в командной строке, в режиме
только для чтения. Это относится только к файлам, открываемым
явно из командной строки, поэтому файлы из предыдущих сеансов
или файлы проекта не затрагиваются.
-s --no-session Не загружать файлы, с которыми работали в предыдущем сеансе.
-t --no-terminal Не загружать поддержку терминала. Используйте эту
опцию, если не требуется загружать эмулятор терминала
при запуске. Если в системе не установлен ``libvte.so.4``,
поддержка терминала недоступна. Поддержка терминала
возможна только если Geany скомпилирована с поддержкой VTE.
— --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 ...* Открыть все заданные имена файлов при запуске.
Если обнаружена запущенная копия, передайте ей
*file:line ...* имена файлов.
*file:line:col ...* Geany также распознаёт строку и столбец, если добавить
к имени файла двоеточие, например ``geany foo.bar:10:5``
откроет файл ``foo.bar``, поместив курсор в строку 10
в столбце 5.
Если имя файла не существует, создайте новый документ
с нужным именем, если установлен `параметр <#files-preferences>`_
*Открывать новые файлы из командной строки*.
Можно также открыть проект, но имя проекта (\*.geany)
должно быть первым аргументом после опций. Любые
другие имена файлов проекта будут открыты как текстовые файлы.
============ ======================= =================================================
Geany поддерживает и все общие опции GTK, список которых приведён в справке.
Общие замечания
---------------
Загрузка файлов при запуске
^^^^^^^^^^^^^^^^^^^^^^^^^^^
При запуске Geany загружает все файлы, которые были открыты в предыдущем сеансе работы. Можно отказаться от такой загрузки в настройке предпочтений (см. `Общие настройки при запуске`_).
При запуске нескольких копий Geany только первая из них открывает файлы предыдущего сеанса работы. В последующих копиях эти файлы можно найти в меню файла в пункте *Недавние файлы*. По умолчанию здесь содержатся последние 10 недавно открытых файлов. Количество последних открытых файлов можно изменить во вкладке
`«Файлы» <#files-preferences>`_ настройки предпочтений.
При запуске второй копии Geany не указывайте имена файлов в командной строке или отключите открытие файлов в запущенной копии с помощью `опции командной строки <#command-line-options>`_ ``-i``.
Открытие файлов
^^^^^^^^^^^^^^^
Открыть диалоговое окно
```````````````````````
Команда *Файл->Открыть* покажет диалоговое окно для выбора одного или нескольких текстовых файлов, которые следует открыть. Справа находится список фильтров файлов, в который входят следующие элементы:
* Все файлы (по умолчанию)
* Все файлы исходного кода — комбинация всех шаблонов для каждого типа файлов (см. `Расширения типов файлов`_)
* Отдельные типы файлов
Щёлкнув *Больше настроек*, вы увидите элементы управления для открытия файлов с определённым типом или кодировкой (см. `Наборы символов и метка порядка байтов в Юникоде (BOM)`_).
Открытие файлов из командной строки ранее запущенной копии Geany
````````````````````````````````````````````````````````````````
При запуске Geany проверяет, нет ли в памяти ранее запущенной копии, и при её наличии открывает те же файлы, что были указаны в командной строке при первом запуске. Это позволяет просматривать и редактировать файлы из других программ, таких как файловый менеджер.
Также можно указать строку и столбец, например::
geany some_file.foo:55:4
Файл ``some_file.foo`` будет открыт с курсором на строке 55, столбец 4.
Если почему-либо такое поведение программы вам не нравится, можно отключить опцию «копирования» открываемых файлов из командной строки первой копии соответствующим ключом командной строки — см. раздел `Опции командной строки`_.
Эмулятор виртуального терминала (VTE)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Если вы установили в системе ``libvte.so``, Geany загружает его автоматически, и в нижней части окна появляется значок-виджет терминала.
Если при запуске Geany не находит ``libvte.so``, виджет не загружается. Так что нет необходимости устанавливать пакет, содержащий этот файл, для запуска Geany. Эмулятор терминала можно отключить, см. раздел `Опции командной строки`_.
С этим терминалом (далее будем называть его VTE) можно работать по большей части так же, как с любой терминальной программой, например xterm. Поддерживается работа с буфером обмена, с помощью которого текст можно копировать или переносить в окно VTE или из него (команды в меню при нажатии правой кнопки мыши). Чтобы скопировать текст из VTE, выделите нужный текст, щёлкните правой кнопкой мыши и выберите «Копировать» из контекстного меню. В системах с X Window System вставка из буфера делается средней кнопкой мыши (для двухкнопочных мышей действие средней кнопки часто воспроизводится нажатием сразу на обе имеющиеся).
Оболочку, которая будет использована в VTE, можно указать в окне настройки предпочтений. Для входа используйте командную строку, необходимые команды вы найдёте на странице руководства оболочки. Для 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.
Документы
---------
Переключение между документами
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Список документов и вкладки редактора — это два разных способа переключения между документами с помощью мыши. При нажатии комбинации клавиш для перемещения между вкладками порядок определяется порядком вкладок. Он не является алфавитным, как показано в списке документов (независимо от того, видны вкладки редактора или нет).
В разделе `Команды работы с окнами документов и их вкладками`_ указаны полезные комбинации клавиш, включая наиболее часто употребимые для переключения между документами.
Просмотр списка документов
^^^^^^^^^^^^^^^^^^^^^^^^^^
Существует три различных способа отображения документов на боковой панели, если активна опция *Показывать список документов*. Для переключения между видами щёлкните правой кнопкой мыши по списку документов и выберите один из этих пунктов:
Только документы
Показывать только имена файлов открытых документов в порядке сортировки.
.. image:: ./images/sidebar_documents_only.png
Показывать пути
Показывать открытые документы в виде двухуровнего дерева, в котором первый уровень — это пути к каталогам, содержащим открытые файлы, а второй уровень — имена файлов документов, открытых по этому пути. Все документы с одинаковым путём группируются под одним элементом первого уровня. Пути располагаются в порядке сортировки, а документы сортируются внутри каждой группы.
.. image:: ./images/sidebar_show_paths.png
Показывать дерево
Показывать пути, как описано выше, но в виде многоуровневого частичного дерева. Дерево разворачивается только в тех местах, где два или более путей к открытым документам имеют один и тот же префикс. Общий префикс отображается в качестве родительского уровня, а остальные пути отображаются как дочерние уровни. Это применяется рекурсивно вниз по путям, образуя дерево имён файлов открытых документов, которые группируются в порядке сортировки как дополнительный уровень под последним сегментом пути.
Для удобства два общих расположения файлов обрабатываются особым образом: открытые файлы ниже домашнего каталога пользователя и открытые файлы ниже открытого проекта базового пути. Каждый из них перемещается на свой собственный верхний уровень дерева вместо того, чтобы находиться на обычном дереве. Верхний уровень каждого из этих деревьев обозначен по-разному. Для дерева домашнего каталога путь к домашнему каталогу отображается как ``~``, а для дерева проектов путь к базовому пути проекта отображается просто как имя проекта.
.. image:: ./images/sidebar_show_tree.png
Во всех случаях пути и имена файлов, которые не помещаются в отведённую ширину, эллипсируются.
Клонирование документов
^^^^^^^^^^^^^^^^^^^^^^^
Пункт меню `Документ->Клонировать` копирует текст, положение курсора и свойства текущего документа в новый документ без названия. Если есть выделение, копируется только выделенный текст. Это может быть полезным при создании временных копий текста или для создания документов с похожим или идентичным содержимым.
Автоматическая вставка имени файла при использовании `Сохранить как...`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Если документ сохраняется с помощью меню `Документ->Сохранить как...`, то имя файла автоматически вставляется в заголовок комментария, заменяя текст типа
`без имени.ext` в первых трёх строках файла. Например, если новый файл ``.c`` создаётся с помощью `Файл->Создать из шаблона`, то текст `без имени.c` в строке 2 будет заменён на выбранное имя файла при `Сохранить как...` (в данном примере предполагается, что используются шаблоны файлов по умолчанию).
Наборы символов и метка порядка байтов в Юникоде (BOM)
------------------------------------------------------
Использование наборов символов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Geany поддерживает определение и преобразование наборов символов. Таким образом, вы можете открывать и сохранять файлы с различными наборами символов, и даже конвертировать файл из одного набора символов в другой. Для этого Geany использует возможности преобразования символов библиотеки GLib.
Поддерживаются только текстовые файлы, т.е. при открытии файлов, содержащих нулевые байты, может произойти сбой. Geany всё равно попытается открыть файл, но, скорее всего, файл будет усечён, поскольку его можно прочитать только до первого появления нулевого байта. Все следующие символы будут потеряны и не будут записаны при сохранении файла.
Geany пытается определить кодировку файла при его открытии, но опеределять кодировку файла автоматически не так просто, и иногда кодировка может быть определена неправильно. В этом случае для корректного отображения файла необходимо установить его кодировку вручную. Это можно сделать в диалоговом окне открытия файлов, выбрав кодировку в выпадающем списке или заново загрузив файл с помощью пункта меню «Обновить как». Автоматическое определение хорошо работает для большинства кодировок, но есть и такие кодировки, у которых есть проблемы с автоопределением.
Вот какими способами может быть задана кодировка:
* В диалоговом окне открытия файла
При этом открывается файл с кодировкой, указанной в выпадающем списке кодировки. При выборе варианта «Распознать по содержимому» используется автоматическое определение. Если выбрать вариант «Без кодировки (None)», файл будет открыт без преобразования символов и без попыток определить кодировку (подробнее см. ниже).
* С помощью команды меню «Обновить как»
Данная команда повторно открывает текущий файл, позволяя при этом сменить кодировку. Это может помочь, если вы открыли файл и обнаружили, что была использована неправильная кодировка.
* С помощью команды меню «Установить кодировку»
В отличие от двух вышеуказанных команд, эта команда не изменяет и не обновляет текущий файл, пока вы его не сохраните. Это полезно, когда необходимо изменить кодировку файла.
* Указание кодировки в самом файле
Как упоминалось выше, автоматическое определение может не сработать в некоторых кодировках. Обнаружив, что Geany неправильно открывает какой-либо файл,
вы можете добавить строку спецификации, описанную в следующем разделе, в начало файла, чтобы Geany использовала определённую кодировку при открытии файла.
Спецификация кодировки
^^^^^^^^^^^^^^^^^^^^^^
Geany понимает мета-тег HTML, содержащий информацию о кодировании файла, например::
и при открытии файла используется указанная кодировка. Это полезно, если невозможно правильно определить кодировку файла. Для файлов других форматов (не 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 байт файла.
Всё, что следует после первых 512 байт, не будет распознано.
Примеры::
# encoding = ISO-8859-15
или::
# coding: ISO-8859-15
Специальная кодировка «None»
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Существует специальная кодировка «None», при которой кодировка не используется. Это полезно, когда известно, что Geany не может автоматически определить кодировку файла, и он не отображается корректно. Особенно если файл содержит нулевые байты, это может быть полезно, чтобы пропустить автоматическое определение и открыть файл правильно, по крайней мере, до появления первого нулевого байта. При использовании этой кодировки файл открывается как есть, без преобразования символов.
Метка порядка байтов в Юникоде (BOM)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Кроме того, Geany обнаруживает BOM в Юникоде (см. https://ru.wikipedia.org/wiki/Маркер_последовательности_байтов). Разумеется, такая возможность доступна только если открываемый файл имеет кодировку Юникод. BOM помогает определить кодировку файлов, например UTF-16LE или UTF-16BE и так далее. В Unix-подобных системах использование BOM может вызвать проблемы с программами, которые её не учитывают. Например, компилятор gcc останавливается с выдачей сообщения об ошибке, PHP не может разобрать содержащий BOM скрипт, и файлы скриптов, начинающиеся с шебанга, возможно, не могут быть запущены. В строке статуса Geany будет показано наличие ВОМ в файле.
Если требуется установить или удалить BOM, используйте меню документов и соответствующую настройку.
.. Примечание::
если вы не знаете, что такое BOM, или не понимаете, где его использовать, то, скорее всего, он для вас не важен, и вы можете смело его игнорировать.
Редактирование
--------------
Сворачивание
^^^^^^^^^^^^
Geany поддерживает сворачивание, т.е. возможность временно скрывать и снова разворачивать фрагменты редактируемого исходного текста. Вы можете скрыть неважные участки кода и сосредоточиться на тех частях, над которыми вы работаете, а позже можно снова показать скрытые участки. В окне редактора слева есть небольшое серое поле со значками [+] и [-], указывающими на наличие скрытого фрагмента текста и возможность скрытия соответственно. Щёлкнув на этих значках, можно просто показывать и скрывать разделы, обозначенные вертикальными линиями в пределах этого поля. Многие типы файлов поддерживают иерархическое сворачивание (вложенность сворачиваемых фрагментов).
.. Примечание::
вы можете изменить стиль значков и линеек сворачивания — см. filetypes.common `Параметры сворачивания`_.
Если сворачивание вам не нравится или вы им не пользуетесь, можно отключить его в окне настройки предпочтений.
Поведение сворачивания можно изменить с помощью опции «Сворачивать/разворачивать все вложенные элементы» в окне настройки предпочтений. Если включено, Geany развернёт все уровни вложенного текста ниже текущего при наличии вложенного сворачивания (при нажатии на символ [+]). При нажатии на символ [-] Geany свернёт все уровни вложенного текста ниже текущего, если они развёрнуты.
Если при щелчке по значку свёртки нажата клавиша Shift, действие опции меняется на обратное. То есть, если включена опция «Сворачивать/разворачивать все вложенные элементы», нажатие Shift отключит её при щелчке и наоборот.
Редактирование с помощью столбца (прямоугольное выделение)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Имеется базовая поддержка редактирования с помощью столбца. Выделяя текст при нажатых клавишах Control и Shift (или Alt и Shift в Windows), можно выделить прямоугольный блок. После создания прямоугольного выделения можно начать редактировать текст внутри этого выделения, причём изменения будут производиться для каждой строки.
Также можно создать выделение с нулевым столбцом — это удобно для вставки текста в несколько строк.
Перетаскивание
^^^^^^^^^^^^^^
При перетаскивании выделенного текста в виджете редактора Geany текст перемещается на место, в котором находится указатель мыши при отпускании кнопки. Удержание Control при отпускании кнопки мыши приведёт к копированию текста. Такое поведение было изменено в Geany 0.11 — раньше выделенный текст копировался на новое место.
Отступы
^^^^^^^
Geany позволяет делать отступы либо с помощью табуляций, либо с помощью нескольких пробелов, либо с помощью комбинации того и другого.
Параметр *Табуляция* делает отступ в один символ табуляции на каждый уровень отступа и отображает табуляцию как ширину отступа.
Параметр *Пробелы* делает отступ с количеством пробелов, заданных в ширине отступа для каждого уровня.
Параметр *Табуляция и пробелы* делает отступ с пробелами, как указано выше, а затем преобразует столько пробелов, сколько может, в символы табуляции из расчёта одна табуляция на каждое кратное значение параметра `Разные опции` *indent_hard_tab_width* (по умолчанию 8) и отображает табуляции как значение *indent_hard_tab_width*.
Параметры отступа по умолчанию задаются в `Параметры отступа редактора`_ (см. ссылку для получения дополнительной информации).
Параметры по умолчанию можно переопределить для каждого документа с помощью меню «Документ». Они также могут быть переопределены проектами — см. `Управление проектами`_.
Способ создания отступов в текущем документе показан в строке статуса:
TAB
С помощью символов табуляции.
SP
С помощью пробелов.
T/S
И табуляцией, и пробелами, в зависимости от того, сколько отступов в строке.
Применение новых параметров отступа
```````````````````````````````````
После изменения параметров по умолчанию вам может потребоваться применить новые параметры к каждому документу в текущем сеансе. Для этого воспользуйтесь командой меню *Проект->Применить отступы по умолчанию*.
Определение типа отступа
````````````````````````
Параметр *Распознать по содержимому* можно использовать для проверки каждого файла при его открытии и установки типа отступа на основании того, сколько строк начинается с табуляции, а сколько — с двух и более пробелов.
Автоматическая установка отступов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Если включён этот режим, при нажатии *Enter* в редакторе выполняется автоматическая установка отступов. Добавляется определённое количество отступов в следующую строку, чтобы пользователю не приходилось вручную делать отступ для каждой строки.
Для установки отступа предусмотрено четыре режима:
Пустой
Установка отступа отключена.
Базовый
Добавляет на новую строку столько же пробельных символов, сколько и на предыдущую. Для типов *Табуляция* и *Пробелы* в отступе будет использоваться та же комбинация символов, что и в предыдущей строке. Тип *Табуляция и пробелы* преобразуется, как описано выше.
Текущие символы
Действует так же, как и *Базовый*, но также делает отступ новой строки после открывающей скобки '{' и убирает отступ после ввода закрывающей скобки '}'. Для Python отступ новой строки будет выполняться после ввода символа ':' в конце предыдущей строки.
Совмещать скобки
Аналогично режиму *Текущие символы*, но закрывающая скобка будет выровнена в соответствии с отступом строки с открывающей скобкой. При этом необходимо, чтобы тип файла был таким, чтобы Geany было известно, что лексический анализатор Scintilla распознаёт соответствующие скобки (C, C++, D, HTML, Pascal, Bash, Perl, TCL).
Также имеется автоматическая установка отступов после тегов XML. Она включается, когда режим больше, чем просто Базовый, а также управляется параметром типа файла — см. `xml_indent_tags`_.
Закладки
^^^^^^^^
Geany предоставляет удобную функцию закладок, которая позволяет отмечать одну или несколько строк в документе и возвращать к ним курсор с помощью комбинации клавиш.
Чтобы поставить метку на строке, щёлкните левой кнопкой мыши на левой границе окна редактора или нажмите Ctrl-m. На полях появится маленький зелёный плюс. Закладок в документе может быть сколько угодно. Повторный щелчок (или нажатие Ctrl-m) удаляет закладку. Удалить все сразу можно командой «Удалить маркеры» в меню «Документ».
Чтобы перемещаться по документу, переходя от одной метки к другой, нажмите клавиши Ctrl-. (Ctrl-точка). Чтобы перейти в обратном направлении, нажмите Ctrl-, (Ctrl-запятая). Использование функции создания закладок вместе с командами для перехода с одной вкладки редактора на другую (Ctrl-PgUp/PgDn и Ctrl-Tab) обеспечивает особенно быстрый способ навигации по нескольким файлам.
Переходы по элементам программного кода
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Чтобы облегчить навигацию в исходных файлых и особенно между различными файлами, Geany позволяет перемещаться между точками навигации. В настоящее время это работает для следующего:
* `Объявления символов`_
* `Определения символов`_
* Символы из списка
* Ошибки сборки
* Сообщения
При использовании одного из этих действий, Geany запоминает вашу текущую позицию и переходит к новой. Если вы решите вернуться к предыдущей позиции в файле, просто используйте команду «Вернуться на шаг назад». Чтобы вернуться на новую позицию, используйте «Перейти на шаг вперёд». Это облегчает навигацию, например, в постороннем коде и между различными файлами.
Пересылка текста настраиваемыми командами
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Вы можете определить несколько пользовательских команд и отправить текущее выделение в одну из этих команд с помощью меню или сочетания клавиш *Правка->Формат->Отправить выделенное в*. Вывод команды будет использоваться для замены текущего выделения. Это позволяет использовать инструменты форматирования текста в Geany обычным путём.
Выделенный текст посылается на стандартный ввод выполняемой команды, поэтому команда должна уметь читать с него и выводить все результаты на свой стандартный вывод, который будет прочитан Geany. Для облегчения поиска ошибок при выполнении команды на стандартный вывод Geany будет выведена стандартная ошибка программы.
Если выделенного текста нет, вместо него будет использоваться вся текущая строка.
Чтобы добавить пользовательскую команду, используйте меню *Отправить выделенное в->Установить пользовательские команды*. Щёлкните *Добавить*, чтобы завести новую строку и введите команду. Также можно задать параметры командной строки. Пустые команды не сохраняются.
Поддерживается экранирование в shell, поэтому можно делать следующее:
* ``sed 's/\./(dot)/g'``
Приведённый выше пример обычно выполняется с помощью функции `Заменить все`_, но может быть удобно иметь уже готовые общие команды.
Обратите внимание, что эта команда выполняется не в shell, поэтому если вы хотите использовать возможности shell, такие как каналы и последовательности команд, необходимо явно запустить shell и передать ей свою команду:
* ``sh -c 'sort | uniq'``
Подстановка контекста
^^^^^^^^^^^^^^^^^^^^^
Вы можете выполнить команду контекстного действия на слове в позиции курсора или выделении в тексте. Это слово или выделение может быть использовано в качестве аргумента команды. Контекстное действие вызывается пунктом меню в контекстном меню редактора, а также сочетанием клавиш (см. раздел `Сочетания клавиш`_).
Команда может быть задана в окне настройки предпочтений, а также для каждого типа файла (см. «context_action_cmd» в разделе `Настройка типов файлов`_). При вызове контекстного действия используется команда, специфичная для типа файла, если она доступна, в противном случае выполняется команда, указанная в окне настройки предпочтений.
Текущее слово или выделение подставляется в команду как параметр «%s»; он будет заменён текущим словом или выделением перед выполнением команды.
Например, контекстное действие может использоваться для открытия документации по API в окне браузера; команда для открытия документации по API PHP будет выглядеть так::
firefox "https://www.php.net/%s"
при выполнении команды %s заменяется словом, расположенным рядом с курсором или текущим выделением. Если крусор находится на слове «echo», откроется окно браузера (предполагается, что ваш браузер — Firefox) и откроется адрес: https://www.php.net/echo.
Автозавершение
^^^^^^^^^^^^^^
Geany может предлагать список возможных вариантов завершения слов как для элементов языков программирования, так и для любых слов в документе.
Список вариантов появляется при наборе первых нескольких символов (по умолчанию 4, настраивается в разделе `Настройки завершений ввода`_) или по клавишной команде *Завершить слово* (по умолчанию Ctrl-Space, о настройке см. `Сочетания клавиш редактора`_).
Для некоторых языков список автозаполнения упорядочивается с помощью эвристического подхода, чтобы показать имена, которые с большей вероятностью будут теми, которые пользователь захочет увидеть в начале списка.
Когда набрано определённое сочетание клавиш и выбрана опция *Автозавершение всех слов в документе* (в разделе `Настройки завершений ввода`_), в списке автозавершения будут показаны все подходящие слова в документе.
Если вы не хотите использовать автозавершение, его можно отключить до следующего слова, нажав Escape. Список автозавершения обновляется по мере набора символов, так что в нём отображаются только те завершения, которые начинаются с символов, набранных до сих пор. Если ни одно слово не начинается с этой последовательности, окно автозавершения закрывается.
Стрелки вверх и вниз перемещают выбранный элемент. Выделенный элемент в списке автозавершения можно выбрать из списка, нажав Enter/Return. Элемент также можно выбрать двойным щелчком. Последовательность будет завершена в соответствии с выбранным элементом, а если установлен параметр *Отбрасывать окончания слов при завершении* (в разделе `Настройки завершений ввода`_), все символы после вставленного слова будут удалены.
Автозавершение по частям
````````````````````````
По умолчанию нажатие Tab завершает выбранный вариант по частям, что может быть полезно, например, для вставки префикса ``gtk_combo_box_entry_`` без его ввода вручную:
* gtk_com
* gtk_combo_
* gtk_combo_box_
* gtk_combo_box_entry_
* gtk_combo_box_entry_set_text_column
Можно назначить этот вариант действий не Tab, а другой клавише — см. `Сочетания клавиш редактора`_. Если изменить или очистить комбинацию клавиш для постепенного завершения, Tab будет срабатывать так же, как и Enter.
Контекстное автозавершение
``````````````````````````
Например::
struct
{
int i;
char c;
} foo;
При вводе ``foo.`` будет показан список автозавершения для имён 'i' и 'c'.
Это работает только для языков, в которых устанавливаются области видимости имён. Большинство языков анализируют только глобальные определения, поэтому автозавершение области видимости не будет работать для имён, объявленных в локальной области видимости (например, внутри функций). Некоторые языки анализируют как локальные, так и глобальные объекты (например, анализаторы C/C++), и для этих анализаторов автозавершение области видимости работает и для локальных переменных.
Подсказки
^^^^^^^^^
Удобная подсказка отображается при вводе ``(`` после имени символа, если символ имеет список параметров. Анализатор тегов для типа файлов должен поддерживать разбор списков параметров. Подсказки также могут быть показаны с помощью `сочетания клавиш <#editor-keybindings>`_.
Когда имеется более одного подходящего символа, отображаются стрелки, которые можно щёлкнуть, чтобы перебрать все сигнатуры.
Пользовательские фрагменты (сниппеты)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Сниппеты — это небольшие строки или конструкции кода, которые можно заменить или дополнить до более сложной строки. Таким образом можно сэкономить много времени, набирая обычные строки и позволяя Geany делать работу за вас. Следует ли использовать завершение или замену сокращений, Geany считывает при запуске из специального конфигурационного файла ``snippets.conf``.
Например, если вы часто вводите в текст своё имя, можно создать такой сниппет::
[Default]
myname=Enrico Tröger
Всякий раз, как только вы наберёте ``myname`` , слово «myname» будет заменено на «Enrico Tröger». Клавиша ТАВ, вызывающая замену, может быть изменена в настройках клавишных команд (`Завершить фрагмент кода`).
**Пути**
Вы можете переопределить сниппеты по умолчанию с помощью файла пользователя ``snippets.conf``. Для этого воспользуйтесь командой *Инструменты->Файлы конфигурации->snippets.conf*. Также см. `Пути к файлам конфигурации`_.
Это действие добавляет параметры по умолчанию в файл пользователя, если такой файл не существует. В качестве альтернативы можно создать файл вручную, добавив только те параметры, которые вы хотите изменить. Все остальные будут считаны из системного файла сниппетов.
**Группы сниппетов**
Файл ``snippets.conf`` содержит разделы, определяющие общие сниппеты и те, которые доступны для определённых типов файлов.
Для всех типов файлов действуют разделы «По умолчанию» и «Специальные». «По умолчанию» содержит все сниппеты, которые доступны для каждого типа файла, а "Специальные" — применяемые только внутри других сниппетов. Таким образом, вы можете определить часто используемые части сниппетов и использовать специальный сниппет в качестве шаблона (подробнее см. в ``snippets.conf``).
Вы можете определить новый раздел для файлов определённого типа, например файлов «C++». Сниппеты этого раздела будут работать только в файлах заданного типа, причём при одинаковых именах они будут здесь приоритетны по сравнению со сниппетами раздела «По умолчанию».
**Управляющие последовательности**
Для определения сниппетов можно использовать несколько последовательностей символов, которые будут заменены при использовании сниппета:
================ =========================================================
\\n или %newline% Вставить новую строку (последовательность заменяется байтами,
фиксирующими конец строки: LF, CR/LF, или CR).
\\t или %ws% Сделать отступ. Последовательность заменяется в соответствии
с настройками установки отступов в редактируемом документе.
\\s Вставить пробел перед значением или после него (чтобы получить
в тексте 'key= value', надо вставить 'key=\\svalue')
%cursor% После завершения поместить курсор в эту позицию. Позиций может
быть несколько. Тогда с помощью клавишной команды
`Перемещать курсор во фрагменте` после вставки сниппета
можно перемещаться с одной на другую.
%...% Имя ключа вложенного сниппета для раздела «Специальные».
Если вы определили ключ «brace_open» в разделе «Специальные»,
вы можете использовать %brace_open% в любом другом сниппете.
================ =========================================================
Имена сниппетов не должны содержать пробелов, иначе они не будут работать корректно. Но помимо этого вы можете определить почти любую строку как сниппет и использовать её в Geany. Применение сниппетов не ограничено вводом типовых конструкций языков программирования наподобие ``if``, ``for``, ``switch``. Можно использовать эту возможность для любых целей.
**Маски шаблонов**
Начиная с версии Geany 0.15 в сниппетах можно использовать маски шаблонов, отмеченные в разделе `Маски шаблонов`_ как `пригодные в сниппетах`. Например, приведённый выше пример с именем автора можно улучшить так::
[Default]
myname=My name is {developer}
mysystem=My system: {command:uname -a}
Условное слово ``myname`` будет заменено на «My name is» с подстановкой имени разработчика ``developer``.
**Словообразующие символы**
Вы можете изменить способ, которым Geany распознаёт слово для завершения, то есть как распознаётся начало и конец слова, когда запрашивается завершение сниппета. Раздел «Специальные» может содержать ключ «wordchars», в котором перечислены все символы, которые может содержать строка, чтобы быть распознанной как слово для завершения. Оставьте его закомментированным, чтобы использовать символы по умолчанию, или определите его, чтобы добавить или удалить символы в соответствии с вашими потребностями.
Сочетания клавиш для сниппетов
``````````````````````````````
Обычно вы вводите имя сниппета и нажимаете Tab. Однако вы можете задать сочетания клавиш для сниппетов в группе *Сочетания клавиш* в файле ``snippets.conf``::
[Keybindings]
for=7
block_cursor=8
.. Примечание::
сочетания клавиш для сниппетов могут быть переопределены настраиваемыми сочетаниями клавиш Geany.
Вставка символов из набора Юникод
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Вы можете вставить кодовые точки Юникода, нажав Ctrl-Shift-u, и затем, всё ещё удерживая Ctrl-Shift, введите несколько шестнадцатеричных цифр, обозначающих кодовую точку для нужного символа и нажмите Enter или Return (всё ещё удерживая Ctrl-Shift). Если вы отпустите Ctrl-Shift до нажатия Enter или Return (или любого другого символа), вставка кода будет завершена, но набранный символ тоже будет введён. В случае Enter/Return, как и следовало ожидать, это новая строка.
В некоторых ранних версиях Geany вам может потребоваться сначала отменить привязку Ctrl-Shift-u в настройках `сочетаний клавиш`_, затем выбрать *Инструменты->Обновить настройки* или перезапустить Geany. Обратите внимание, что эта программа работает несколько иначе, чем другие GTK в том смысле, что вам нужно будет продолжать удерживать клавиши Ctrl и Shift во время ввода шестнадцатеричных цифр кодовой точки (и Enter или Return для завершения ввода кодовой точки).
Вставка значений цвета
^^^^^^^^^^^^^^^^^^^^^^
Вы можете вставить значение цвета, выбрав в меню *Инструменты->Выбор цвета*. Появится диалоговое окно для выбора нужного цвета. Если курсор находится внутри
значения цвета формата *#RRGGBB*, то после открытия диалогового окна будет показан этот цвет. При нажатии на кнопку *Применить* или *Выбрать* код выбранного цвета будет вставлен в формате *#RRGGBB*. Если текст выделен, то он будет заменён на код цвета при первом нажатии на *Применить* или *Выбрать*. Если текст не выделен, или при последующих щелчках код цвета будет вставлен в текущую позицию курсора.
Поиск, замена и переход
-----------------------
В этом разделе описаны команды поиска из меню «Поиск» и контекстного меню окна редактора:
* Поиск
* Поиск выделения
* Поиск использования
* Поиск в файлах
* Замена
* Перейти к определению символа
* Перейти к объявлению символа
* Перейти к строке
См. также настройки меню `Поиск`_.
Панель инструментов
^^^^^^^^^^^^^^^^^^^
На панели имеются два инструмента:
* Форма поиска
* Форма перехода к строке по номеру
Для перехода к этим инструментам имеются сочетания клавиш — см. `Команды переноса фокуса`_. Клавиша Esc возвращает курсор в окно редактора.
Форма поиска
````````````
Искать какой-либо текст проще всего с помощью формы на панели. Такой поиск нечувствителен к регистру. Нажатие Enter приведёт к повторному поиску, а нажатие Shift-Enter — к поиску в обратном направлении.
Поиск
^^^^^
Диалоговое окно поиска используется для поиска текста в одном или нескольких открытых документах.
.. image:: ./images/find_dialog.png
Настройка поиска
````````````````
Синтаксис для параметра *Использовать регулярные выражения* рассмотрен в разделе `Регулярные выражения`_.
.. Примечание::
для регулярных выражений предназначен параметр *Использовать escape-последовательности*.
Параметр *Использовать многострочный поиск* позволяет использовать многострочные регулярные выражения вместо однострочных. См. `Регулярные выражения`_ для получения более подробной информации о различиях между этими двумя режимами.
Параметр *Использовать escape-последовательности* преобразует любые экранированные символы в их эквивалент в формате UTF-8. Например, \\t будет преобразован в символ табуляции. Другими распознаваемыми символами являются: \\\\, \\n, \\r, \\uXXXX (символы Юникода).
Найти все
`````````
Чтобы найти все совпадения, нажмите «Найти все». В результате появится несколько вариантов:
* В документе
* В сеансе
* Пометить
«Найти все в документах» покажет список совпадающих строк в текущем документе на вкладке «Сообщения» окна сообщений. *Найти все в сеансе* делает то же самое для открытых документов.
«Отметить» выделит все совпадения в текущем документе с помощью цветной рамки. Эти маркеры можно удалить, выбрав команду «Удалить маркеры» из меню «Документ».
Выбор шрифта для полей ввода в диалоговом окне поиска
`````````````````````````````````````````````````````
Во всех диалоговых окнах, связанных с поиском, для полей ввода текста используется моноширинный шрифт, чтобы повысить удобочитаемость вводимого текста. Это удобно при вводе регулярных выражений, содержащих пробелы, точки и запятые, которые могут быть трудночитаемы при использовании пропорционального шрифта.
Если вы хотите изменить шрифт, это можно легко сделать с помощью следующего пользовательского CSS-сниппета, см. `Настройка внешнего вида Geany с помощью CSS GTK+ `_::
#GeanyDialogSearch GtkEntry /* GTK < 3.20 */,
#GeanyDialogSearch entry /* GTK >= 3.20 */ {
font: 8pt monospace;
}
Поиск выделения
^^^^^^^^^^^^^^^
Команды *Найти следующее/предыдущее выделение* выполняют поиск текущего выделенного текста. Если ничего не выделено, по умолчанию используется текущее слово. Это можно настроить с помощью параметра *find_selection_type* — см. `Разные опции`_.
===== =============================================
Значение Действие параметра *find_selection_type*
===== =============================================
0 Использовать текущее слово (по умолчанию).
1 Сначала поиск выделения X, затем текущего слова.
2 Повторить последний поиск.
===== =============================================
Поиск использования
^^^^^^^^^^^^^^^^^^^
*Найти использование* охватывает все открытые файлы. Он подобен варианту *Найти все в сеансе* в диалоговом окне поиска.
При наличии выделения оно используется в качестве искомого текста; в противном случае используется текущее слово. Таковым является слово, ближайшее к курсору редактора, либо слово, по которому был произведён щелчок правой кнопкой мыши для вызова контекстного меню. Результаты поиска выводятся в виде таблицы в окне сообщений.
.. Примечание::
вы также можете использовать команду «Найти использование» для элементов списка символов из контекстного меню.
Поиск в файлах
^^^^^^^^^^^^^^
*Найти в файлах* — это более мощная функция, чем *Найти использование*, которая ищет все файлы в определённом каталоге с помощью утилиты Grep. В окне настройки предпочтений должен быть корректно указан путь к системной утилите Grep. Рекомендуется использовать GNU Grep (см. примечание ниже).
.. image:: ./images/find_in_files_dialog.png
В поле *Поиск* изначально задаётся текущее слово (в зависимости от настроек меню `Поиск`_).
Параметр *Файлы* позволяет выбрать, какие файлы будут включены в поиск, в зависимости от режима:
Все
Поиск во всех файлах;
Проект
Использовать шаблоны текущего проекта, см. `Свойства проекта`_;
Указать
Использовать пользовательские шаблоны.
Как проектные, так и пользовательские шаблоны используют синтаксис типа glob, и каждый шаблон разделён пробелом. Чтобы найти все файлы ``.c`` and ``.h``, используйте: ``*.c *.h``. Обратите внимание, что пустой список шаблонов выполняет поиск во всех файлах.
Для поля *Каталог* изначально указан каталог текущего документа, если только это поле уже не было отредактировано и текущий документ не изменился. В противном случае каталог текущего документа добавляется в выпадающем списке. Это можно отключить — см. настройки меню `Поиск`_.
Поле *Кодировка* может использоваться для указания кодировки файлов для поиска. Введённый текст поиска преобразуется в выбранную кодировку, а результаты поиска преобразуются обратно в UTF-8.
Поле *Дополнительные опции* используется для передачи любых дополнительных аргументов утилите Grep.
.. Примечание::
параметр *Файлы* использует ``--include=`` при рекурсивном поиске, *Рекурсивно в подкаталогах* использует ``-r``; оба параметра являются опциями GNU Grep и могут не работать с другими реализациями Grep.
Фильтрование результатов при работе с системами контроля версий
```````````````````````````````````````````````````````````````
При использовании опции *Рекурсивно в подкаталогах* с каталогом, находящимся под контролем версий, можно задать поле *Дополнительные опции* для фильтрации файлов контроля версий.
Если у вас есть GNU Grep >= 2.5.2, вы можете использовать аргумент ``--exclude-dir`` для фильтрации CVS и скрытых каталогов наподобие ``.svn``.
Пример: ``--exclude-dir=.svn --exclude-dir=CVS``
Если у вас более старая версия Grep, можно попытаться использовать флаг ``--exclude`` для фильтрации имён файлов.
Пример для SVN: ``--exclude=*.svn-base``
Аргумент --exclude учитывает только часть имени файла, а не путь.
Замена
^^^^^^
Диалоговое окно замены используется для замены текста в одном или нескольких открытых документах.
.. image:: ./images/replace_dialog.png
Диалоговое окно замены имеет те же параметры для соответствующего текста, что и диалоговое окно поиска. См. раздел `Настройка поиска`_.
Опция *Использовать регулярные выражения* позволяет использовать регулярные выражения в строке поиска и обратные ссылки в замещающем тексте — см. запись для '\\n' в разделе `Регулярные выражения`_.
Заменить все
````````````
Чтобы заменить все совпадения, нажмите *Заменить все*. Появится несколько вариантов:
* В документе
* В сеансе
* В выделенном
*Заменить все в документе* заменит весь соответствующий текст в текущем документе. *Заменить все в сеансе* сделает то же самое для всех открытых документов. *Заменить все в выделенном* заменит весь соответствующий текст в текущем выделении текущего документа.
Переход к определению символа
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Если текущее слово является именем символа (например, функции) и открыт файл, содержащий соответствующее определение, команда вызовет переход к строке начала определения в этом файле. Текущим считается слово, ближайшее к курсору редактора, либо слово, под которым был произведён щелчок правой кнопкой мыши для вызова контекстного меню.
Если имеется больше символов с одинаковым именем, к которым можно выполнить переход, появится всплывающее окно со списком всех вхождений. После выбора символа
из списка Geany переходит к соответствующему месту. Geany пытается предложить ближайший символ (символ из текущего файла, других открытых документов или текущего диалога) в качестве наилучшего кандидата для перехода и помещает этот символ в начале списка, выделенного жирным шрифтом.
.. Примечание::
если соответствующий символ находится в текущей строке, Geany сначала будет искать объявление символа, так как это более целесообразно. Аналогично команде *Перейти к объявлению символа* в этом случае тоже будет искать определение символа.
Переход к объявлению символа
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Аналогично команде *Перейти к определению символа*, но для прямого объявления, такого как прототип функции языка C или объявление ``extern``, а не тело функции.
Переход к строке
^^^^^^^^^^^^^^^^
Переход к строке с заданным номером в текущем файле.
Если заданное значение начинается с плюса или минуса, то оно будет интерпретироваться как смещение от текущей строки.
Регулярные выражения
^^^^^^^^^^^^^^^^^^^^
Поставив в диалоговом окне поиска и замены отметку *Использовать регулярные выражения*, можно использовать регулярные выражения (см. `Настройка поиска`_). Синтаксис выражений совместим с Perl. Основной синтаксис приведён в таблице ниже. Для получения более подробной информации см. https://www.geany.org/manual/gtk/glib/glib-regex-syntax.html.
По умолчанию регулярные выражения сопоставляются построчно. Если вас интересуют многострочные регулярные выражения, сопоставляемые со всего буфера сразу, см. раздел `Многострочные регулярные выражения`_ ниже.
.. Примечание::
1. Параметр диалогового окна *Использовать escape-последовательности* всегда применяется к регулярным
выражениям.
2. Поиск в обратном направлении с помощью регулярных выражений не поддерживается.
3. Параметр диалогового окна *Использовать многострочный поиск* позволяет выбрать однострочный или
многострочный поиск.
**В регулярные выражения могут включаться следующие интерпретируемые символьные последовательности:**
======= =============================================================================================
. Любой символ.
( Начало области разметки вхождений.
) Конец области разметки вхождений.
\\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-].
Примеры::
[]|-] поиск 3 символов: ], |, -
[]-|] поиск символов от ] до |
[a-z] поиск любых строчных букв
[^]-] поиск любого символа кроме - и ]
[^A-Z] поиск любого символа кроме прописных букв
[a-zA-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`_.
Многострочные регулярные выражения
``````````````````````````````````
.. Примечание::
параметр *Использовать многострочный поиск* позволяет использовать многострочные регулярные выражения.
Многострочные регулярные выражения работают так же, как и однострочные, но поиск может охватывать несколько строк.
Хотя синтаксис одинаков, существует несколько практических отличий:
======= ============================================================
. Поиск любого символа, кроме новых строк. Это поведение можно
изменить на поиск новых строк с помощью опции (?s), см.
https://www.geany.org/manual/gtk/glib/glib-regex-syntax.html#idp5671632
[^...] Отрицательный диапазон (см. выше) *будет* включать в поиск новые строки,
если они явно не указаны в этом диапазоне. Например, диапазон
[^a-z] будет включать в поиск новые строки, а диапазон [^a-z\\r\\n] — нет.
Хотя это ожидаемое поведение, оно может привести к сложным
проблемам, если не думать об этом при написании выражения.
======= ============================================================
Меню «Вид»
----------
Меню «Вид» позволяет показывать или скрывать различные элементы главного окна, а также предоставляет различные опции редактора, связанные с отображением.
Диалоговое окно цветовых схем
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Диалоговое окно «Цветовые схемы» доступно через пункт меню *Вид->Цветовые схемы...*. В нём указаны различные цветовые схемы для стилей подсветки редактора, включая первую схему по умолчанию. Другие элементы доступны в зависимости от того, какие файлы цветовых схем были найдены Geany при запуске.
Файлы цветовых схем считываются из `Путей к файлам конфигурации`_ в подкаталоге ``colorschemes``. Они должны иметь расширение ``.conf``. Цветовая схема по умолчанию считывается из файла ``filetypes.common``.
`Раздел [named_styles]`_ и `раздел [named_colors]`_ такие же, как и для ``filetypes.common``.
Раздел ``[theme_info]`` может содержать информацию о теме. Ключи ``имя`` и ``описание`` читаются для установки текста пункта меню и всплывающей подсказки, соответственно. Эти ключи могут иметь переводы, например.::
key=Hello
key[de]=Hallo
key[fr_FR]=Bonjour
Файлы символов и тегов
----------------------
При открытии файлы поддерживаемых типов анализируются для извлечения информации о символах (они же «символы рабочего пространства»). Geany также может автоматически загружать внешние файлы, содержащие информацию о символах (они же "файлы глобальных тегов") при запуске, или вручную, используя *Инструменты --> Загрузить файл тегов*.
В Geany применён собственный формат для файла тегов, подобный ``ctags``, однако несовместимый с ним. Использование Geany для генерации файла глобальных тегов рассмотрено ниже.
Символы рабочего пространства
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Анализ символов каждого документа производится всякий раз при его загрузке, сохранении или изменении (см. настройку *Частота обновления списка символов* в разделе `Настройки завершений ввода`_). Они отображаются в списке символов на боковой панели. Эти символы также используются для автозавершения и подсказок для всех открытых в текущем сеансе документов с тем же типом файла.
Команды *Перейти к символу* можно использовать со всеми символами рабочего пространства. См. `Переход к определению символа`_.
Файлы глобальных тегов
^^^^^^^^^^^^^^^^^^^^^^
Файлы глобальных тегов обеспечивают символы для автозавершения и подсказок без необходимости открывать исходные файлы, содержащие эти символы. Это удобно для библиотечных API, поскольку файл тегов нужно обновлять только при обновлении библиотеки.
Загрузить пользовательский файл глобальных тегов можно двумя способами:
* С помощью команды *Загрузить файл тегов* в меню Инструменты.
* Перемещением или символьной ссылкой файлов тегов на подкаталог ``tags`` одного из `путей к файлу конфигурации`_ перед запуском Geany.
Вы можете загрузить эти файлы или сгенерировать свои собственные. Они имеют формат::
name.lang_ext.tags
*lang_ext* — это одно из расширений, установленное для типа файла, связанного с анализатором тегов. Подробнее см. в разделе `Расширения типов файлов`_.
Файлы глобальных тегов, используемые по умолчанию
`````````````````````````````````````````````````
Некоторые файлы глобальных тегов распространяются вместе с Geany и загружаются автоматически при первом использовании соответствующего типа файла. В настоящее время такие файлы имеются для следующих языков:
* C
* Pascal
* PHP
* HTML — символ &; завершение, e.g. для амперсанда, копирайта и т. д.
* LaTeX
* Python
Формат файлов глобальных тегов
``````````````````````````````
Файлы глобальных тегов могут иметь три различных формата:
* CTags
* Pipe-separated (Разделение вертикальной чертой)
* Tagmanager (Диспетчер тегов)
Файлы тегов, использующие формат CTags, следует оставлять без изменений в форме, создаваемой инструментом командной строки ctags.
В формате pipe-separated или tagmanager первая строка файлов глобальных тегов должна быть комментарием, начинающимся с ``#``, за которым следует пробел и ``format=pipe`` или ``format=tagmanager``, соответственно; они чувствительны к регистру. Это помогает Geany правильно считать файл. Если такой строки нет, Geany пытается определить используемый формат, но при этом возможна ошибка.
Формат CTags
************
Это рекомендуемый формат файла тегов, создаваемый инструментом командной строки ctags из проекта universal-ctags (https://github.com/universal-ctags/ctags). Этот формат совместим с форматом, исторически используемым в Vi.
Формат описан на сайте at https://ctags.sourceforge.net/FORMAT, но полный список существующих расширений можно найти в universal-ctags. Однако обратите внимание, что Geany может поддерживать только подмножество существующих расширений.
Формат Pipe-separated
*********************
Формат Pipe-separated проще для чтения и записи. В каждой строке находится один символ, а различные атрибуты символов разделяются вертикальной чертой (``|``). Строка выглядит так::
basename|string|(string path [, string suffix])|
| Первое поле — имя символа (обычно имя функции).
| Второе поле — тип возвращаемого значения.
| Третье поле — список аргументов для этого символа.
| Четвёртое поле — для описания. В данном случае не используется, при этом должно быть оставлено пустым.
За исключением первого поля (имени символа), остальные поля могут оставаться пустыми, но разделяющая их черта должна присутствовать.
Вы можете легко записать свои собственные файлы глобальных тегов, используя этот формат. Просто сохраните их в каталоге тегов, как описано выше в разделе `Файлы глобальных тегов`_.
Формат Tagmanager
*****************
Формат Tagmanager немного сложнее и используется для файлов, создаваемых командой ``geany -g``. Каждый символ помещается на одной строке. Различные атрибуты (возвращаемое значение или список аргументов) разделяются различными символами, указывающими на тип следующего аргумента.
Генерация файла глобальных тегов
````````````````````````````````
Генерация файлов тегов с помощью ctags
**************************************
В настоящее время это рекомендуемый способ генерации файлов тегов. В отличие от нижеуказанных способов, в которых используется двоичный файл Geany для генерации, этот способ используется для создания файлов тегов, совместимых со всеми выпусками Geany, начиная с Geany 2.0.
Geany поддерживает загрузку файлов тегов, созданных с помощью инструмента командной строки ``ctags`` из проекта universal-ctags (https://github.com/universal-ctags/ctags). Несмотря на то, что Geany должна работать с любым файлом ctags, рекомендуется использовать определённые поля, чтобы предоставить Geany дополнительную информацию. Рекомендуемые поля — ``EfiklsZSt``, поэтому для генерации символов для всех источников в каталоге my_project можно использовать::
ctags -n --fields=EfiklsZSt -R -o my_project.c.tags my_project
Инструменту ``ctags`` могут быть заданы дополнительные параметры, например, чтобы ограничивать генерируемый файл тегов только для некоторых языков, использовать определённые типы тегов и т.д.
Обратите внимание, что поле ``l`` (указывающее язык программирования) включено, язык всех символов устанавливается исходя из значения этого поля, а не языка, указанного в расширении файла тегов. Однако всё равно необходимо называть файл в соответствии с теми же правилами, независимо от того, используется ли поле ``l``.
Генерация файлов тегов с помощью Geany
**************************************
После разбора ряда исходных файлов вы можете создать собственный файл глобальных тегов. Для этого служит команда::
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 ignore.tags`_.
Для файлов тегов C/C++ по умолчанию требуется gcc, поскольку заголовочные файлы обрабатываются препроцессором для включения других заголовков, с которыми они связаны. Если этого не требуется, используйте опцию ``-P``, как описано выше.
Переменная окружения 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 и заголовочных файлов с любой нужной библиотекой.
Генерация файлов тегов в Windows
********************************
Работает так же, как и на других платформах::
"c:\program files\geany\bin\geany" -g c:\mytags.php.tags c:\code\somefile.php
Игнорирование тегов
^^^^^^^^^^^^^^^^^^^
Вы можете игнорировать определённые символы для языков на основе C, если они могут привести к неправильному разбору кода. Используйте команду *Инструменты->Файлы конфигурации->ignore.tags*, чтобы открыть пользовательский файл ``ignore.tags``. См. `Пути к файлам конфигурации`_.
Укажите все имена символов, которые следует игнорировать в этом файле, разделяя их пробелами и/или новыми строками.
Пример::
G_GNUC_NULL_TERMINATED
G_GNUC_PRINTF
G_GNUC_WARN_UNUSED_RESULT
BAR
Это действие проигнорирует вышеупомянутые макросы и правильно определит 'Foo' как тип вместо 'BAR' в следующем коде:
``struct Foo BAR { int i; };``
Кроме того, можно задать определение макроса аналогично опции '-D' gcc:
=
Определяет препроцессор C . Это эмулирует поведение
соответствующей опции gcc. Поддерживаются все типы макросов,
включая те, которые имеют параметры и переменное число аргументов.
Также поддерживаются преобразование в строку, слияние токенов и расширение рекурсивных макросов.
Более подробную информацию см. на странице руководства Universal Ctags.
Настройка предпочтений
----------------------
Для настройки Geany служит диалоговое окно, вызываемое командой Правка --> Настройки. Внесённые изменения подтверждаются нажатием кнопок «Применить» или «OK» и сохраняются между сеансами работы. Большинство опций настройки имеют пояснения; подсказка появляется при наведении курсора мыши.
Настройки вида, доступные в меню «Вид», также сохраняются при завершении работы с Geany, а вот настройки в меню «Документ» действуют только для работы с текущем документом и в следующем сеансе работы будут заменены на используемые по умолчанию.
.. Примечание::
в следующих разделах сначала приводятся иллюстрации, а за ними соответствующие пояснения.
Общие настройки при запуске
^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_gen_startup.png
Запуск
``````
Загружать файлы из последнего сеанса
Загружать те же файлы, которые открывались в предыдущем сеансе работы с Geany.
Загружать виртуальный терминал
Загружать библиотеку поддержки виртуального терминала, который будет показан в окне сообщений.
Включить поддержку модулей
Разрешить использование модулей.
Выход
`````
Сохранять позицию и размеры окна
Сохранять текущее положение и размер главного окна, чтобы в следующий раз открыть Geany в том же месте.
Подтверждение выхода
Вывод диалогового окна для подтверждения того, что вы действительно хотите выйти из Geany.
Пути
````
Рабочий каталог при запуске
Каталог, который после запуска будет открываться при операциях загрузки и сохранения файлов. Требуется указывать абсолютный путь.
Файлы проекта
Путь к каталогу, который будет текущим для открытия файлов проектов.
Дополнительный путь для модулей
По умолчанию Geany ищет модули в общем каталоге инсталляций и в каталоге конфигураций — см. `Модули`_. Дополнительно будет выполнен поиск указанного здесь пути. Указывать ещё один каталог, в котором могут находиться модули, обычно необходимости нет, но это может понадобиться, если компьютером пользуется несколько человек. Добавочный каталог будет общим, а установленные в нём модули доступны всем пользователям. Оставьте пустым, чтобы не задавать дополнительный путь поиска.
Различные общие настройки
^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_gen_misc.png
Разное
``````
Сигнал об ошибках или по окончании сборки
Звуковой сигнал при завершении компиляции или в случае ошибки.
Перейти к дежурным сообщениям при появлении новых
При появлении нового сообщения о статусе автоматически переключаться на окно сообщений.
Подавлять вывод дежурных сообщений в строке состояния
Не показывать сообщения в строке состояния, отображать их только в окне сообщений.
.. Совет::
можно использовать сочетание клавиш *Перейти к редактору* — при этом обновляется статистика в строке состояния. См. `Команды управления фокусом`_.
Автоматический фокус для виджетов (фокус следует за мышью)
Автоматически переносить фокус на виджет, над которым находится курсор мыши. Работает для главного окна редактора, заметок, поиска на панели инструментов, полей перехода к строке и терминала.
Поиск
`````
Всегда начинать поиск сначала
Всегда начинать поиск с начала документа.
Скрывать диалоговое окно поиска
Скрывать окно поиска после нажатия «Найти следующее/предыдущее».
Использовать слово под курсором для диалоговых окон поиска
При открытии диалогов поиска, замены и поиска в файлах использовать как искомый контекст слово, в котором находился курсор. Если эта опция не выбрана, при открытии диалогового окна в нём будет показано слово, которое искали в прошлый раз.
Использовать каталог текущего файла для «Найти в файлах»
При открытии диалогового окна «Найти в файлах» выбирать в качестве каталога для поиска тот, в котором находится редактируемый файл. Если опция не выбрана, будет показан каталог, в котором проводился предыдущий поиск. Подробнее см. `Найти в файлах`_.
Проекты
```````
Использовать файлы сеансов для проектов
При закрытии проектов сохранять текущий сеанс работы. Вы сможете продолжать различные сеансы работы над проектами, ранее открывавшиеся файлы будут открыты автоматически.
Хранить файл проекта внутри основного каталога проекта
При создании новых проектов по умолчанию путь к файлу проекта будет включать путь к основному каталогу проектов. Если опция не выбрана, по умолчанию путь к файлу проекта будет на один уровень выше базового. Так или иначе, можно задать конечный путь к файлу проекта в диалоговом окне *Новый проект*. Эта опция предлагает наиболее распространённые значения по умолчанию для удобства.
Настройки интерфейса
^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_interface_interface.png
Боковая панель
``````````````
Показывать боковую панель
Определяет, показывать ли боковую панель.
Отображать список символов
Показывать список функций, переменных и другой информации о редактируемом документе.
Показывать список документов
Показывать список всех открытых документов, с помощью которого удобно переходить от одного документа к другому (см. `Переключение между документами`_) и выполнять общие операции сохранения, закрытия, повторной загрузки.
Положение
Выбор положения боковой панели: слева или справа.
Окно сообщений
``````````````
Положение
Определяет, располагать ли окно сообщений внизу или справа от окна редактора.
Шрифты
``````
Редактор
Выбор шрифта для отображения документов в редакторе.
Список символов
Выбор шрифта для списка символов на боковой панели.
Окно сообщений
Выбор шрифта для окна сообщений.
Разное
``````
Показывать строку состояния
Показывать строку состояния в нижней части главного окна. В ней отображается информация о редактируемом файле (текущая строка и позиция, кодировка, тип файла и др.).
Настройки вкладок редактора текста
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_interface_notebook.png
Вкладки редактора текста
````````````````````````
Показывать вкладки редактора
Показывать в редакторе вкладки документов (позволяют выбирать документ щелчком мыши, не используя меню «Документ»).
Показывать кнопки закрытия
Показывать на вкладках кнопку закрытия документа.
Расположение новых вкладок
Выбор места для новых вкладок при создании документов: слева или справа.
За текущей
Помещает вкладку после вкладки текущего документа, а не с краю.
Двойной щелчок скрывает все дополнительные окна
При двойном щелчке по полосе закладок скрывает дополнительные элементы управления (как команда Вид->Показать/скрыть все панели).
Длина подписи вкладки
Если имена файлов длинные, задайте количество символов, которые должны быть видны на подписи каждой вкладки.
Положение вкладок
`````````````````
Редактор
Выбор размещения вкладок редактора (справа, слева, вверху или внизу окна).
Боковая панель
Выбор размещения вкладок боковой панели.
Окно сообщений
Выбор размещения вкладок окна сообщений.
Настройки панели инструментов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Влияет на главную панель инструментов под строкой меню.
.. image:: ./images/pref_dialog_interface_toolbar.png
Панель инструментов
```````````````````
Показывать панель инструментов
Установить, показывать ли панель инструментов.
Добавить панель инструментов в меню
Объединить панель инструментов с меню, а не выводить её ниже. Опция экономит рабочее пространство по вертикали.
Настроить панель инструментов
См. `Настройка панели инструментов`_.
Вид значков
```````````
Стиль панели инструментов
Выбор варианта показа значков: значки с текстом, одни значки или только текст. Вариант «Системные настройки» выбирает стиль, заданный в GTK.
Размер значков
Размер значков: крупные, мелкие, очень мелкие. Вариант «Системные настройки» выбирает размер, заданный в GTK.
Настройки редактирования
^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_edit_features.png
Возможности
```````````
Перенос строк
Переносить длинные строки, отображая как несколько строк по ширине окна.
.. _smart_home_key:
«Умная» клавиша Home
При включённой опции первое нажатие клавиши Home перемещает крусор на первый непробельный символ текущей строки, повторное нажатие — на начало строки.
Отключить Drag&Drop
Отключение перетаскивания выделенного фрагмента мышью.
Сворачивание блоков кода
Позволяет сворачивать группы строк для более удобной навигации/редактирования.
Сворачивать/разворачивать все вложенные элементы
При иерархическом сворачивании скрывать или раскрывать все вложенные уровни вместе с верхним.
Использовать индикаторы для отображения ошибок компиляции
Подчёркивание красным строк с ошибками компиляции.
Новая строка убирает лишние пробелы
При завершении строки нажатием Enter/Return удалять концевые пробелы, если они есть. См. также `Удалять лишние пробелы`_. Обратите внимание, что автоматический отступ вычисляется до удаления пробелов, поэтому, хотя эта настройка и убирает пустую строку, она не устанавливает отступ следующей строки на ноль.
Обрезать текст по столбцу
В заданной позиции автоматически обрывать строку и начинать новую.
Маркер переключения комментариев
Помечать строки с комментариями в исходных текстах.
Настройки отступов
^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_edit_indentation.png
Отступы
```````
Подробности см. в разделе `Отступы`_.
Ширина
Ширина отступа в пробелах. По умолчанию 4.
Распознать ширину по содержимому файла
Попытаться установить характеристики отступов по образцу открытого файла.
Тип
Как создавать отступы:
* Табуляция
* Пробелы
* Табуляция и пробелы, в зависимости от того, сколько отступов в строке
Вариант Tabs and Spaces в некоторых редакторах называется Soft tab support — «мягкая» табуляция.
Распознать тип по содержимому файла
Попытаться установить характеристики отступов по образцу открытого файла.
Тип автоотступа
Способ автоматической установки отступа новой строки при нажатии Enter.
Базовый
Отступ как в предыдущей строке.
Текущие символы
По текущему символу: отступ ставится в зависимости от типа файла и таких знаков как, например,
фигурные скобки для языка С и двоеточия для Python.
Совмещать скобки
Аналогично «Текущие символы», но, например, для C-подобных языков закрывающая скобка } ставится
с таким же отступом как открывающая.
Отступ при помощи клавиши Tab
Если опция выбрана, нажатие клавиши Tab устанавливает отступ текущей строки или выделения, а
клавиш Shift-Tab — удаляет. Собственно, при этом клавиша Tab просто вставляет символ
табуляции (что может отличаться от установки отступов по некоему способу).
.. Примечание::
для установки и удаления отступов также можно использовать настраиваемые клавишные сочетания.
Действие клавиши Tab может быть различным в зависимости от контекста операции, например,
при вставке сниппета.
Клавиша Backspace уменьшает отступ
Если установлено, нажатие клавиши Backspace при нахождении курсора на ведущем пробеле
уменьшит отступ, если только типом отступа не является табуляция. В противном случае
клавиша Backspace удалит символ перед курсором.
Настройки завершений ввода
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_edit_completions.png
Завершения
``````````
Автозавершение фрагментов кода
Набор предварительно определённых слов после табуляции будет приводить к замене этих слов текстовым фрагментом — сниппетом. См. `Пользовательские фрагменты (сниппеты)`_.
Автозавершение тегов XML/HTML
При вводе тега XML/HTML автоматически добавлять закрывающий тег.
Автоматическое продолжение многострочных комментариев
Автоматически продолжать многострочные комментарии в таких языках, как C, C++ и Java при вставке новой строки внутри комментария. Если выбрана эта опция, Geany будет вставлять ``*`` в каждую новую строку внутри комментария, например, при нажатии Return (Enter) в конце строки кода C::
/*
* Это многострочный комментарий, нажмите клавишу
Geany начнёт новую строку так::
*
и с тем же отступом, что у предыдущей строки. И будет делать это до тех пор, пока в очередной строке не окажется код закрытия комментария ``*/``. Если предыдущая строка не имеет префикс ``*``, ``*`` не будет добавлен к новой строке.
Автозавершение символов
По первым введённым символам будут предлагаться подходящие варианты.
Автозавершение всех слов в документе
Когда вы начинаете вводить слово, Geany будет искать по всему документу слова, начинающиеся с набранной части, чтобы завершить её, предполагая, что нет имён символов, которые можно было бы показать.
Отбрасывать окончания слов при завершении
После завершения ввода выбором одного из предложенных вариантов удалять все символы правее курсора.
Количество символов, необходимых для автозавершения
Число первых символов, после набора которых будут предлагаться варианты завершения слова.
Количество строк в списке завершения
Количество строк, при котором будет выводиться окно автозавершения.
Максимальное количество предложений для имени символа
Максимальное число предлагаемых вариантов в списке автозавершения.
Частота обновлений списка символов
Минимальная задержка (в миллисекундах) между двумя обновлениями списка символов.
Этот параметр определяет, как часто обновляется список символов для текущего документа. Чем меньше задержка, тем актуальнее список символов (а также завершений); однако перестроение списка символов влияет на производительность, особенно при работе с большими файлами.
Значение по умолчанию — 250 мс, что означает, что список символов будет обновляться не более четырёх раз в секунду, даже если документ меняется постоянно.
Значение 0 отключает автоматическое обновление, поэтому список символов будет обновляться только при сохранении документа.
Автоматическое закрытие скобок и кавычек
````````````````````````````````````````
Geany может при вводе открывающей скобки или кавычки автоматически вставлять закрывающую. Например, если вы ввели ``(``, рядом автоматически появится ``)``. Следующие опции определяют, с какими символами будет работать эта функция.
Скобки ( )
Автозакрытие круглых скобок
Фигурные скобки { }
Автозакрытие фигурных скобок
Квадратные скобки [ ]
Автозакрытие квадратных скобок
Одинарные кавычки ' '
Автозакрытие одинарных кавычек
Двойные кавычки " "
Автозакрытие двойных кавычек
Настройка визуализации
^^^^^^^^^^^^^^^^^^^^^^
Это диалоговое окно используется для настройки визуальных элементов, отображаемых в окне редактора.
.. image:: ./images/pref_dialog_edit_display.png
Рабочее окно
````````````
Обратить цвета подсветки синтаксиса
При выделении инвертировать цвета (например, показывать белый цвет на чёрном фоне).
Показывать индикаторы отступа
Показать вертикальные линии по размеру отступов, что поможет аккуратному вводу вручную следующих отступов.
Показывать пробелы
Знаки табуляции будут показаны стрелочками «-->», а пробелы — точками.
Показывать окончания строк
Показывать символ везде, где есть возврат каретки или перевод строки.
Показывать только окончания строк не по умолчанию
Показывать символы окончания строки только в том случае, если они отличаются от символа окончания строки по умолчанию.
Показывать номера строк
Показывать на полях номера строк.
Отступ для маркера строк
Показать или скрыть небольшое поле справа от номеров строк, которое используется для маркировки строк.
Останавливать прокрутку на последней строке
При включении этой опции Geany останавливает прокрутку при достижении последней строки документа. В противном случае вы можете прокрутить ещё одну страницу, даже если в ней нет реальных строк.
Строки, видимые вокруг курсора
Количество строк между курсором и верхним и нижним краями представления. Это позволяет всегда отображать некоторые строки вокруг курсора. Если отключена остановка прокрутки на последней строке, курсор никогда не достигнет нижнего края, если это значение больше 0.
Маркер длинных строк
````````````````````
Помогает выделить слишком длинные строки или подсказывает пользователю, когда следует разбить строку.
Тип
Строка
Тонкая вертикальная линия в заданной позиции по длине строки.
Фон
Изменить цвет фона символов после заданной позиции столбца на цвет, заданный ниже. (Этот параметр рекомендуется использовать вместо параметра *Строка*, если вы используете пропорциональные шрифты).
Отключено
Отключить маркировку длинных строк.
Столбец
Введите число, указывающее ограничение длины строки в знакоместах (позицию).
Цвет
Цвет для отметки длинных строк.
Виртуальные пробелы
```````````````````
Виртуальный пробел — это пустое пространство на экране после конца строки. Можно разрешить перемещать в эту область курсор, но ни пробелы, ни какие-либо другие символы туда при этом не вводятся до тех пор, пока с клавиатуры или командой вставки не будет введён реальный текст.
Отключено
Не показывать виртуальные пробелы
Только для выделения столбцом
Разрешать перемещение курсора за конец строки только в пределах прямоугольного выделения
Всегда
Всегда разрешать перемещение курсора за конец строки
История изменений
`````````````````
Функция *история изменений* позволяет отображать изменённый текст в поле для маркеров или подчёркивать его. По умолчанию функция *история изменений* отключена.
Вновь добавленные, изменённые и удалённые строки или слова выделяются, что позволяет легко отслеживать изменения в открытом документе. Изменения могут быть показаны в виде вертикальных полос на поле для маркеров и/или в виде подчёркиваний непосредственно в тексте.
.. Примечание::
эта функция может занимать умеренный объём памяти, особенно если в документе много изменений.
Кроме того, информация об изменениях не сохраняется при повторном открытии документа — все маркеры изменений будут потеряны.
.. image:: ./images/edit_change_history.png
На изображении показаны визуальные эффекты по умолчанию:
* вставленные символы отображаются с цветными подчёркиваниями
* места, где были удалены символы, показаны маленькими треугольниками
* в поле отображается блок, показывающий общее состояние строки, с приоритетом более значимых изменённых состояний
* состояния: изменено (оранжевый), сохранено (зелёный), сохранено и возвращено к изменённому (зелёно-жёлтый) и
сохранено и возвращено к исходному (голубой).
Показывать в поле для маркеров
Изменения показываются в поле для маркеров в виде вертикальных черт
Отображать в виде индикаторов подчёркивания
Изменения показываются в виде подчёркиваний непосредственно в тексте
Настройки работы с файлами
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_files.png
Новые файлы
```````````
Открывать новые документы из командной строки
Создавать новые документы при указании имён ещё не существующих файлов в командной строке запуска Geany.
Кодировка по умолчанию (для новых файлов)
Кодировка, применяемая по умолчанию к новым файлам.
Кодировка по умолчанию (для существующих файлов)
Выбор кодировки, используемой при открытии существующих файлов. Если установлено значение кроме *Распознать по содержимому*, все файлы будут открываться с указанной кодировкой, вместо того, чтобы автоматически определять её. Используйте определённую кодировку, когда Geany не может определить правильную.
Символы конца строки по умолчанию
Символы конца строки, которые должны использоваться для новых файлов. В системах Windows обычно используется CR/LF, которые являются обычными символами для обозначения разрыва строки. В Unix-подобных системах по умолчанию используется LF, а в системах MAC — CR.
Сохранение файлов
`````````````````
Выполняйте операции форматирования при сохранении документа. Все эти операции можно отменить с помощью команды «Отменить».
Следить за наличием новой строки в конце файла
Если в конце документа нет пустой строки, она будет добавлена.
Следить за единообразием переносов строк
Символы новой строки перед сохранением всегда будут преобразовываться в единый формат, что позволяет избежать смешивания разных типов символов конца строки в одном файле.
.. _Удалить лишние пробелы пробелы в конце строк:
Убирать лишние пробелы и табуляции
Убирать лишние пробелы и табуляции в конце строк.
.. Примечание::
это не относится к документам Diff, например, файлам исправлений.
Заменить табуляции пробелами
Заменить знаки табуляции соответствующим числом пробелов.
.. Примечание::
лучше сразу использовать для создания отступов пробелы — см. `Отступы`_.
Разное
``````
Длина списка недавних файлов
Количество файлов, сохраняемых в списке недавно открытых файлов.
Период проверки диска
Периодичность проверки на изменение файлов на диске (в секундах). Нулевое значение отключает проверку.
.. Примечание::
такая проверка проводится только для локальных файлов. Удалённые файлы
не проверяются из-за возможных проблем с производительностью
(файлы в ``~/.gvfs/`` считаются удалёнными).
Настройки утилит
^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_tools.png
Пути к утилитам
```````````````
Терминал
Команда для выполнения скрипта в терминале. Встречающиеся в команде символы %c заменяются именем выполняемого скрипта, см. `Эмуляторы терминала`_.
Браузер
Расположение исполняемого файла вашего веб-браузера.
Утилита grep
Расположение исполняемого файла grep.
.. Примечание::
пользователям Windows рекомендуется использовать
grep.exe из проекта UnxUtils (https://sourceforge.net/projects/unxutils).
grep.exe проекта Mingw в настоящее время может не работать с Geany.
Команды
```````
Контекстное действие
Здесь можно записать команду, параметром которой послужит текущее слово, представляемое в командной строке как «%s».
Параметры шаблонов
^^^^^^^^^^^^^^^^^^
См. `Шаблоны`_.
Эти данные используются в качестве метаданных для вставки в документ различных шаблонов текста, например, заголовка файла. Необходимо установить только те поля, которые вы хотите использовать в файлах шаблонов.
.. image:: ./images/pref_dialog_templ.png
Данные шаблонов
```````````````
См. `Метаданные шаблонов`_.
Разработчик
Имя разработчика, создающего файлы.
Инициалы
Инициалы имени разработчика.
Электронная почта
Адрес электронной почты разработчика.
.. Примечание::
можно добавить разметку против спама, например «namesiteext».
Компания
Компания, на которую работает разработчик.
Начальная версия
Начальная версия создаваемых файлов.
Год
Укажите формат для группового символа ``{year}``.
Дата
Укажите формат для группового символа ``{date}``.
Дата и время
Укажите формат для группового символа ``{datetime}``.
Подробнее см. `Групповые символы даты и времени`_.
Настройки сочетаний клавиш
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_keys.png
В диалоговом окне сочетаний клавиш перечислены некоторые команды, которые по умолчанию не привязаны к комбинации клавиш, и могут быть недоступны в качестве пункта меню.
.. Примечание::
более подробная информация представлена в разделе `Сочетания клавиш`_.
Настройки печати
^^^^^^^^^^^^^^^^
.. image:: ./images/pref_dialog_printing.png
Использовать внешнюю команду для печати
Использовать системную команду печати.
Использовать собственный механизм печати GTK
Использовать печать средствами GTK.
Печатать номера строк
Печатать слева номера строк.
Печатать номера страниц
Печатать в правом нижнем углу номер страницы.
Печатать заголовки страниц
Печатать верхние колонтитулы.
Использовать только имя текущего файла
Использовать имя файла без указания полного пути.
Формат даты
Формат печати дат. Список доступных спецификаторов преобразования см. на сайте https://docs.gtk.org/glib/method.DateTime.format.html.
Разные опции
^^^^^^^^^^^^
.. image:: ./images/pref_dialog_various.png
Редко используемые параметры, приведённые в таблице ниже. Некоторые из них требуют перезапуска, а некоторые другие будут влиять только на вновь открытые или созданные документы до перезапуска.
======================================== ============================================ ============ ===========
Ключ Описание По умолчанию Применяется
======================================== ============================================ ============ ===========
**``Редактирование``**
use_gtk_word_boundaries Искать ли конец слова при выполнении true к новым
связанных с границами слов команд Scintilla документам
(см. `Клавишные команды Scintilla`_).
brace_match_ltgt Подсветка угловых скобок <, >. false немедленно
complete_snippets_whilst_editing Разрешать ли завершение сниппетов, если false немедленно
продолжается правка строки (когда за курсором
уже имеется какой-то текст). Параметр
используется только если клавишная команда
`Завершить фрагмент кода` связана с пробелом.
show_editor_scrollbars Отображение полос прокрутки. Если true немедленно
установлено значение false, горизонтальная
и вертикальная полосы прокрутки будут
полностью скрыты.
indent_hard_tab_width Размер символа табуляции. Не изменяйте это 8 немедленно
значение, если вам это не нужно; вместо этого
используйте параметры отступов.
editor_ime_interaction Поведение окна кандидата редактора методов 0 к новым
ввода (IME). Может быть 0 (оконный) или документам
1 (встраиваемый)
**``Интерфейс``**
show_symbol_list_expanders Отображение маленьких значков сворачивания true к новым
ветвей дерева списка символов. документам
compiler_tab_autoscroll Автоматическая прокрутка сообщений в окне true немедленно
компилятора (до последней строки).
statusbar_template Формат строки статистики строки состояния. См. ниже. немедленно
(Подробнее см. `Шаблоны строки состояния`_).
new_document_after_close Открывать ли новый документ после закрытия false немедленно
всех документов.
msgwin_status_visible Показывать ли вкладку «Статус» в окне true немедленно
сообщений
msgwin_compiler_visible Показывать ли вкладку «Компилятор» в окне true немедленно
сообщений
msgwin_messages_visible Показывать ли вкладку «Сообщения» в окне true немедленно
сообщений
msgwin_scribble_visible Показывать ли вкладку «Заметки» в окне true немедленно
сообщений
warn_on_project_close Показывать ли предупреждение при открытии true немедленно
проекта, когда один уже открыт.
**``Эмулятор терминала VTE``**
send_selection_unsafe По умолчанию Geany при передаче выделения false немедленно
в терминал отбрасывает любые хвостовые
строки, чтобы предотвратить исполнение
содержащегося в них кода. Это делается
главным образом для безопасности. Если
по каким-то причинам вы хотите исполнять
всю передачу напрямую, установите true.
send_cmd_prefix Строка, с помощью которой добавляется Пусто немедленно
префикс для команд, отправляемых в
оболочку. Может использоваться для того,
чтобы запретить некоторым оболочкам (BASH
с ``HISTCONTROL``, для которого установлено
``ignorespace``, ZSH с включённым
``HIST_IGNORE_SPACE`` и т.д.) помещать эти
команды в свою историю, установив пробел.
Обратите внимание, что начальные пробелы
должны быть экранированы с помощью `\s` в
файле конфигурации.
**``Работа с файлами``**
allow_always_save Можно ли сохранять файлы всегда, даже если false немедленно
в них нет никаких изменений. По умолчанию
кнопка и пункт меню «Сохранить» отключены,
если файл не изменён. Если установить
значение true, кнопка и пункт меню «Сохранить»
всегда будут активны и файлы можно будет
сохранять.
use_atomic_file_saving Определяет режим сохранения Geany файлов на false немедленно
диск. Если опция отключена, Geany напрямую
записывает содержимое документа на диск. Это
может привести к потере данных, когда на
диске не останется свободного места для
сохранения файла. Если установлено значение
true, Geany сначала сохраняет содержимое во
временный файл, и если это удалось, временный
файл перемещается в реальный файл для сохранения.
Это обеспечивает лучшую проверку ошибок в
случае отсутствия свободного места на диске.
Но это также уничтожает жёсткие ссылки на
исходный файл и его разрешения (например,
сбрасываются флаги исполняемого файла).
Используйте с осторожностью, так как это может
привести к серьёзным проблемам. Лучшим
подходом будет убедиться, что на диске
достаточно свободного места.
use_gio_unsafe_file_saving Использовать ли GIO в качестве внутренней true немедленно
службы для сохранения небезопасных файлов.
Это лучше в большинстве ситуаций, но
известно, что в некоторых сложных настройках
она работает некорректно.
gio_unsafe_save_backup Создание резервной копии при использовании false немедленно
GIO для сохранения небезопасных файлов.
Резервная копия будет иметь имя `filename~`.
keep_edit_history_on_reload Сохранять ли историю правок при повторной true немедленно
загрузке файла и разрешать ли отмену операции.
show_keep_edit_history_on_reload_msg Показывать ли диалоговое окно подтверждения true немедленно
для сброса истории правок при повторной
загрузке файла. см. также
`keep_edit_history_on_reload` выше.
reload_clean_doc_on_file_change Следует ли автоматически загружать повторно false немедленно
документы, в которых нет изменений, но
которые изменились на диске.
При наличии несохранённых изменений
пользователю будет предложено выполнить
повторную загрузку вручную.
save_config_on_file_change Автоматически сохранять конфигурацию Geany true немедленно
на диск при изменении списка документов
(т.е. при открытии, сохранении или закрытии
новых документов). Это поможет предотвратить
случайную потерю списка файлов сеанса или
других изменённых параметров при неаккуратном
завершении работы Geany. Отключите эту опцию,
если конфигурационный каталог находится на
медленном накопителе, сетевой папке и т.п.,
и у вас возникают проблемы.
extract_filetype_regex Регулярное выражение для извлечения имени См. ссылку немедленно
типа файла с помощью группы записи один.
Значение по умолчанию см. в разделе
`ft_regex`_.
**``Поиск``**
find_selection_type См. `Найти выделение`_. 0 немедленно
replace_and_find_by_default Установите кнопку ``Заменить и найти`` true немедленно
по умолчанию, чтобы она активировалась
при нажатии клавиши Enter, когда одно из
текстовых полей находится в фокусе.
skip_confirmation_for_replace_in_session Если установлено, *не* показывать диалоговое false немедленно
окно подтверждения перед заменой текста во
всём сеансе, т.е. во всех открытых файлах
**``Сборка``**
number_ft_menu_items Максимальное число команд в секции меню 2 при запуске
«Сборка» для типов файлов.
number_non_ft_menu_items Максимальное число команд в секции меню 3 при запуске
«Сборка», не связанной с типом файлов.
number_exec_menu_items Максимальное число команд в секции запуска 2 при запуске
на исполнение меню «Сборка».
**``Сокет``**
socket_remote_cmd_port Номер TCP-порта, который будет 2 при запуске
использоваться для межпроцессного
взаимодействия (т.е. с другими экземплярами
Geany, например, «Открыть с помощью Geany»).
Доступно только для Windows, допустимый
диапазон портов: 1024—65535.
======================================== ============================================ ============ ===========
Шаблоны строки состояния
````````````````````````
Шаблон строки состояния по умолчанию (``\t`` = tab):
``строка: %l / %L\t столбец: %c\t выделено: %s\t %w %t %mEOL: %M кодировка: %e тип файла: %f область действия: %S``
Установка параметра в пустую строку также заставит Geany использовать это внутреннее значение по умолчанию.
Для шаблона строки состояния доступны следующие символы форматирования:
============ ===========================================================
Заполнитель Описание
============ ===========================================================
``%l`` Номер текущей строки, начиная с 1
``%L`` Общее количество строк
``%c`` Номер текущего столбца, начиная с 0, включая виртуальное
пространство.
``%C`` Номер текущего столбца, начиная с 1, включая виртуальное
пространство.
``%s`` Количество выбранных символов или, если выбраны только
целые строки, количество выбранных строк.
``%n`` Количество выбранных символов, даже если выбраны только
целые строки.
``%w`` Показывает ``RO``, если документ находится в режиме только
для чтения, в противном случае показывает,находится ли
редактор в режиме замещения (OVR)
или режиме вставки (INS).
``%t`` Указывает режим отступа: или табуляция (TAB),
или пробелы (SP), или и то, и другое (T/S).
``%m`` Показывает, изменён документ (MOD) или нет.
``%M`` Имя перевода строки документа (например, ``Unix (LF)``)
``%e`` Имя кодировки документа (например, UTF-8).
``%f`` Тип файла документа (например, None, Python, C, и т.д.).
``%S`` Имя области действия, в которой находится курсор.
``%p`` Позиция курсора во всём документе, начиная с 0.
``%r`` Показывает, является ли документ доступным только для чтения
(RO) или нет.
``%Y`` Номер стиля Scintilla в позиции курсора. Это полезно при
отладке цветовых схем или связанного с ними кода.
============ ===========================================================
Настройки терминала (VTE)
^^^^^^^^^^^^^^^^^^^^^^^^^
См. также: `Виртуальный эмулятор терминала (VTE)`_.
.. image:: ./images/pref_dialog_vte.png
Виртуальный терминал
````````````````````
Шрифт
Шрифт для окна терминала.
Цвет текста
Укажите цвет текста.
Цвет фона
Выбор цвета фона.
Фоновое изображение
Выбор фонового изображения, которое будет отображаться за текстом в терминале.
Прокручиваемые строки
Устанавливает количество строк, которые можно прокрутить назад в окне терминала.
Оболочка
Каталог, в котором находится системная оболочка.
Прокрутка по нажатию клавиши
Осуществлять ли прокрутку вниз, если была нажата клавиша.
Прокрутка по мере ввода
Прокрутка содержимого терминала вниз.
Мигающий курсор
Мигание курсора в окне терминала.
Переопределять сочетания клавиш Geany
Перехват терминалом клавишных команд (кроме команды установки фокуса).
Отключить горячую клавишу для меню (по умолчанию F10)
Отключить горячую клавишу входа в меню при работе с терминалом.
Следовать пути к текущему файлу
Изменять путь к терминалу в соответствии с путём к текущему файлу.
Выполнять программы в VTE
Выполнение программ в виртуальном терминале вместо использования внешнего терминала. Учтите, что при запуске нескольких программ их выдача в окне VTE может оказаться перемешана.
Не использовать скрипт запуска
Не использовать скрипт отображения статуса выхода исполняемой программы. Это может быть полезно, если вы уже запустили в VTE программу, подобную консоли Python. Используйте с осторожностью.
Работа с проектами
------------------
Функции работы с проектами являются в Geany вспомогательными. В настоящее время поддерживаются:
* Сохранение и открытие файлов сеансов.
* Замена параметров по умолчанию эквивалентами проекта.
* Конфигурация меню «Сборка».
Список файлов сеансов может храниться и открываться вместе с проектом, когда включена опция *Использовать файлы сеансов для проектов*, в группе `Проекты`_ окна настройки предпочтений.
Пока открыт проект, меню «Сборка» будет содержать пункты, определённые в параметрах проекта, вместо параметров по умолчанию. См. также `Конфигурация меню сборки`_.
Параметры текущего проекта сохраняются при его закрытии или при выходе из Geany. При следующем запуске будет открыт файл проекта, с которым велась работа в конце предыдущего сеанса.
Команды меню проектов рассмотрены ниже.
Новый проект
^^^^^^^^^^^^
Существуют два способа создания новых проектов: с помощью пункта меню *Проект->Новый* или с помощью пункта меню *Проект->Новый из папки*.
Новый
Этот способ больше подходит для создания новых, пустых проектов с нуля в месте по умолчанию при отстуствии каких-либо источников.
Чтобы создать новый проект, заполните поле *Имя*. По умолчанию будет создан новый файл проекта ``~/projects/name/name.geany``.
В текстовом поле *Путь к каталогу* записан путь к каталогу ``~/projects/name``. Можно смело указать любой существующий путь — это не повлияет на файловую структуру, содержащуюся в нём.
Новый из папки
Этот способ больше подходит, когда уже есть некоторая папка с исходными файлами, для которой вам нужно создать новый проект.
При использовании этого способа Geany сначала открывает диалоговое окно выбора каталога для выбора папки, содержащей исходные файлы, и это значение устанавливается для поля *Путь к каталогу*.
После этого Geany показывает то же диалогое окно, что и в способе *Проект->Новый*, но уже заполненное значениями, основанными на выборе *Путь к каталогу*. Поле *Имя* заполняется именем папки, поле *Имя файла* заполняется ``base_path/name.geany``, а поле *Путь к каталогу* заполняется путём, указанным в предыдущем диалоговом окне.
Свойства проекта
^^^^^^^^^^^^^^^^
Вы можете задать дополнительное описание для проекта. В настоящее время оно используется только для группового символа шаблона``{description}}`` — см. `Динамические групповые символы`_.
Поле *Путь к каталогу* используется в качестве каталога для выполнения команд меню «Сборка». Указанный путь может быть абсолютным или считаться относительным, начиная с каталога с файлом проекта.
Поле *Шаблоны файлов* позволяет указать список шаблонов файлов для проекта, которые можно использовать в окне `Найти в файлах`_.
Вкладка *Отступы* позволяет переопределить параметры отступов по умолчанию.
Открыть проект
^^^^^^^^^^^^^^
Команда «Открыть» отображает стандартное окно выбора файлов, начиная с ``~/projects``. Выберите файл проекта с расширением ``.geany``.
Если включена поддержка сеансов проекта, Geany закроет текущие открытые файлы и откроет файлы сеансов, связанные с проектом.
Закрыть проект
^^^^^^^^^^^^^^
Параметры файла проекта сохраняются при закрытии файла проекта.
Если включена поддержка сеансов проекта, Geany закроет файлы сеансов проекта и откроет все ранее закрытые файлы сеансов по умолчанию.
Меню «Сборка»
-------------
После редактирования кода следуют компиляция, линковка, сборка, интерпретация, запуск и т.д. Geany поддерживает работу со многими языками программирования, для каждого из которых существует свой порядок этих операций. Как и многие другие среды разработки, не привязанные к определённому языку, Geany не имеет встроенной системы сборки кода и не ограничивает вас в выборе системы. Вместо этого меню сборки предоставляет гибкие возможности выполнения любых внешних команд для использования предпочитаемой вами системы сборки.
В этом разделе приводится описание стандартной конфигурации меню сборки, его настройки и использования настройки по умолчанию.
Выполнение команд из Geany имеет два преимущества:
* текущий файл автоматически сохраняется перед выполнением команды.
* выдаваемые компилятором сообщения перехватываются, показываются в специальном окне и анализируются на наличие предупреждений и ошибок.
Предупреждения и ошибки, которые можно разобрать на номера строк, будут показаны красным цветом на вкладке «Компилятор». Щёлкнув по сообщению, вы переключитесь на файл с исходным текстом (при необходимости он будет открыт) прямо на строку кода, обработка которой вызвала ошибку или предупреждение. Такие строки будут отмечены в исходном тексте (см. `Индикаторы`_ ниже).
.. Совет::
если стандартный разбор ошибок Geany не разбирает ошибки для используемого вами инструмента, вы можете задать собственное регулярное выражение в диалоговом окне `Установить команды сборки`_, см. `Конфигурация меню «Сборка»`_.
Индикаторы
^^^^^^^^^^
Индикаторы — это красные волнистые подчёркивания, используемые для выделения ошибок, возникших при компиляции текущего файла. Таким образом вы можете легко увидеть, где не удалось скомпилировать код. Их можно удалить, выбрав команду *Удалить все индикаторы ошибок* в меню документов.
Эту функцию можно отключить в настройке предпочтений.
Команды меню «Сборка» по умолчанию
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
В зависимости от типа текущего файла, по умолчанию меню «Сборка» будет содержать следующие команды:
* Скомпилировать
* Собрать
* Проверить код
* Собрать все
* Собрать заданную цель
* Собрать объектный файл
* Следующая ошибка
* Предыдущая ошибка
* Выполнить
* Установить команды сборки
Компиляция
``````````
Для файлов разного типа эта команда используется по-разному.
Для компилируемых языков, таких как C и C++, команда скомпилирует текущий исходный файл в двоичный объектный файл.
Исходные файлы Java будут скомпилированы в байткод файла классов.
Интерпретируемые языки, такие как Perl, Python, Ruby компилируются в байткод, если язык его поддерживает, или производится только проверка синтаксиса. Если средств проверки не имеется, файл запускается на исполнение в интерпретаторе языка.
Сборка
``````
Для компилируемых языков команда выполняет сборку двоичных объектов, полученных из файлов исходных текстов, в исполняемый файл. Если нужный объектный файл отсутствует, сразу же будет выполнена компиляция, т.е. обе стадии получения исполняемой программы пройдут за один шаг.
Для интерпретируемых языков команда «Сборка» не используется.
.. Примечание::
если вам нужны сложные настройки для системы сборки или несколько разных настроек, рекомендуется написать Makefile и использовать make-команды; это также облегчит пользователям сборку вашего программного обеспечения.
Проверить код
`````````````
Линтеры исходного кода часто используются для поиска кода, который не соответствует определённым стилевым рекомендациям: непереносимый код, распространённые или трудно находимые ошибки, «запахи», переменные, используемые прежде чем они были заданы, неиспользуемые функции, деление на ноль, постоянные условия и т.д. Линтеры проверяют код и выдают предупреждения, как и компиляторы. Формально это называется статическим анализом кода.
Некоторые часто используемые линтеры предварительно настроены в меню «Сборка» (``pycodestyle`` для Python, ``cppcheck`` для C/C++, JSHint для JavaScript, ``xmllint`` для XML, ``hlint`` для Haskell, ``shellcheck`` для шелл-кода, ...), но все они являются отдельными инструментами, которые необходимо получить перед использованием.
Собрать (make)
`````````````
Команда запускает утилиту make в каталоге с текущим файлом.
Собрать (make) заданную цель
````````````````````````````
Похоже на запуск make, но вам будет предложено ввести имя цели сборки. Например, если набрать «clean», будет выполнена команда «make clean».
Собрать (make) объектный файл
`````````````````````````````
Будет выполнена команда «make current_file.o» в том же каталоге, что и текущий файл, с использованием имени файла для «current_file». Команда полезна для обработки одного лишь текущего файла, а не всего проекта сразу.
Следующая ошибка
````````````````
Переход к следующей обнаруженной ошибке.
Предыдущая ошибка
`````````````````
Переход к предыдущей обнаруженной ошибке.
Выполнить
`````````
Команда запускает соответствующий исполняемый файл, сценарий оболочки или интерпретируемый сценарий в окне терминала. Команда, заданная в диалоговом окне `Установить команды сборки`_, запускается в сценарии, чтобы терминал оставался открытым после завершения выполнения. Примечание: см. раздел `Эмуляторы терминала`_ ниже о формате команд. В качестве альтернативы можно использовать встроенный VTE, если он доступен — см. раздел `Эмулятор виртуального терминала (VTE)`_.
После завершения выполнения программы или сценария нажмите клавишу Enter/Return (появится соответствующий запрос). Это позволит просмотреть любой текст, выведенный программой, перед тем как окно терминала будет закрыто.
.. Примечание::
сообщения, выводимые исполняемыми программами, не анализируются на наличие ошибок.
Остановить запущенные процессы
``````````````````````````````
После запуска программы вместо команды меню «Выполнить» и кнопки «Запустить» на панели инструментов появляются команда и кнопка остановки программы. Для остановки процессу (и его дочернему процессу) посылается сигнал SIGQUIT.
Некоторые запущенные процессы остановить таким способом не удастся, например, при образовании нескольких дочерних процессов.
Эмуляторы терминала
*******************
Поле «Терминал» на вкладке настроек «Инструменты» требует команду для запуска терминальной команды и передачи ей имени сценария запуска Geany, который она должна выполнить в оболочке, совместимой с Bourne (например, /bin/sh). Маркер «%c» заменяется именем сценария запуска Geany, который создаётся во временном каталоге и меняет рабочий каталог на каталог, заданный в диалоговом окне `Установить команды сборки`_.
В качестве примера можно привести команду по умолчанию (Linux)::
xterm -e "/bin/sh %c"
Настройка команд сборки
```````````````````````
По умолчанию «Скомпилировать», «Собрать» и «Выполнить» являются базовыми командами. Вы можете настроить их с помощью пункта меню *Установить команды сборки*.
Например, для языка C можно добавить любые пути к включаемым файлам и флаги компиляции для компилятора, любые имена библиотек и пути к ним для компоновщика, а также любые аргументы, которые вы хотите использовать при запуске команды «Выполнить».
Конфигурация меню «Сборка»
^^^^^^^^^^^^^^^^^^^^^^^^^
Меню сборки обладает значительной гибкостью и возможностью конфигурирования, позволяя настраивать названия пунктов, выполняемые команды и каталог, в котором они выполняются. Например, если вы измените одну из команд make по умолчанию на «waf», вы можете изменить и название. Эти параметры сохраняются автоматически при закрытии Geany.
Меню сборки делится на четыре группы пунктов, имеющих различные свойства:
* Команды сборки по типу файла — настраиваются и зависят от типа файла
текущего документа; захватывают вывод на вкладке компилятора и анализируют
его на ошибки.
* Независимые команды сборки — настраиваются и в основном не зависят от
типа файла текущего документа; также захватывают вывод на вкладке компилятора и анализируют
его на ошибки.
* Команды исполнения — настраиваются и предназначены для выполнения вашей
программы или других программ длительного выполнения. Вывод не анализируется на
ошибки и направляется в окно терминала, указанного в настройке предпочтений на вкладке
`Инструменты`_.
* Постоянные команды — выполняют встроенные действия:
* Переход к следующей ошибке.
* Переход к предыдущей ошибке.
* Вывод диалогового окна команд меню сборки.
Максимальное количество пунктов в каждой из настраиваемых групп можно настроить в разделе `Разные опции`_. Несмотря на то, что максимальное количество пунктов может быть увеличено, в меню отображаются только те пункты, для которых настроены команды.
Группы пунктов меню получают свою конфигурацию из четырех потенциальных источников. Будет использован источник с наивысшим приоритетом, в котором определён пункт меню. Источниками по убыванию приоритета являются:
* файл проекта, если он открыт
* настройки предпочтений пользователя
* системные определения типов файлов
* установки по умолчанию
Детальная взаимосвязь между источниками и группами настраиваемых пунктов меню показана в следующей таблице:
+--------------+---------------------+--------------------------+-------------------+-------------------------------+
| Группа команд|Файл проекта | Настройки |Системный тип файла| По умолчанию |
+==============+=====================+==========================+===================+===============================+
| По типу | Загрузка из файла | Загрузка из файла | Загрузка из файла | Нет. |
| файла | проекта и сохранение| filetypes.xxx в | filetypes.xxx в | |
| | в него. | каталоге | каталоге установки| |
| | | ~/.config/geany/filedefs.| Geany. Сохранение | |
| | | Сохранение в этот же | — по предпочтению | |
| | | файл, при его отсутствии | пользователя. | |
| | | файл создаётся. | | |
+--------------+---------------------+--------------------------+-------------------+-------------------------------+
| Независимые | Загрузка из файла | Загрузка из файла | Загрузка из файла | 1: _Собрать |
| | проекта и сохранение| geany.conf file в | filetypes.xxx в | Команда: make |
| | в него. | ~/.config/geany | каталоге установки| |
| | | Сохранение в этот же | Geany. Сохранение | |
| | | файл, при его отсутствии | — по предпочтению | 2: Собрать заданную _цель |
| | | файл создаётся. | пользователя. | Команда: make |
| | | | | |
| | | | | |
| | | | | 3: Собрать _объектный файл |
| | | | | Команда: make %e.o |
| | | | | |
+--------------+---------------------+--------------------------+-------------------+-------------------------------+
| Команды | Загрузка из файла | Загрузка из файла | Загрузка из файла | _Выполнить |
| исполнения | проекта или другого | geany.conf в | filetypes.xxx в | Команда: ./%e |
| | файла, указанного в | ~/.config/geany или | каталоге установки| |
| | нём. Сохранение в | файла filetypes.xxx в | Geany. Сохранение | |
| | файл проекта. | ~/.config/geany/filedefs | — по предпочтению | |
| | | Сохранение в файл | пользователя. | |
| | | filetypes.xxx в | | |
| | | ~/.config/geany/filedefs | | |
| | | | | |
+--------------+---------------------+--------------------------+-------------------+-------------------------------+
Следующие примечания к таблице могут ссылаться на ячейки по координатам в виде *(группа, источник)*:
* Имена файлов filetype — для filetypes.xxx подставьте соответствующее расширение для
файлового типа текущего документа для xxx — см. `имена файлов`_.
* Системные типы файлов — названия команд, загружаемые из этих источников, являются чувствительными к локализации
и могут переводиться на разные языки.
* *(Сборка по типу файла, проект и настройки)* — в предпочтениях используется полный файл filetype,
так что пользователи могут настроить и все остальные предпочтения filetype. В проектах можно настраивать
только пункты меню для каждого типа файлов. Сохранение в файле проекта означает, что на проект приходится
только один файл, а не целый каталог.
* *(Сборка, независимая от типа файла, системный тип файла)* — хотя это кажется странным, определение
независимых от типа файла команд в файле filetype даёт возможность определять
пункты меню по умолчанию, зависящие от типа файла.
* *(Выполнить, проект и настройки)* — независимые от проекта и независимые от
предпочтений команды исполнения могут быть заданы только вручную
редактированием файла вручную, см. `Формат файла настройки предпочтений`_ и `Формат
файла проекта`_.
Диалоговое окно установки команд сборки
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Настройка меню «Сборка» происходит в основном с помощью формы `Установить команды сборки`_. Если ни один проект не открыт, вы можете изменить конфигурацию, полученную из пользовательской настройки предпочтений, с помощью пункта меню *Сборка->Установить команды сборки*. Вы можете изменить конфигурацию, полученную из проекта, на вкладке *Сборка* диалогового окна `Свойства проекта`_. Первый пункт меню также показывает диалоговое окно проекта, когда проект открыт. Оба диалоговых окна имеют одинаковую форму, показанную ниже.
.. image:: ./images/build_menu_commands_dialog.png
В форме выделены три секции:
* Команды, зависящие от типа файла открытого документа.
* Комаманды, не зависящие от типа файла.
* Команды запуска программ.
Первая и вторая секции содержат также поля для ввода регулярных выражений, используемых для поиска сообщений об ошибках.
У каждой секции имеется три столбца полей: для названия пункта меню, записи соответствующей команды и рабочего каталога для её вызова. Если название пункта не задано, в меню эта команда не появится; при пустом поле каталога команда выполняется в том каталоге, в котором находится текущий документ.
При отсутствии текущего документа команда выполняться не будет.
В диалоговом окне всегда показаны команды, выбранные в соответствии с их приоритетом, а не просто команды, настроенные в этой форме. Это гарантирует, что вы всегда будете видеть, что будет делать пункт меню, если его активировать.
Если текущий источник пункта меню имеет более высокий приоритет, чем редактируемая форма настройки, то команда будет показана в диалоге, но будет недоступна для правки (выделена серым цветом). Этого не может произойти с источником проекта, но может произойти с диалоговым окном источника предпочтений.
Кнопки очистки удаляют определение из редактируемой формы настройки. При этом будет показана команда из следующего источника с более низким приоритетом. Чтобы скрыть пункты меню с более низким приоритетом, не показывая ничего в меню, настраивайте конфигурацию так, чтобы в названии не было ничего, а в команде был хотя бы один символ.
Подстановки в командах и рабочих каталогах
``````````````````````````````````````````
Перед выполнением команды первое появление каждой из следующих двух последовательностей символов в каждом из полей команды и рабочего каталога заменяется на указанные ниже элементы:
* %d — абсолютный путь к каталогу текущего файла.
* %e — имя текущего файла без расширения и пути.
* %f — имя текущего файла без пути.
* %p — если проект открыт, его базовый путь.
* %l — номер строки в текущей позиции курсора.
.. Примечание::
если базовый путь, заданный в `Свойствах проекта`_, не является абсолютным, то он
принимается за относительный путь к каталогу файла проекта. Это позволяет файлу проекта,
хранящемуся в дереве исходного кода, указывать все команды и рабочие каталоги относительно
самого дерева, так что всё дерево, включая файл проекта, может переноситься на новое место
или подвергаться операциям захвата и освобождения системой контроля версий без необходимости
переконфигурировать пути в меню «Сборка».
Сочетания клавиш в меню «Сборка»
````````````````````````````````
Сочетания клавиш можно определить для:
* первых двух пунктов меню сборки по типу файла
* первых трёх пунктов меню сборки, не зависящих от типа файла
* первого пункта меню «Выполнить»
* постоянных пунктов меню («Следующая/предыдущая ошибка», «Установить команды»)
В форме настройки (см. `Настройка клавишных команд`_) соответствующие пункты имеют названия, показанные в разделе `Меню «Сборка»`_ выше.
На данный момент нет возможножности задать сочетания клавиш для других пунктов меню. Также можно использовать подчёркивание в названиях для установки мнемонических символов.
Старые параметры
````````````````
Настраиваемое меню «Сборка» появилось в Geany версии 0.19, что потребовало добавления новой секции в файлы конфигурации (см. `Формат файла предпочтений`_). Geany по-прежнему будет загружать настройки проекта, предпочтений и типа файла в старом формате и попытается сопоставить их с новым форматом конфигурации. Не существует простого чистого соответствия между форматами. Используемое сопоставление даёт наиболее разумные результаты в большинстве случаев. Однако, если они не совпадают с вашими потребностями, вам, возможно, придётся вручную настроить некоторые параметры с помощью диалогового окна `Установить команды сборки`_.
Любой параметр, настроенный в одном из этих диалоговых окон, переопределит параметры, преобразованные из файлов конфигурации старого формата.
Печать
------
Начиная с версии 0.13 Geany поддерживает печать с использованием API GTK. Отпечатанные страницы будут выглядеть примерно так же, как на экране. Имеется и ряд дополнительных опций.
.. Примечание::
для фона устанавливается белый цвет, за исключением случаев с белым текстом. Это позволяет экономить чернила
при печати в случае с тёмными цветовыми схемами.
Дополнительно можно печатать номера строк и страниц внизу каждой страницы, а также верхний колонтитул на каждой странице. Верхний колонтитул включает имя файла печатаемого документа, номер текущей страницы и дату и время печати. По умолчанию в верхний колонтитул добавляется имя файла документа с полной информацией о пути. Если вы предпочитаете добавлять только основное имя файла (без информации о пути), вы можете задать это в окне настройки предпочтений. Также можно настроить формат даты и времени, добавляемых в верхний колонтитул. Список доступных спецификаторов преобразования см. на сайте https://docs.gtk.org/glib/method.DateTime.format.html.
Все эти параметры можно также изменить в диалоговом окне печати непосредственно перед печатью. В Unix-подобных системах в диалоговом окне печати предусмотрен предварительный просмотр. Файл предварительного просмотра открывается с помощью программы просмотра PDF и по умолчанию для предварительного просмотра GTK использует приложение ``evince``. Если вы не установили evince или просто хотите использовать другую программу просмотра PDF, вы можете изменить используемую программу в файле ``settings.ini`` (обычно находится в ``~/.config/gtk-3.0``, см. `документацию по GTK`_). Например, используйте::
[Параметры]
gtk-print-preview-command = epdfview %f
Для предварительного просмотра печати также можно использовать xpdf, kpdf и пр. В идеале эта команда должна удалить временный файл, на который ссылается ``%f``. Более подробную информацию можно найти в `документации по настройке GTK`_.
.. _Документация GTK: https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings.description
.. _Документация по настройке GTK: https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-print-preview-command
Geany также предоставляет альтернативную базовую поддержку печати с помощью пользовательской команды печати. Однако печатаемый документ не содержит подсветки синтаксиса. Вы можете настроить команду, которой передаётся имя файла, в окне настройки предпочтений. По умолчанию используется команда::
% lpr %f
``%f`` заменяется на имя текущего файла. Не покажет сообщения об ошибках, поэтому если потребуется проверить и уточнить команду печати, воспользуйтесь командной строкой.
Пример часто используемых настроек::
% a2ps -1 --medium=A4 -o - %f | xfprint4
Требуются утилиты a2ps и xfprint4, вместо последней можно также использовать gtklp и другие.
Модули
-------
Модули загружаются при запуске, если установлен общий параметр *Включить поддержку модулей*. Имеется также опция командной строки, ``-p``, которая предотвращает загрузку модулей. Модули для загрузки Geany ищет в следующих каталогах:
* ``$prefix/lib/geany`` в Unix-подобных системах (см. `Префикс установки`_)
* Подкаталог ``lib`` пути установки в Windows.
* Подкаталог ``plugins`` в каталоге пользовательской конфигурации — см. `Пути к файлу конфигурации`_.
* Параметр `Дополнительный путь к модулю` (обычно пустой) — см. `Пути`_.
Большинство модулей при загрузке добавляет пункты меню в меню *Инструменты*.
Информацию об отдельных модулях, включённых в Geany, смотрите в разделе `Документация по модулям`_.
Менеджер модулей
^^^^^^^^^^^^^^^^
Диалоговое окно менеджера модулей позволяет выбрать, какие модули должны загружаться при запуске. Вы также можете загружать и выгружать модули в текущем сеансе работы. После установки флажка для определённого модуля в диалоговом окне, он будет загружен или выгружен в соответствии с его предыдущим состоянием. По умолчанию при запуске модули не загружаются (пока нет выбранных). Также можно настроить некоторые специфические опции модуля, если модуль их предоставляет.
Сочетания клавиш
----------------
Geany поддерживает стандартные сочетания клавиш для виджета редактирования Scintilla. Список этих команд приведён в разделе `Клавишные команды Scintilla`_. Сочетания клавиш Scintilla могут быть переопределены любыми пользовательскими сочетаниями.
Переключение документов
^^^^^^^^^^^^^^^^^^^^^^^
Существуют ненастраиваемые сочетания для переключения между документами, перечисленные ниже. Они также могут быть переопределены пользовательскими сочетаниями.
=============== ==================================
Клавиши Действие
=============== ==================================
Alt-[1-9] Выбор крайней левой вкладки, от 1 до 9.
Alt-0 Выбор крайней правой вкладки.
=============== ==================================
См. также `Сочетания клавиш редактора`_.
Настраиваемые сочетания клавиш
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Для перечисленных ниже действий можно определить свои собственные сочетания клавиш. Для этого откройте окно настройки предпочтений, выберите нужные действия и нажмите «Изменить». В появившемся диалоговом окне вы можете нажать комбинацию клавиш, которую вы хотите назначить действию, и она будет сохранена при нажатии кнопки OK. Для каждого действия можно задать только одну комбинацию клавиш, а каждая комбинация клавиш может быть задана только для одного действия.
В следующих таблицах перечислены все настраеваемые сочетания клавиш, которые являются общепринятыми для многих приложений и отмечены знаком (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-Q (C) Выйти из Geany.
=============================== ========================= ==================================================
Сочетания клавиш редактора
``````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Отменить Ctrl-Z (C) Отменить последнее действие.
Вернуть Ctrl-Y Повторить последнее действие.
Удалить строку(и) Ctrl-K Удалить текущую строку, или, при наличии выделения,
несколько строк.
Удалить до конца строки Ctrl-Shift-Delete Удалить текст от позиции курсора до конца строки.
Удалить до начала строки Ctrl-Shift-BackSpace Удалить текст от начала строки до текущей позиции
курсора.
Дублировать строку или Ctrl-D Дублировать текущую строку или выделение.
выделение
Переставить текущую строку Заменить текущую строку предыдущей.
Прокрутить до текущей строки Ctrl-Shift-L Прокрутить текст так, чтобы текущая строка
оказалась посередине окна. Положение курсора и/или
имеющееся выделение не меняются.
Прокрутить на строку вверх Alt-Up Прокрутка на строку вверх.
Прокрутить на строку вниз Alt-Down Прокрутка на строку вниз.
Завершить слово Ctrl-Space Показывает список автозавершения. Если был открыт
список завершения символов, он заменяется списком
обычных слов, даже если автозавершение не было
включено. Аналогично, если нет предложений по
символам, отображается список завершения слов.
Показывать подсказки Ctrl-Shift-Space Показать подсказку по текущей функции или методу.
Завершить фрагмент кода Tab Если ввести ключевое слово наподобие ``if`` или ``for``
и нажать эту клавишу, оно будет завершено
соответствующим шаблоном — см. `Пользовательские фрагменты (сниппеты)`_.
Подавлять автозавершение Если ввести конструкцию наподобие ``if`` или ``for``
фрагментов кода и нажать эту клавишу, она не будет завершена, а будет
вставлен пробел или табуляция, в зависимости от того,
какое сочетание клавиш установлено для завершения.
Например, при установке сочетания клавиш для завершения
с пробелом установка Shift+пробел для этого параметра
вместо завершения конструкции вставит пробел.
Контекстное действие Выполняет команду и передаёт в качестве аргумента текущее
слово (рядом с позицией курсора) или выделение.
См. раздел `Контекстные действия`_.
Перемещать курсор в фрагменте Переход к следующей заданной позиции курсора в
завершённом фрагменте, если задано несколько позиций
курсора.
Завершение части слова Tab При открытом списке автозавершения завершает текущее
выделение до части следующего слова.
Переместить строку(и) вверх Alt-PageUp Переместить текущую строку или выделенные строки на
одну строку вверх.
Переместить строку(и) вниз Alt-PageDown Переместить текущую строку или выделенные строки на
одну строку вниз.
=============================== ========================= ==================================================
Сочетания клавиш для работы с буфером обмена
````````````````````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Вырезать 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 Вставить настраиваемую дату.
Вставить альтернативный пробел Вставляет символ табуляции, когда для отступа
следует использовать пробел и вставляет пробел
ширины табуляции, когда для отступа следует
использовать табуляцию.
Вставить новую строку перед Вставить новую строку с отступом.
текущей
Вставить новую строку после Вставить новую строку с отступом.
текущей
=============================== ========================= ==================================================
Сочетания клавиш для форматирования
```````````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Переключить регистр в выделении Ctrl-Alt-U Изменяет регистр в выделенном фрагменте. Строчные
символы будут изменены на прописные и наоборот.
Если выделенный фрагмент содержит строчные и
прописные символы, все они будут преобразованы в
строчные.
Закомментировать строку Закомментировать текущую строку или выделение.
Раскомментировать строку Раскомментировать текущую строку или выделение.
Включить или отключить Ctrl-E Включает или отключает комментирование текущей
комментирование строки.
Увеличить отступ Ctrl-I Увеличить отступ текущей строки или выделения
на одну табуляцию или пробелами на величину
ширины табуляции.
Уменьшить отступ Ctrl-U Удаляет из отступа текущей строки или выделения
одну табуляцию или количество пробелов, равное
ширине табуляции.
Увеличить отступ на один Увеличивает отступ строки или выделения на один
пробел пробел.
Уменьшить отступ на один Уменьшает отступ строки или выделения на один
пробел пробел.
Использовать «умный отступ» Установить отступ строки или всех выделенных строк
так же, как и в предыдущей строке.
Передать пользовательской Ctrl-1 (2,3) Передать выделение настроенной внешней команде
команде 1 (2,3) (доступно для первых 9 настроенных команд,
подробнее см. в разделе `Отправка текста через
пользовательские команды`_.
Отправить выделенное в терминал Отправить текущую строку или выделение
во встроенный терминал (VTE).
Переформатировать строки/блок Переформатировать выделенные строки или текущий
(с отступом) текстовый блок, разрывая строки
по маркеру длинной строки или по столбцу
разрыва строки, если разрыв строки включён в
текущем документе.
Объединить строки Заменить окончания строк и последующие отступы
одним пробелом во всё выделенном или текущем
(с отступом) текстовом блоке.
=============================== ========================= ==================================================
Сочетания клавиш для настройки
``````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Настройка предпочтений Ctrl-Alt-P Открыть диалоговое окно настройки предпочтений.
Настройка предпочтений модулей Открыть диалоговое окно настройки предпочтений
модулей.
=============================== ========================= ==================================================
Сочетания клавиш для поиска
```````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Найти Ctrl-F (C) Открыть диалоговое окно поиска.
Найти следующее Ctrl-G Найти следующее вхождение.
Найти предыдущее Ctrl-Shift-G Найти предыдущее вхождение.
Найти следующее выделение Найти следующее вхождение выделенного текста.
Найти предыдущее выделение Найти предыдущее вхождение выделенного текста.
Заменить Ctrl-H (C) Открыть диалоговое окно замены.
Найти в файлах Ctrl-Shift-F Открыть диалоговое окно поиска файлов.
Следующее сообщение Перейти к строке, для которой имеется следующее
сообщение в окне сообщений.
Предыдущее сообщение Перейти к строке, для которой имеется предыдущее
сообщение в окне сообщений.
Найти использование Ctrl-Shift-E Найти все вхождения текущего слова или выделения
(см. примечание ниже) во всех открытых
документах и вывести список результатов в окно
сообщений.
Статистика документа Ctrl-Shift-D Найти все вхождения текущего слова или выделения
(см. примечание ниже) в текущем документе и
и вывести список результатов в окно сообщений.
Пометить все Ctrl-Shift-M Выделить цветным фоном все совпадения текущего слова
или выделения (см. примечание ниже) в текущем
документе. Если ничего не найдено, или курсор
находится рядом с существующим совпадением,
выделенные совпадения будут удалены.
=============================== ========================= ==================================================
.. Примечание::
сочетания клавиш, помеченные «см. примечание ниже», работают следующим образом: если текст не
выделен, используется слово под курсором, причём *оно должно совпадать полностью*
(как в случае, когда в диалоговом окне поиска включена опция `Искать только целое слово`).
Однако если текст выделен, поиск совпадений не зависит от границ слов.
Сочетания клавиш для перехода
`````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Перейти на шаг вперёд Alt-Right (C) Перейти к следующей позиции в истории навигации.
См. раздел `История навигации`_.
Вернуться на шаг назад Alt-Left (C) Перейти к предыдущей позиции в истории навигации.
См. раздел `История навигации`_.
Перейти к строке Ctrl-L Перейти к форме перехода к строке по номеру.
Перейти к парной скобке Ctrl-B Если курсор находится перед скобкой или за ней —
перейти к скобке, образующей с ней пару.
Повторное нажатие возвращает к первой скобке.
Установить или очистить маркер Ctrl-M Установить или очистить маркер на текущей строке.
Перейти к следующему маркеру Ctrl-. Перейти к следующему маркеру в текущем документе.
Перейти к предыдущему маркеру Ctrl-, Перейти к предыдущему маркеру в текущем документе.
Перейти к определению символа Ctrl-T Перейти к определению текущего слова или
выделения. См. `Переход к определению символа`_.
Перейти к объявлению символа Ctrl-Shift-T Перейти к объявлению текущего слова или
выделения. См. `Переход к объявлению символа`_.
Перейти к началу строки Home Переместить курсор в начало строки. Ведёт себя
иначе, если установлен параметр smart_home_key_.
Перейти к концу строки End Переместить курсор в конец строки.
Перейти к началу отображаемой Alt-Home Переместить курсор к началу отображаемой строки.
строки Это полезно, когда используется перенос строк и
необходимо перейти к началу перенесённой,
виртуальной строки, а не к реальному началу всей
строки. Если перенос не применяется, команда
аналогична `Перейти к началу строки`.
Перейти к концу отображаемой Alt-End Переместить курсор к концу отображаемой строки.
строки Если перенос не применяется, команда аналогична
`Перейти к концу строки`.
Перейти к началу слова Ctrl-/ Перейти к предыдущей части текущего слова.
Перейти к концу слова Ctrl-\\ Перейти к следующей части текущего слова.
=============================== ========================= ==================================================
Сочетания клавиш для настройки просмотра
````````````````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
На весь экран F11 (C) Переключить на полноэкранный режим.
Показать/скрыть окно сообщений Включение и выключение окна сообщений (статус и
сообщения компилятора).
Показать/скрыть боковую панель Включение и выключение боковой панели.
Показать/скрыть все Включение и выключение всех дополнительных виджетов
дополнительные виджеты (вкладок, панелей, окна сообщений и строки
состояний).
Увеличить Ctrl-+ (C) Увеличить масштаб текста.
Уменьшить Ctrl-- (C) Уменьшить масштаб текста.
Обычный размер Ctrl-0 Сбросить все предыдущие изменения масштаба текста.
=============================== ========================= ==================================================
Сочетания клавиш для управления фокусом
```````````````````````````````````````
================================ ========================= ==================================================
Действие Клавиши Описание
================================ ========================= ==================================================
Перейти к редактору F2 Перейти в окно редактора. При этом с короткой
задержкой будет обновлена строка со статистикой
документа.
Перейти к поиску F7 Перейти к форме поиска на панели инструментов (если
она видна).
Показывать окно сообщений Показать вкладку окна сообщений.
Переключиться на компилятор Перейти к сообщениям компилятора.
Перейти к сообщениям Перейти к окну сообщений.
Перейти к заметкам F6 Перейти к окну для заметок.
Переключиться на терминал F4 Перейти в окно терминала.
Перейти к боковой панели Перейти к боковой панели.
Перейти к списку символов Перейти к списку символов на боковой панели
(если он виден).
Перейти к списку документов Перейти к списку документов на боковой панели
(если он виден).
================================ ========================= ==================================================
Сочетания клавиш для работы с окнами документов и их вкладками
``````````````````````````````````````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Перейти к документу слева Ctrl-PageUp (C) Перейти к предыдущему открытому документу.
Перейти к документу справа Ctrl-PageDown (C) Перейти к следующему открытому документу.
Перейти к последнему документу Ctrl-Tab Перейти к ранее показанному документу (если он ещё
открыт).
Удерживая Ctrl (или другой модификатор, если
сочетание было изменено) вы увидите диалоговое окно,
затем повторные нажатия этого сочетания приведут
к переходу ко второму последнему использованному
документу, к третьему последнему и т.д. Также это
известно как переключение между наиболее часто
используемыми документами.
Переместить документ влево Ctrl-Shift-PageUp Передвинуть вкладку окна текущего документа левее.
Переместить документ вправо Ctrl-Shift-PageDown Передвинуть вкладку окна текущего документа правее.
Переместить документ в начало Передвинуть вкладку окна текущего документа на
первое место.
Переместить документ в конец Передвинуть вкладку окна текущего документа на
последнее место.
=============================== ========================= ==================================================
Сочетания клавиш для работы с документом
````````````````````````````````````````
==================================== ==================== ==================================================
Действие Клавиши Описание
==================================== ==================== ==================================================
Клонировать См. `Клонирование документов`_.
Заменить табуляции пробелами Заменить все табуляции на нужное количество пробелов
во всём документе или в текущем выделении.
Заменить пробелы табуляциями Заменить начальные пробелы символами табуляции во
всём документе или в текущем выделении.
Свернуть/развернуть текущий блок Свернуть или развернуть текущий блок кода.
Свернуть все Свернуть все блоки кода.
Развернуть все Развернуть все блоки кода.
Обновить список символов Ctrl-Shift-R Обновить список символов.
Включить или отключить перенос Включить или отключить перенос длинных строк.
строк
Включить или отключить разрыв строки Включить или отключить автоматический разрыв
длинных строк в заданной позиции.
Удалить маркеры Удалить все маркеры на строках или словах, которые
были установлены с помощью функции «Пометить все»
в диалоговом окне поиска или вручную.
Удалить индикаторы ошибок Удалить все индикаторы ошибок в текущем документе.
Удалить маркеры и индикаторы ошибок Сочетает команды ``Удалить маркеры`` и
``Удалить индикаторы ошибок``.
==================================== ==================== ==================================================
Сочетания клавиш для работы с проектом
``````````````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Создать Создать новый проект.
Открыть Открыть файл проекта.
Свойства Показать свойство проекта.
Закрыть Закрыть текущий проект.
=============================== ========================= ==================================================
Сочетания клавиш сборки
```````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Скомпилировать F8 Скомпилировать текущий файл.
Сборка F9 Собрать (скомпилировать, если необходимо, и
скомпоновать) текущий файл.
Собрать все Shift-F9 Собрать текущий файл с помощью утилиты Make.
Собрать заданную цель Ctrl-Shift-F9 Собрать текущий файл с помощью Make и заданной
цели.
Собрать объектный файл Shift-F8 Скомпилировать текущий файл с помощью Make.
Следующая ошибка Перейти в исходном тексте к следующей строке,
в которой при сборке обнаружена ошибка.
Предыдущая ошибка Перейти в исходном тексте к предыдущей строке,
в которой при сборке была обнаружена ошибка.
Запустить F5 Выполнить текущий файл в эмуляторе терминала.
Установить команды сборки Открыть диалоговое окно настройки команд сборки.
=============================== ========================= ==================================================
Сочетания клавиш для работы с инструментами
```````````````````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Показать выбор цвета Открыть диалоговое окно выбора цвета.
=============================== ========================= ==================================================
Сочетания клавиш справочной системы
```````````````````````````````````
=============================== ========================= ==================================================
Действие Клавиши Описание
=============================== ========================= ==================================================
Справка F1 (C) Открыть руководство пользователя.
=============================== ========================= ==================================================
Конфигурационные файлы
======================
.. Предупреждение::
для работы с файлами конфигурации необходимо использовать кодировку UTF-8 *без BOM*.
Пути к файлам конфигурации
--------------------------
Geany имеет файлы конфигурации, установленные по умолчанию для системы, а также файлы конфигурации для каждого пользователя.
Системные файлы обычно не следует редактировать, поскольку они будут перезаписаны при обновлении Geany.
Пользовательский каталог конфигурации может быть переопределён с помощью ключа ``-c``, но обычно так не делают. См. `Опции командной строки`_.
.. Примечание::
все отсутствующие подкаталоги в пользовательском каталоге конфигурации
будут созданы при запуске Geany.
Вы можете проверить пути, используемые Geany, с помощью меню *Справка->Отладочные сообщения*. В верхней части должны быть две строки подобного вида::
Geany-INFO: System data dir: /usr/share/geany
Geany-INFO: User config dir: /home/username/.config/geany
Пути в Unix-подобных системах
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Системный путь — ``$prefix/share/geany``, где ``$prefix`` — это путь, по которому установлена Geany (см.`Префикс установки`_).
Пользовательский каталог конфигурации обычно имеет вид:
``/home/username/.config/geany``
Пути в Windows
^^^^^^^^^^^^^^
Системный путь — это подпапка ``data`` пути установки в Windows.
Пользовательский каталог конфигурации может отличаться, но в Windows XP это:
``C:\Documents and Settings\UserName\Application Data\geany``
В Windows 7 и выше вы, скорее всего, найдёте его по адресу:
``C:\users\UserName\Roaming\geany``
Пункты меню «Инструменты»
----------------
В меню *Инструменты* есть подменю *Файлы конфигурации*, которое содержит пункты для некоторых из доступных пользовательских файлов конфигурации. Щелчок на одном из них открывает его в редакторе для обновления. Geany перезагрузит файл после того, как вы его сохраните.
.. Примечание::
другие файлы конфигурации, не показанные здесь, необходимо открывать
вручную, и они не будут автоматически перезагружаться при сохранении.
(см. *Обновить конфигурацию* ниже).
Также есть пункт *Обновить конфигурацию*, который можно использовать, если вы обновили один из других файлов конфигурации, изменили или добавили файлы шаблона.
Пункт *Обновить конфигурацию* также необходим для обновления цветов подсветки синтаксиса.
.. Примечание::
цвета подсветки синтаксиса не обновляются в открытых документах после
сохранения файла filetypes.common, так как это может занять значительное
количество времени.
Настройка внешнего вида Geany с помощью CSS GTK+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Чтобы переопределить стили CSS GTK+, можно использовать традиционные механизмы или меню *Инструменты->Файлы конфигурации* и открыть файл с именем ``geany.css``,
который будет загружаться после применения других стилей CSS, что позволит переопределять стили по умолчанию.
Geany предлагает ряд CSS-идентификаторов, которые можно использовать для изменения её внешнего вида. Среди наиболее интересных можно назвать:
* ``geany-compiler-context`` — стиль, используемый для вывода команды сборки при ошибках
* ``geany-compiler-error`` — стиль, используемый для ошибок команды сборки
* ``geany-compiler-message`` — стиль другого вывода, встречающегося при выполнении команды сборки
* ``geany-document-status-changed`` — стиль для подписей вкладок документа при его изменении
* ``geany-document-status-disk-changed`` — стиль для подписей вкладок документа при изменении файла на диске
* ``geany-document-status-readyonly``` — стиль для подписей вкладок документа, когда документ доступен только для чтения
* ``geany-search-entry-no-match`` — стиль записей диалогового окна поиска/замены при отсутствии совпадений
* ``geany-terminal-dirty`` — стиль для подписи вкладки «Терминал» окна сообщений, при изменении вывода терминала.
Общий файл конфигурации
------------------------
Системные администраторы могут добавить общий файл конфигурации для Geany, который будет использоваться при запуске Geany, если пользовательский файл конфигурации не существует.
Общий файл конфигурации считывается из файла ``geany.conf`` в системном пути к файлу кофигурации — см. `Пути к файлам конфигурации`_. Он может содержать любые параметры, которые есть в обычном файле конфигурации, создаваемом Geany, но не обязательно должен содержать все параметры.
.. Примечание::
эта возможность в основном предназначена для сопровождающих пакетов или системных
администраторов, которые хотят настроить Geany в многопользовательской среде и
установить разумные значения по умолчанию для этой среды. Обычно пользователи
в этом не нуждаются.
Файлы определения типа файла
------------------------------
Все определения цветов и другие параметры, относящиеся к типу файла, хранятся в файлах определения типа файла. Эти параметры включают цвета для подсветки синтаксиса, общие параметры, такие как символы для комментирования или символы-разделители слов, а также параметры компилятора и компоновщика.
См. также `Пути к файлам конфигурации`_.
Имена файлов
^^^^^^^^^^^^
Каждый тип файла имеет соответствующий файл определения типа файла. Формат для встроенного типа файла `Foo` следующий::
filetypes.foo
Расширение обычно представляет собой просто имя типа файла в нижнем регистре.
Однако есть несколько исключений:
=============== ==========
Тип файла Расширение
=============== ==========
C++ cpp
C# cs
Make makefile
Matlab/Octave matlab
=============== ==========
Существует также `специальный файл filetypes.common`_.
Для `пользовательских типов файлов`_, имя файла для `Foo` отличается::
filetypes.Foo.conf
Подробности см. по ссылке.
Системные файлы
^^^^^^^^^^^^^^^
Общесистемные файлы конфигурации типов файлов можно найти по пути к системному файлу конфигурации. Они называются ``filetypes.$ext``, где $ext — это имя типа файла. Для каждого типа файла есть соответствующий файл определения. Существует одно исключение: ``filetypes.common`` — этот файл предназначен для общих параметров, не относящихся к определённому типу файла.
.. Примечание::
не рекомендуется редактировать общесистемные файлы,
поскольку они будут переопределены при обновлении Geany.
Пользовательские файлы
^^^^^^^^^^^^^^^^^^^^^^
Чтобы изменить параметры, скопируйте файл из системной конфигурации в подкаталог ``filedefs`` в пользовательском каталоге конфигурации. Затем вы сможете редактировать этот файл, и изменения будут доступны после обновления Geany.
Кроме того, вы можете создать файл самостоятельно и добавить в него только те параметры, которые вы хотите изменить. Все недостающие будут считаны из соответствующего системного файла конфигурации.
Пользовательские типы файлов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
При запуске Geany ищет файлы ``filetypes.*.conf`` по путям к системному и пользовательскому файлам, добавляя все найденные типы файлов с именем, совпадающим с подстановочным знаком '``*``' — например, ``filetypes.Bar.conf``.
Пользовательские типы файлов не так мощны, как встроенные, но была реализована поддержка следующих параметров:
* Распознавание и установка типа файла (после того, как пользователь вручную обновил
файл `расширений типов файлов`_).
* `Принадлежность к группе типов файлов`_.
* Чтение параметров типа файла в секции ``[settings]``, включая:
* Использование существующего лексического анализатора для подсветки синтаксиса (ключ `lexer_filetype`_).
* Использование существующего анализатора тегов (ключ `tag_parser`_).
* Команды сборки (секция ``[build-menu]``).
* Загрузка файлов глобальных тегов (разделяющих пространство имён файла ``tag_parser``).
Подробнее о каждом параметре см. в разделе `Конфигурация типов файлов`_.
Создание пользовательского типа файла из существующего типа файла
`````````````````````````````````````````````````````````````````
Поскольку большинство параметров типа файла относится к подсветке синтаксиса (секции styling, keywords, ``lexer_properties``), лучше всего скопировать существующий файл filetype, использующий лексический анализатор, который вы хотите использовать как основу пользовательского типа файла, используя корректный формат расширения файла, показанный выше, например::
cp filetypes.foo filetypes.Bar.conf
Затем добавьте параметр ``lexer_filetype=Foo`` (если он ещё не присутствует) и добавьте/настройте другие параметры.
.. Предупреждение::
секции ``[styling]`` и ``[keywords]`` имеют ключевые имена,
относящиеся к каждому типу файла/лексическому анализатору. Следует придерживаться тех же
имён — в частности, некоторые лексические анализаторы поддерживают только один список
ключевых слов или не поддерживают ни одного.
Конфигурация типов файлов
^^^^^^^^^^^^^^^^^^^^^^^^^
Помимо перечисленных ниже секций, каждый файл filetype может содержать секцию [build-menu], как описано в разделе `Секция [build-menu]`_.
Секция [styling]
````````````````
В этой секции определяются цвета подсветки синтаксиса. Формат определения:
* ``key=foreground_color;background_color;bold_flag;italic_flag``
Цвета должны быть указаны в виде шестнадцатеричных значений RGB с префиксом 0x или # аналогично шестнадцатеричным триплетам HTML/CSS. Например, все следующие значения являются допустимыми для чистого красного цвета: 0xff0000, 0xf00, #ff0000 или #f00. Значения не зависят от регистра, но лучше использовать нижний регистр. Обратите внимание, что вы также можете использовать *именованные цвета*, заменив значение цвета именем цвета, определённым в секции ``[named_colors]``, см. `раздел [named_colors]`_ для получения дополнительной информации.
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.
Чтение стилей из другого типа файла
***********************************
Вы можете автоматически скопировать все стили из другого файла определения типа файла, используя следующий синтаксис для группы ``[styling]``::
[styling=Foo]
где Foo — имя типа файла. Будет прочитана соответствующая секция ``[styling]`` из файла ``filetypes.foo``.
Это полезно, когда один и тот же лексический анализатор используется для нескольких типов файлов (например, C/C++/C#/Java/etc). Например, чтобы сделать стилизацию C++ такой же, как и стилизация C, необходимо поместить следующее в файл ``filetypes.cpp``::
[styling=C]
Секция [keywords]
`````````````````
Секция содержит ключевые слова для различных списков, относящихся к типу файла, для них добавление в секцию новых ключей работать не будет. Можно изменять только существующие списки, добавляя или удаляя слова.
.. Важно::
ключевые слова должны быть записаны в одну строку без символов конца строки.
Секция [lexer_properties]
`````````````````````````
Здесь можно задать специальные свойства для лексического анализатора Scintilla в формате ``key.name.field=some.value``.
Свойства, используемые Geany, перечислены в системных файлах определения типа файла. Чтобы найти другие свойства, понадобится исходный код Geany::
egrep -o 'GetProperty\w*\("([^"]+)"[^)]+\)' scintilla/Lex*.cxx
Секция [settings]
`````````````````
extension
Расширение файла, используемое по умолчанию при сохранении файлов, не
включая точку (``.``). Используемое расширение должно
соответствовать одному из шаблонов, связанных с данным типом файла (см.
`Расширения типов файлов`_).
*Пример:* ``extension=cxx``
wordchars
Эти символы определяют границы слов при выделении
и поиске с использованием опции сопоставления слов.
*Пример:* (смотрите в системных файлах типов filetypes.\* files)
.. Примечание::
это отменяет параметр *wordchars* filetypes.common и
имеет приоритет над параметром *whitespace_chars*.
comment_single
Символ или строка, используемые для комментирования кода. Если вы хотите использовать
только многострочные комментарии, не задавайте этот параметр, а лучше задайте comment_open и
comment_close.
Однострочные комментарии используются в приоритете над многострочными для
комментирования строки, например, с помощью команды `Закомментировать/раскомментировать строку`.
*Пример:* ``comment_single=//``
comment_open
Символ или строка, используемые для комментирования кода. Чтобы использовать многострочные комментарии,
также необходимо установить comment_close. Если вы хотите использовать
однострочные комментарии, лучше установить comment_single.
Многострочные комментарии используются в приоритете перед однострочными для
комментирования блока, например, при комментировании шаблонов.
*Пример:* ``comment_open=/*``
comment_close
Если используются многострочные комментарии, это символ или строка для
закрытия комментария.
*Пример:* ``comment_close=*/``
comment_use_indent
Установите значение false, если символ или строка комментария должны располагаться
с самого начала строки. Если установлено значение true, используется любой отступ.
Примечание: отступ комментария
``comment_use_indent=true`` сгенерирует это, если строка
закомментирована (например, с помощью Ctrl-D)::
#command_example();
``comment_use_indent=false`` сгенерирует это, если строка
закомментирована (например, с помощью Ctrl-D)::
# command_example();
Примечание: этот параметр работает только для однострочных комментариев ('//',
'#' или ';').
*Пример:* ``comment_use_indent=true``
context_action_cmd
Команда, которая может выполняться для обработки текущего слова или выделения.
Пример использования: открыть документацию по API для вызова функции в позиции курсора.
Команда может быть задана для каждого типа файла, а если не задана, то будет использована
общая команда. Сама команда может быть указана без полного пути, тогда ее поиск будет
выполняться с учётом переменной окружения $PATH. Но в целях безопасности рекомендуется
указывать полный путь к команде. Подстановочный знак %s будет заменён текущим словом в позиции курсора
или текущим выделением.
Совет: для файлов PHP может быть полезна следующая настройка:
context_action_cmd=firefox "https://www.php.net/%s"
*Пример:* ``context_action_cmd=devhelp -s "%s"``
.. _tag_parser:
tag_parser
Название языка для менеджера тегов, например «C». Обычно совпадает с именем типа файла.
.. _lexer_filetype:
lexer_filetype
Имя типа файла для установки подсветки синтаксиса в файле другого типа.
Имя не должно быть рекурсивным, т.е. не должно использоваться самим ключом *lexer_filetype*, например::
lexer_filetype=C
#lexer_filetype=C++
Вторая строка неверна, поскольку ``filetypes.cpp`` сам использует
``lexer_filetype=C``.
symbol_list_sort_mode
Порядок сортировки списка символов по умолчанию.
===== ========================================
Знач. Порядок сортировки
===== ========================================
0 Сортировать символы по имени
1 Сортировать символы по внешнему виду
(номеру строки)
===== ========================================
.. _xml_indent_tags:
xml_indent_tags
Если для этого параметра установлено значение *true*, то для новой строки после строки, заканчивающейся
незакрытым тегом XML/HTML, будет автоматически установлен отступ. Это относится только
к типам файлов, для которых используется лексический анализатор HTML или XML. Такие типы файлов имеют
этот параметр в системых файлах конфигурации.
mime_type
Тип MIME для данного типа файла, например «text/x-csrc». Используется,
например, для выбора значка, который будет отображаться для этого типа файла.
Секция [indentation]
````````````````````
Этот раздел позволяет определить параметры отступов по умолчанию, характерные для типа файла, переопределяя те, что заданы в предпочтениях. Это может быть полезным для типов файлов, требующих особой настройки параметров отступов (например, табуляция только для файлов Makefile). Эти параметры не отменяют автоопределение, если оно активировано.
width
Ширина принудительного отступа.
type
Тип принудительного отступа.
===== =======================
Знач. Тип отступа
===== =======================
0 Только пробелы
1 Только табуляция
2 Смешанный
(табуляция и пробелы)
===== =======================
Секция [build-menu] для типа файла
``````````````````````````````````
Поддерживаются те же ключи, что и в файле ``geany.conf`` `раздела [build-menu]`_.
Пример::
FT_00_LB=_Compile
FT_00_CM=gcc -c "%f"
FT_00_WD=
FT_01_LB=_Build
FT_01_CM=gcc -o "%e" "%f"
FT_01_WD=
EX_00_LB=_Execute
EX_00_CM="./%e"
EX_00_WD=
error_regex=^([^:]+):([0-9]+):
Секция [build_settings]
```````````````````````
Начиная с версии Geany 0.19 этот раздел предназначен для поддержки старых версий. Значения, заданные в секции [build-menu], будут переопределять значения в этой секции.
Если какие-либо параметры пунктов меню сборки были настроены в диалоговом окне `Установить команды сборки`_ (или на вкладке *Сборка* диалогового окна `Свойства проекта`_), то эти параметры сохраняются в секции [build-menu] и будут переопределять параметры этой секции для этого пункта.
error_regex
Подробнее см. в секции [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. Этот файл определяет некоторые общие параметры, не относящиеся к конкретному типу файла.
Вы можете открыть пользовательский файл filetypes.common с помощью пункта меню *Инструменты->Файлы конфигурации->filetypes.common*. Это добавит параметры по умолчанию в пользовательский файл, если такой файл не существует. В качестве альтернативы файл можно создать вручную, добавив только те параметры, которые вы хотите изменить. Все недостающие параметры будут считаны из системного файла.
.. Примечание::
информацию об определении стилей см. в разделе `Конфигурация типов файлов`_.
Секция [named_styles]
`````````````````````
Объявленные здесь именованные стили могут быть использованы в секции [styling] любого файла filetypes.*.
Например:
*В файле filetypes.common*::
[named_styles]
foo=0xc00000;0xffffff;false;true
bar=foo
*В файле filetypes.c*::
[styling]
comment=foo
Это позволяет избежать копирования и вставки всего определения стиля в несколько разных файлов.
.. Примечание::
вы можете определить псевдонимы для именованных стилей, как показано в примере выше с ``bar``,
но они должны объявляться после основного стиля.
Секция [named_colors]
`````````````````````
Объявленные здесь именованные цвета могут быть использованы в секции ``[styling]`` или ``[named_styles]`` любого файла filetypes.* или цветовой схемы.
Например::
[named_colors]
my_red_color=#FF0000
my_blue_color=#0000FF
[named_styles]
foo=my_red_color;my_blue_color;false;true
Это позволяет определить цветовую палитру по имени, так что для изменения цвета во всей схеме достаточно изменить шестнадцатеричное значение в одном месте.
Секция [styling]
`````````````````
default
Стиль по умолчанию. Используется для стилизацию файлов без установленного типа файла.
*Пример:* ``default=0x000000;0xffffff;false;false``
selection
Стиль для окрашивания выделенного текста. Формат:
* Цвет шрифта
* Цвет фона
* Использовать цвет шрифта
* Использовать цвет фона
Цвета будут использованы только при установке для 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
Стиль мигающего курсора. Интерпретируются только
первый и третий аргументы.
Установка третьего аргумента изменит вид курсора на блочный.
*Пример:* ``caret=0x000000;0x0;false;false``
caret_width
Ширина мигающего курсора. Интерпретируется только
первый аргумент. Ширина задаётся в пикселях, максимум — 3.
Значение 0 сделает курсор невидимым.
*Пример:* ``caret_width=3``
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``
margin_linenumber
Цвет текста и фона полей номера строки.
.. _Параметры сворачивания:
margin_folding
Цвет текста и фона полей сворачивания.
fold_symbol_highlight
Цвет выделения символов сворачивания.
folding_style
Значки сворачивания блоков кода. Используются только первый и второй аргументы.
Допустимые значения для первого аргумента:
* 1 — квадраты
* 2 — кружки
* 3 — стрелки
* 4 — знаки +/-
Допустимые значения для второго аргумента:
* 0 — линий нет
* 1 — прямые линии
* 2 — кривые линии
*По умолчанию:* ``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 и ME:
всегда устанавливайте значение 256 для отключения полупрозрачности, иначе Geany может завершиться аварийно.
Интерпретируются только первый и второй аргументы.
*Пример:* ``translucency=256;256;false;false``
marker_line
Стиль для подсветки строки (например, при использовании команд *Перейти к строке* и *Перейти к символу*).
Цвет текста (первый аргумент) используется только если включены маркеры (см. меню «Вид»).
Интерпретируются только первый и второй аргументы.
*Пример:* ``marker_line=0x000000;0xffff00;false;false``
marker_search
Стиль маркера пометки результатов поиска (при использовании «Отметить» в диалоговом окне поиска).
Второй аргумент задаёт цвет фона при отображении прямоугольника.
Интерпретируется только второй аргумент.
*Пример:* ``marker_search=0x000000;0xb8f4b8;false;false``
marker_mark
Стиль отмеченной строки (при использовании сочетания клавиш «Установить или очистить маркер»
(Ctrl-M)). Цвет текста (первый аргумент) используется только если включено поле маркеров (см. меню «Вид»).
Интерпретируются только первый и второй аргументы.
*Пример:* ``marker_mark=0x000000;0xb8f4b8;false;false``
marker_translucency
Уровни полупрозрачности для маркера (первый аргумент) и маркера поиска (второй аргумент).
Допустимы значения от 0 до 256.
Пользователям Windows 95, 98 и ME:
всегда устанавливайте значение 256 для отключения полупрозрачности, иначе Geany может завершиться аварийно.
Интерпретируются только первый и второй аргументы.
*Пример:* ``marker_translucency=256;256;false;false``
line_height
Межстрочный интервал. Первый аргумент задаёт верхний отступ, второй — нижний (от базовой линии шрифта).
Интерпретируются только первый и второй аргументы.
*Пример:* ``line_height=0;0;false;false``
calltips
Окраска подсказок. Первые два аргумента определяют цвет текста и фона, а третий и четвёртый устанавливают,
использовать ли определённые цвета.
*Пример:* ``calltips=0xc0c0c0;0xffffff;false;false``
indicator_error
Цвет индикатора ошибок.
Используется только первый аргумент (цвет текста).
*Пример:* ``indicator_error=0xff0000``
Секция [settings]
`````````````````
whitespace_chars
Символы, которые следует рассматривать как пробельные символы. Эти символы игнорируются
при перемещении, выделении и удалении по границам слов (см. Сочетания клавиш `Scintilla`_).
Сюда должны входить пробел (\\s) и табуляция (\\t).
*Пример:* ``whitespace_chars=\s\t!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~``
wordchars
Эти символы определяют границы слов при выделении и поиске с использованием опций
сопоставления слов.
*Пример:* ``wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789``
.. Примечание::
этот параметр имеет приоритет над параметром *whitespace_chars*.
Расширения типов файлов
-----------------------
.. Примечание::
чтобы изменить расширение типа, по умолчанию используемое при сохранении нового файла,
см. `Файлы определения типа файла`_.
Можно переопределить список расширений файлов, используемых Geany для определения типов файлов посредством пользовательского файла ``filetype_extensions.conf``. Для этого воспользуйтесь пунктом меню *Инструменты->Файлы конфигурации->filetype_extensions.conf*. См. также `Пути к файлам конфигурации`_.
Следует указать только те расширения типов файлов, которые вы хотите переопределить в пользовательском файле конфигурации и удалить или закомментировать остальные. Для редактирования списков вносите изменения в строку справа от знака ``=``, записывая возможные для данного типа файла расширения через точку с запятой.
Например, чтобы переопределить расширения типов файлов для Make, файл должен выглядеть так::
[Extensions]
Make=Makefile*;*.mk;Buildfile;
Принадлежность к группам типов файлов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Группы типов файлов используются в меню `Документ->Установить тип файла`.
Принадлежность к группам также находится в файле ``filetype_extensions.conf``. Этот файл используется для хранения информации, необходимой Geany при запуске, в то время как отдельные файлы определения типа файла содержат информацию, необходимую только при использовании документа с их типом файла.
Формат выглядит следующим образом::
[Groups]
Programming=C;C++;
Script=Perl;Python;
Markup=HTML;XML;
Misc=Diff;Conf;
None=None;
Имена ключей не могут быть настроены.
.. Примечание::
принадлежность к группе считывается только при запуске.
.. Совет::
вы можете сделать так, чтобы часто используемые типы файлов отображались на верхнем уровне
меню типов файлов, добавив их в группу «None», например `None=C;Python`.
Формат файла настройки предпочтений
-----------------------------------
Файл параметров пользователя ``geany.conf`` содержит параметры для всех элементов, настроенных в диалоговом окне настройки предпочтений. Его не следует редактировать во время работы Geany, поскольку при выходе будут сохранены параметры текущего сеанса работы и файл окажется перезаписан.
Секция [build-menu]
^^^^^^^^^^^^^^^^^^^
Секция [build-menu] содержит конфигурацию меню сборки. Эта секция может встречаться в файлах типа файла, настройки предпочтений и проекта и всегда имеет формат, описанный здесь. Разные пункты меню загружаются из разных файлов, подробнее см. таблицу в разделе `Конфигурация меню сборки`_. Все параметры могут быть настроены из диалогов, за исключением команды «выполнить» в файлах типа файла и определениях типа файла в файле проекта, поэтому только они требуют ручной правки.
Команды меню
````````````
Для каждой команды меню в секции build-menu имеется запись следующего формата:
``GG_NN_FF``
где:
* GG — группа команд меню,
- FT для сборки по типу файла
- NF для сборки, независящей от типа файла
- EX для исполнения
* NN — двузначный номер команды в группе, начиная с 00
* FF — поле,
- LB для метки (названия пункта меню)
- CM для команды
- WD для рабочего каталога
Пример см. в `секции [build-menu] для типа файла`_.
Регулярное выражение для разбора сообщений об ошибках
`````````````````````````````````````````````````````
error_regex
Это Perl-совместимое регулярное выражение (PCRE) для разбора имени файла
(абсолютного или относительного) и номера строки из выходных данных сборки.
Если не задано, Geany вернётся к стандартному разбору сообщений об ошибках.
Geany считывает только два первых полученных результата. Цифровая часть интерпретируется как номер строки, остальное как имя файла.
*Пример:* ``error_regex=^(.+):([0-9]+):[0-9]+``
В результате будет разобрано сообщение вида:
``test.py:7:24: E202 whitespace before ']'``
Формат файла проекта
--------------------
Файл проекта содержит параметры, относящиеся к проекту, и, возможно, список файлов текущего сеанса.
Добавления к секции [build-menu]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл проекта также может содержать дополнительные поля в секции [build-menu] в дополнение к рассмотренным выше в разделе `Секция [build-menu]`_.
Связанные с типами файлов пункты меню, настроенные для проекта, хранятся в файле проекта.
Список типов файлов находится в разделе ``filetypes``.
Формат записей для типов файла соответствует приведённому в разделе `Секция [build-menu]`_, но ключи имеют префикс из имени типа, как оно приведено в списке ``filetypes``, например, запись для команды меню в разделе типов для языка С должна быть следующей:
``CFT_00_LB=Label``
Шаблоны
-------
Geany поддерживает работу со следующими шаблонами:
* Запись в журнале изменений
* Заголовок файла
* Описание функции
* Краткая заметка GPL
* Краткая заметка BSD
* Шаблоны
Для использования этих шаблонов откройте меню «Правка» или контекстное меню окна редактора, выберите команду «Вставить комментарии» и вставьте необходимый шаблон.
Некоторые шаблоны (например, заголовок файла или запись в журнале изменений) всегда вставляются в начало файла.
Для вставки описания функции курсор должен находиться внутри неё, чтобы можно было автоматически найти имя функции. Описание вставляется на одну строку выше функции. Если имя функции найти не удалось, в тексте описания вместо правильного имени появится «unknown».
.. Примечание::
Geany автоматически перезагружает шаблоны, обнаружив сохранение файла в каталоге для шаблонов.
Перезагружаются шаблоны и по команде Инструменты->Обновить настройки.
Шаблоны с метаданными
^^^^^^^^^^^^^^^^^^^^^
Метаданные могут использоваться со всеми шаблонами, но по умолчанию применяются только для заголовка файла и записей об изменениях.
В диалоговом окне конфигурации имеется вкладка «Шаблоны» (см. `Параметры шаблонов`_). Вы можете определить значения по умолчанию, которые будут вставлены в шаблоны.
Шаблоны файлов
^^^^^^^^^^^^^^
Это шаблоны для создания новых файлов. Чтобы воспользоваться ими, выберите в меню *Файл* команду *Создать из шаблона*. Если для одного типа файла имеется несколько шаблонов, они будут сгруппированы в подменю.
Несколько шаблонов для разных типов файлов устанавливаются по умолчанию. Можно добавить шаблоны, создав соответствующие файлы. Вы также можете редактировать шаблоны файлов по умолчанию.
Содержимое файла — требуемый текст образца документа, в который могут включаться параметры подстановки, например ``{fileheader}``. Параметр подстановки заголовка файла может быть помещён куда угодно, но обычно он помещается в первую строку файла, за которой следует пустая строка.
Добавление шаблонов файлов
``````````````````````````
Шаблоны файлов считываются из каталога ``templates/files`` в разделе `Пути к файлам конфигурации`_.
Соответствующий тип файла определяется по расширению имени файла шаблона, если оно имеется. Например, созданный файл ``module.c`` появится в меню для создания с помощью шаблонов файлов с типом 'C'.
Файл шаблона считывается с диска при нажатии соответствующего пункта меню.
Настройка шаблонов
^^^^^^^^^^^^^^^^^^^^^
Каждый шаблон можно настроить по своему желанию. Шаблоны хранятся в каталоге ``~/.config/geany/templates/`` (подробнее о каталоге конфигурации см. в разделе `Опции командной строки`_). Откройте нужный шаблон с помощью редактора (в идеале Geany ;-) ) и отредактируйте по своему желанию. Некоторые параметры подстановки автоматически заменяются Geany при запуске.
Параметры в шаблонах
````````````````````
Все параметры для подстановки помещаются в тексте в фигурные скобки «{» и «}», например {date}.
**Параметры для подстановки символов**
============== ============================================= =======================================
Параметр Описание Доступность
============== ============================================= =======================================
ob { открывающая фигурная скобка (для шаблоны файлов, заголовки файлов,
предотвращения расширения параметров). сниппеты
cb } закрывающая фигурная скобка. шаблоны файлов, заголовки файлов, сниппеты
pc \% процент (для экранирования, например
``%block%`` в сниппетах). сниппеты.
============== ============================================= =======================================
Общие параметры
***************
Являются настраиваемыми, см. `Данные шаблонов`_.
============== ============================================= =======================================
Параметр Описание Доступность
============== ============================================= =======================================
developer Имя разработчика. шаблоны файлов, заголовки файлов,
описания функций, журнал изменений,
bsd, gpl, сниппеты.
initial Инициалы разработчика, например «ET» вместо шаблоны файлов, заголовки файлов,
Enrico Tröger или «JFD» вместо John Foobar описания функций, журнал изменений,
Doe bsd, gpl, сниппеты.
mail E-mail разработчика. шаблоны файлов, заголовки файлов,
описания функций, журнал изменений,
bsd, gpl, сниппеты.
company Компания, на которую работает разработчик. шаблоны файлов, заголовки файлов,
описания функций, журнал изменений,
bsd, gpl, сниппеты.
version Начальная версия при создании файла. шаблоны файлов, заголовки файлов,
описания функций, журнал изменений,
bsd, gpl, сниппеты.
============== ============================================= =======================================
Дата и время
************
Формат этих параметров можно изменить в окне настройки предпочтений, см. раздел `Данные шаблонов`_. Список доступных спецификаторов преобразования см. на https://docs.gtk.org/glib/method.DateTime.format.html.
============== ============================================= =======================================
Параметр Описание Доступность
============== ============================================= =======================================
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, например шаблоны файлов, заголовки файлов,
"Geany |(2.1)|". описания функций, журнал изменений,
bsd, gpl, сниппеты.
filename Имя текущего файла. заголовки файлов, сниппеты, шаблоны
Для новых файлов будет подставлено при первом файлов.
сохранении, если параметр находится в
пределах первых четырёх строк файла.
project Название проекта, если оно имеется. заголовки файлов, сниппеты, шаблоны
файлов.
description Описание проекта, если оно имеется. заголовки файлов, сниппеты, шаблоны
файлов.
functionname Имя функции в позиции курсора. Этот параметр описание функции.
будет заменён только в шаблоне описания
функции.
command:path Выполняет указанную команду и заменяет шаблоны файлов, заголовки файлов,
параметр на стандартный вывод команды. См. описания функций, журнал изменений,
`Специальный параметр {command:}`_ bsd, gpl, сниппеты.
============== ============================================= =======================================
Вставка фрагментов
******************
============== ============================================= =======================================
Параметр Описание Доступность
============== ============================================= =======================================
gpl Краткая ссылка на лицензию GPL. заголовок файла.
bsd Краткая ссылка на лицензию BSD. заголовок файла.
fileheader Шаблон заголовка файла. Параметр замещается сниппеты, шаблоны файлов.
только в шаблонах файлов.
============== ============================================= =======================================
Специальный параметр {command:}
*******************************
Параметр ``{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``.
Редактор панели вызывается из настройки предпочтений на самой панели инструментов или щелчком по ней правой кнопки мыши и выбором из контекстного меню.
Редактирование размещения панели вручную
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Чтобы переопределить общесистемный файл конфигурации, скопируйте его в каталог конфигурации пользователя (см. `Пути к файлам конфигурации`_).
Например::
% cp /usr/local/share/geany/ui_toolbar.xml /home/username/.config/geany/
Затем можно отредактировать его и добавить любой из доступных элементов, перечисленных в файле, или удалить любой из существующих элементов. Конечно, вы также можете изменить порядок элементов по своему желанию и добавлять или удалять дополнительные разделители. Этот файл должен иметь корректный формат XML, иначе вместо исправленного файла Geany использует общий.
Изменения будут применены после сохранения файла.
.. Примечание::
(1) Вы не можете добавлять новые действия, которые не перечислены ниже.
(2) Все добавления и изменения должны производиться в пределах пути /ui/toolbar/ path.
Доступные элементы панели инструментов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
================== ==============================================================================
Действие Описание
================== ==============================================================================
Создать Создать файл
Открыть Открыть файл
Сохранить Сохранить файл
Сохранить все Сохранить все открытые файлы
Обновить Повторно загрузить файл с диска
Закрыть Закрыть файл
Закрыть все Закрыть все открытые файлы
Печать Напечатать файл
Вырезать Вырезать выделенный фрагмент в буфер обмена
Копировать Скопировать выделенный фрагмент в буфер обмена
Вставить Вставить содержимое буфера обмена
Удалить Удалить выделенный фрагмент
Отменить Отменить последнее изменение
Вернуть Вернуть последнее изменение
Назад Перейти в предыдущему положению
Вперёд Перейти к следующему положению
Скомпилировать Скомпилировать файл
Сборка Собрать файл (действие определяется в подменю для команд Make. Geany
запоминает последнее выбранное действие и затем использует его по умолчанию при
щелчке по кнопке).
Запустить Запуск или просмотр файла
Выбор цвета Открыть диалоговое окно выбора цвета
Увеличить Увеличить текст
Уменьшить Уменьшить текст
Уменьшить отступ Уменьшить отступ
Увеличить отступ Увеличить отступ
Заменить Заменить текст в текущем документе
Поиск Поле ввода для элемента «Поиск» (может использоваться самостоятельно)
Найти Найти введённый текст в файле (работает вместе с «Поиск»)
Перейти Поле ввода места перехода для «Перейти к» (может использоваться самостоятельно)
Перейти к Перейти к строке по номеру (работает вместе с «Перейти»)
Предпочтения Открыть диалоговое окно настройки предпочтений
Выход Выход
================== ==============================================================================
Документация по модулям
=======================
Символы HTML
------------
Модуль «Символы HTML» помогает при работе со специальными символами в XML/HTML, например немецкими умлаутами ü и ä.
Диалоговое окно вставки сущности
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Когда модуль включён, можно вставлять сущности специальных символов с помощью меню *Инструменты->Вставить специальные символы HTML…*.
Откроется диалоговое окно, содержащее огромное количество специальных символов, отсортированных по категориям, которые вы можете использовать в своём документе. Вы можете разворачивать и сворачивать, нажимая на маленькую стрелку слева. Найдя нужный символ, нажмите на него и выберите «Вставить». Это позволит вставить сущность для символа в текущую позицию курсора. Также можно дважды щёлкнуть по выбранной сущности.
Замена специальных символов их сущностями
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Чтобы помочь сделать документ XML/HTML корректным, модуль поддерживает замену специальных символов, известных модулю. Поддерживается как массовая замена, так и немедленная замена во время набора текста.
Некоторые символы не будут заменены. К ним относятся:
* "
* &
* <
* >
* (` `)
Во время набора текста
``````````````````````
Вы можете активировать/деактивировать эту функцию с помощью пункта меню *Инструменты->Замена в HTML->Автоматически заменять специальные символы*. Если он активирован, то все специальные символы (кроме указанных выше исключений), известные модулю, будут заменены на их сущности.
Также можно задать сочетание клавиш для модуля, чтобы переключать статус этой функции.
Массовая замена
```````````````
После вставки большого объёма текста, например, с помощью «копировать-вставить», модуль позволяет выполнить массовую замену всех известных символов (кроме указанных выше исключений). Можно найти эту функцию в меню *Инструменты->Замена в HTML->Заменить символы в выделении* или задать сочетание клавиш для модуля.
Сохранение
----------
Автосохранение
^^^^^^^^^^^^^^
Модуль предоставляет возможность автоматического сохранения документов. Вы можете выбрать сохранение текущего документа или всех документов с заданной задержкой.
Сохранять при потере фокуса
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Вы можете сохранять текущий документ при потере фокуса редактора. Любое всплывающее окно, диалоговое окно с меню или что-либо ещё, что может заставить редактор потерять фокус, приведёт к сохранению текущего документа.
Немедленное сохранение
^^^^^^^^^^^^^^^^^^^^^^
Модуль устанавливает для каждого нового файла (*Файл->Создать* или *Файл->Создать из шаблона*) произвольно выбранное имя и тип в соответствии с используемым шаблоном или, если шаблон не использовался, настраиваемый тип файла по умолчанию. Это позволяет быстро скомпилировать, собрать и/или запустить новый файл без необходимости задавать ему явное имя с помощью диалогового окна «Сохранить как». Может быть полезно, если вы часто создаёте новые файлы только для тестирования кода или чего-то подобного.
Резервная копия
^^^^^^^^^^^^^^^
Модуль создаёт резервную копию текущего файла в Geany при сохранении. Вы можете указать каталог, в котором будет сохраняться резервная копия, и настроить автоматически добавляемое расширение в диалоговом окне настройки в менеджере модулей Geany.
После загрузки модуля в менеджер модулей Geany каждый файл копируется в настроенный каталог резервных копий *после* того, как файл был сохранён в Geany.
Разрешения на созданную резервную копию устанавливаются только на чтение и запись для пользователя. Это поможет не создавать файлы с неограниченным доступом к считыванию в потенциально небезопасных каталогах назначения, таких как /tmp (особенно полезно в многопользовательских системах). Применимо к системам кроме Windows. В Windows явные разрешения на файлы не устанавливаются.
Кроме того, можно определить, сколько уровней структуры каталогов исходного файла должно быть воспроизведено в пути к резервной копии. Например, установка значения *2* для параметра *Уровень вложенности каталогов для резервных копий* приведёт к тому, что модуль создаст два последних компонента пути к исходному файлу в пути к резервной копии и поместит туда новый файл.
Как принять участие в работе над документацией
==============================================
Этот документ (``geany.txt``) написан на языке `reStructuredText`__ (или «reST»). Его исходный файл находится в подкаталоге ``doc`` Geany. Если вы хотите внести изменения в документацию, следует взять исходный файл прямо из Git'a, чтобы быть уверенным, что это последняя версия. Сначала вам нужно настроить систему сборки для создания HTML-документации, передав опцию *--enable-html-docs* в скрипт *configure*. После редактирования файла запустите ``make`` (из корневого каталога сборки или из подкаталога *doc*), чтобы собрать HTML-документацию и посмотреть, как выглядят изменения. При этом обновится файл ``geany.html`` в подкаталоге *doc*. Чтобы создать PDF-файл, выполните настройку с помощью *--enable-pdf-docs* и запустите ``make``, как для HTML-версии. Созданный PDF-файл будет называться geany-|(version)|.pdf и будет находиться в подкаталоге *doc*.
__ https://docutils.sourceforge.net/rst.html
Если вы довольны изменениями, создайте патч::
% git diff geany.txt > foo.patch
или, что ещё лучше, создайте патч в формате Git, который сохранит данные об авторах и описание, предварительно зафиксировав изменения (сделав это в новой ветке, чтобы `master` не расходилась с апстримом), а затем используя патч в git-формате::
% git checkout -b my-documentation-changes # create a fresh branch
% git commit geany.txt
Write a good commit message...
% git format-patch HEAD^
% git checkout master # go back to master
и отправьте этот файл в список рассылки на рассмотрение.
Также можно клонировать репозиторий Geany на GitHub и отправить запрос на включение изменений.
Для сборки документации у вас должен быть установлен пакет утилит Python docutils. Пакет для систем Debian и Fedora называется ``python-docutils``.
Клавишные команды Scintilla
===========================
Copyright © 1998, 2006 Neil Hodgson
Данное приложение распространяется на условиях Scintilla и SciTE. Копия текста лицензии включена в комплект исходных кодов программы (``scintilla/License.txt``) и дана в приложении к настоящему документу. См. `Лицензия на Scintilla и SciTE`_.
20 июня 2006
Клавишные команды
-----------------
Клавишные команды для Scintilla в основном следуют общепринятым соглашениям для Windows и GTK+. Все клавиши перемещения (стрелки, page up/down, home и end) позволяют менять размеры выделения при удержании клавиши Shift, и прямоугольного выделения при удержании соответствующих клавиш (см. `Редактирование с помощью столбца (прямоугольное выделение)`_).
Некоторые команды могут оказаться недоступны при работе с теми или иными локализациями раскладки клавиатуры, так как будут использованы в системных целях, например оконным менеджером или GTK. В меню указаны клавишные эквиваленты команд. Некоторые менее употребительные команды не имеют эквивалентных команд меню:
============================================= ======================
Действие Клавиши
============================================= ======================
Увеличить размер текста. 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
============================================= ======================
Советы и подсказки
==================
«Блокнот» документов
--------------------
* Двойной щелчок по пустому месту на полосе с вкладками документов открывает
новый документ.
* Щелчок средней кнопки мыши по вкладке закрывает документ.
* Щелчок по любой вкладке при удерживаемой клавише `Ctrl` переключает на документ, использовавшийся
последним.
* Двойной щелчок по пустому месту на полосе с вкладками отключает все добавочные
виджеты (для их включения потребуется использовать меню «Вид» или сочетание клавиш).
Такое действие должно быть разрешено в настройках.
Редактор
--------
* Alt с колесом прокрутки мыши двигает страницу вверх-вниз.
* Ctrl с прокруткой меняет масштаб отображения.
* Shift с прокруткой перемещает курсор вправо-влево шагами по 8 символов.
* Ctrl-щелчок по символу вызывает переход к его определению.
* Ctrl-щелчок по скобке вызывает переход к парной скобке.
Интерфейс
---------
* Двойной щелчок в группе списка символов раскрывает или сворачивает её.
GTK
---
* Прокрутка в полосе вкладок документов переключает страницы документов.
Следующие свойства унаследованы от X-Windows (GTK поддерживает их в Windows):
* Щелчок средней кнопкой мыши вставляет последнее выделение.
* Щелчок средней кнопкой мыши по полосе прокрутки перемещает текущую
позицию без перетаскивания бегунка.
Опции, устанавливаемые при компиляции
=====================================
Есть ряд опций, который может быть изменён только при компиляции Geany, а также опции, которые используются по умолчанию для настраиваемых параметров. Для их изменения необходимо редактировать соответствующие файлы исходных текстов в подкаталоге ``src``. Найдите блок строк, начинающийся с ``#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, если необходимо 0
использовать стандартные диалоги открытия и
сохранения файлов Windows вместо диалогов
сохранения и открытия файлов GTK. Диалоги
Windows по умолчанию не позволяют выбрать тип
файла или кодировку. *Не трогайте эту
настройку при сборке на системе, отличной от
Win32.*
============================== ============================================ ==================
project.h
---------
============================== ============================================ ==================
Опция Описание По умолчанию
============================== ============================================ ==================
GEANY_PROJECT_EXT Расширение для файлов проектов Geany по geany
умолчанию. Используется при создании новых
проектов и как маска фильтра для диалога
открытия проекта.
============================== ============================================ ==================
filetypes.c
-----------
============================== ============================================ ==================
Опция Описание По умолчанию
============================== ============================================ ==================
GEANY_FILETYPE_SEARCH_LINES Количество строк для поиска типа файла с 2
помощью регулярного выражения для извлечения
типа файла.
============================== ============================================ ==================
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 Команда эмулятора терминала, см. См. ниже.
`Эмуляторы терминала`_.
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
автозавершения.
GEANY_DEFAULT_FILETYPE_REGEX Регулярное выражение для извлечения типов См. ниже.
файла из файлов.
============================== ============================================ ==================
.. _ft_regex:
Значение GEANY_DEFAULT_FILETYPE_REGEX по умолчанию -\\*-\\s*([^\\s]+)\\s*-\\*-, которое находит типы файлов Emacs.
Значение GEANY_DEFAULT_TOOLS_TERMINAL по умолчанию в Windows::
cmd.exe /Q /C %c
и в любой системе кроме Windows::
xterm -e "/bin/sh %c"
build.c
-------
============================== ============================================ ==================
Опция Описание По умолчанию
============================== ============================================ ==================
GEANY_BUILD_ERR_HIGHLIGHT_MAX Число сообщений об ошибках, которые следует 50
подсвечивать в окне компилятора и в исходном
коде (обычно интерес представляют несколько
первых ошибок, последующие являются уже их
следствием).
Все ошибки в окне компилятора разбираются и
не зависят от этого значения.
PRINTBUILDCMDS Всякий раз при расчёте приоритета команд меню FALSE
«Сборка» выводить состояние меню в `таблице
конфигурирования`_. Может быть полезно при
отладке перезагружаемого файла конфигурации.
Вывод может оказаться громоздким.
Может быть также включено или отключено
отладчиком установкой значения 1/0 для
printbuildcmds, что имеет приоритет над
опцией компиляции.
============================== ============================================ ==================
GNU General Public License
==========================
::
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, 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.
Copyright (C)
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 Street, 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.
, 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
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.