IDE Geany: создание и работа со сниппетами (snippets)
Запись от remarkes размещена 28.09.2012 в 21:26
Показов 20176
Комментарии 5
Метки ide geany linux
|
IDE Geany — свободная кроссплатформенная среда разработки программного обеспечения. Geany переводится как "джинн" (из лампы, а не с тоником). При всей своей легкости и простоте, обладает достаточным функционалом и возможностью наращиваться - благодаря возможности подключения плагинов (как в браузере Firefox) и создания сниппетов. Вот, собственно о сниппетах и пойдет речь. Как правило, Geany позиционируется как IDE для новичков, что правда, она действительно проста и легка в использовании. Некоторые правда тут же утверждают, что "только для новичков", вот этот миф я и попытаюсь развеять. Сниппет (snippet) - в случае с Geany - это некоторый заранее заготовленный шаблон текста (кода) или команда в оболочке, которые вызываются ключевой фразой и нажатием клавиши Tab. Допустим, вы пишете некоторую программу на языке Си и вводите "if" и нажимаете клавишу Tab. Вам автоматически подставится текст:
По поводу вызова команд в оболочке расскажу ниже. По-умолчанию количество сниппетов весьма ограничено, но их можно обогатить своими, создав шаблоны-сниппеты на все случаи жизни. конфигурационный файл сниппетов snippets.confОбщий файл конфигурации сниппетов называется snippets.conf и, например, в системе Debian/Ubuntu находится в каталоге:
Таким образом, файл ваших личных сниппетов будет лежать по адресу:
синтаксис файла snippets.conf Согласно постулату UNIX-way "храните данные в простых текстовых файлах", все конфигурационные файлы в Geany - это простые текстовые файлы. Поэтому совершенно логично файл snippets.conf редактировать в самом Geany. Определимся с понятиями:ключ, key - это ключевое слово, вместо которого будет подставляться сниппет по нажатию клавиши Tab. Выше я уже приводил пример ключей if и for. шаблон, value, сниппет - это собственно тот шаблон, который будет подставлен вместо ключа. Или команда, которая должна сработать вместо ключа. В самом начале открытого нами файла snippets.conf мы увидим примерно на пол-странички небольшое руководство, как писать сниппеты. Я его переведу, с некоторыми своими изменениями и комментариями:
Разделы сниппетов
Обратите внимание на вставки %brace_open% и %brace_close% в файле snippets.conf. Это так сказать "сниппеты сниппетов". Они описываются в разделе [Special]. Например:
Если нам необходима различная реализация для отдельных языков, нам необходимо написать сниппет в конкретном разделе. Например, разный for для языка bash (shell), C++ и PHP, при этом отличающийся от сниппета по-умолчанию, необходимо написать так:
Вставка %cursor% позволяет указать, где курсор будет находится при вызове шаблона. Нет нужды перемещать курсор кнопками вправо-влево, достаточно указать несколько "курсоров" и после перемещаться с помощью комбинации клавиш "Перемещать курсор в фрагменте". Устанавливаются комбинации клавиш в меню Правка -> Настройки (Ctrl+Alt+P) -> вкладка "Привязки" -> вкладка "Редактор" -> "Перемещать курсор в фрагменте". У меня, например, установлена комбинация Alt+W примеры и полезностиРасскажу несколько полезных на мой взгляд своих сниппетов. в разделе [Default]
Как только меня осенит мысль придумать/изменить сниппет, я набираю snip (и нажимаю Tab) и открывается вкладка с моими сниппетами. В приведенной команде "user" - соответственно - имя вашего пользователя.
в разделе [Sh]
Это сниппеты "для ленивых" ![]()
Свои шаблоны можно создать в каталоге /home/user/.config/geany/templates/files/ Это вовсе необязательно должны быть шаблоны просто "под язык". Это может быть конкретный типовой шаблон графического/консольного приложения, клиент/сервер и просто некоторого текста. То же самое можно делать и для других языков, например Си
Может быть использован в качестве использования сниппетов для текстовых файлов, например, для файлов "txt". Для таких файлов, как и для всех, также действуют сниппеты, объявленные в разделе [Default] ...и т.д. использование команд Возможность использования команд оболочки и запуск скриптов с помощью сниппетов позволяет существенно расширить функционал Geany, а также написать свои скрипты/программы. Использование команд возможно с помощью специального параметра
Пример:
и т.д. Собственно, в сниппетах выше я уже использовал специальный параметр command для открытия в Geany файла конфигурации сниппетов и файла-шаблона для bash. Помимо этого есть и другие специальные параметры:
переменные окружения GEANY_FILENAME, GEANY_FILETYPEВ вызываемую параметром {command:} программу передаются переменные окружения:
С помощью этих двух возможностей: использования команд, и передачи переменной с именем файла, мы с помощью Geany по сути можем делать все то, что может делать bash (та оболочка, которая установлена в сборках linux по-умолчанию). примеры использования команд В разделе [Default] можно создать такие строчки:
примеры скриптов
код на bash
В файле snippets.conf в разделе [C] пишем:
Даем ему право на исполнение:
Примечание: для этого необходимо установить утилиту indent. Например, в deb-ориентированных дистрибутивах это делается так:
Вообще-то в Geany есть мануалы, но никто не мешает нам посмотреть мануал в интернете. Например, если у вас нет локализованной версии (на русском), а на сайте opennet.ru она есть. Для этого можно создать скрипт geany_man.sh с содержимым: код на bash
Даем право на исполнение, и создаем сниппет в разделе [Default], как описано выше. Для работы скрипта необходима утилита zenity (для диалога с пользователем).
код на bash
Всем заинтересовавшимся скриптами для Geany, я предлагаю выкладывать здесь ваши скрипты. Или просто можете предложить идею. некоторые минусы Geany
Резюме Как видите, IDE Geany не такая простая, как кому-то может показаться на первый взгляд. В связке с другим ПО (gcc, gdb, bash/shell, Devhelp), она обладает достаточно мощными средствами, и при этом имеет потенциал к расширению. PS: я планирую описать еще несколько статей по работе с Geany: работа с шаблонами, перемещение по интерфейсу, настройки и тонкости и т.д. Если возникнут вопросы и пожелания - пишите. PSS: полную документацию на русском вы можете взять по адресу: http://www.geany.org/manual/0.19_ru/index.html О сниппетах и самой IDE Geany вы также можете прочитать в википедии: http://ru.wikipedia.org/wiki/Snippet http://ru.wikipedia.org/wiki/Geany | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Метки ide geany linux
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 5
Комментарии
-
я видимо не совсем четко пояснил: курсор после срабатывания сниппета находится там, где вы ставите тег %cursor% в сниппете, перемещаться по ним можно с помощью установленной комбинации клавиш. При вызове if:
Сообщение от taras atavin
В том-то и вся прелесть, что перемещаться с помощью курсорных клавиш не надо. Перемещать свое положение в сниппете лучше с помощью комбинации клавиш "Перемещать курсор в фрагменте" (поставить в настройках). Я поставил себе Alt+W, можно Alt+R, или Alt+E - короче что-то эргономичное, чтобы не убирать руки с клавиатуры.C 1 2 3
if (курсор_изначально_находится_здесь) { а_потом_курсор_будет_находиться_здесь }а_потом_здесь
Запись от remarkes размещена 29.09.2012 в 09:28
-
никто не мешает создать свой сниппет без счетчиков или создать несколько "форов" с переменными i, j , k (например). Потом: for с i - это настолько типовой набор, что i - это первое, что приходит на ум, что туда поставить. С проблемой "подставить другую переменную" можно встретиться в случае вложенных циклов, а они встречаются реже, чем просто циклы.
Сообщение от taras atavin
По моим наблюдениям самыми полезными сниппетами являются комментариев. Сниппет if еще удобен.
В шелле также очень помогает сниппет создания массивов.Запись от remarkes размещена 29.09.2012 в 09:47
-
А шаблоны (скелеты файлов) свои как создавать? Это вообще возможно?Запись от Igor-dis размещена 13.04.2016 в 19:37



