Geany. Настройка и использование. Linux статьи
Написать статью
Войдите, чтобы писать статьи

Geany. Настройка и использование

31

Geany. Настройка и использование

Материал написан пользователем сайта.

Проект Geany стартовал в 2005 году и имеет немецкие корни. Текущая версия 1.38 вышла в октябре 2021. Редактор основан на движке Scintilla, на котором есть много редакторов, например SciTE и Notepad++, и на графическом пакете GTK. Geany присутствует во всех основных ветках Linux и во многих дистрибутивах, а в некоторых предлагается "из коробки", например в Runtu. Редактор представлен на сайте в разделе Программы и пользователи о нём хорошо отзываются.  

Настройка

Проверим основные настройки, откроем меню Правка - Настройки (Ctrl+Alt+p). В первой строке Общее на вкладке Запуск убедитесь, что стоит галочка Включить поддержку модулей.

В третьей строке Редактор - Отступы выбирается табуляция или пробел и сколько их будет в отступе. Это известная холиварная тема хорошо показана в сериале Кремниевая долина S03E06.

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

Далее, в разделе Файлы, полезно поставить галочку на Использовать одну и ту же кодировку для открытия файлов с кодировкой, отличной от Unicode, и выбрать ниже в выпадающем списке группу Восточноевропейская, Кириллица (WINDOWS-1251). Так будут нормально отображаться файлы, сделанные в Windows.

В разделе Инструменты нужно вписать правильную команду для открытия терминала. В этом месте я видел больше всего вариантов. В RED OS увидите xterm, хотя "из коробки" его нет. В Astra Linux будет x-term-emulator - это в usr/bin ссылка на ссылку etc/alternatives/x-term-emulator, которая указывает назад в usr/bin на fly-term. Если хоть одна ссылка сломана, то терминал не запустится, лучше сразу вписать fly-term и не бегать по ссылкам. В Alt Linux такая же ситуация, только ссылка называется xvt и возвращается к usr/bin/xterm. В Calculate предлагают terminal, типа сами разбирайтесь, что там у вас. Xterm можно использовать, но он некрасивый и без настроек, лучше выбрать эмулятор вашего окружения. Например у MATE это mate-terminal, у XFCE это xfce4-terminal. После команды вызова терминала должно идти -e "/bin/sh %c". Это организация запуска в терминале программы при помощи регулярного выражения. Когда вставите нужную команду - нажмите Применить и ОК. Проверка: открыть новый файл, набрать там print('hi') и сохранить его как hi.py. В меню Сборка - Выполнить (F5) и если откроется терминал с hi, то всё как надо.

В том же разделе Инструменты, в следующей строке укажите свой браузер и нажмите Применить. Он нужен для открытия ссылок и онлайн справки, которую можно сразу там проверить.

В Инструменты - Менеджер модулей представлены модули, которые добились права быть частью программы и они все полезные. Предлагаю включить Генератор классов - он понадобится нам дальше, Просмотр файлов - он позволит видеть привычную древовидную структуру слева в боковой панели во вкладке Файлы, и Разделить окно - очень полезный модуль, например для сравнения файла с появившейся при обновлении его новой версией типа pacnew или dpkg-new.

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

great

github

guard

gitlab

geary

geany

done

Правка - Форматирование - Отправить выделенное в - Установить пользовательские команды. Там в окне нажать Добавить, вписать sort, нажать Enter (строка станет синей, без этого не сохранится) и потом ОК. Теперь выделите все строки и нажмите Ctrl+1. Для сортировки по убыванию там же, Добавить, sort -r, Enter и OK, будет сортировать выделенное по Ctrl+2.

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

Некоторым людям очень важны цветовые настройки (темы). Сразу в Geany их нет, но есть в достатке на https://www.geany.org/download/themes/, причем с картинками - очень удобно. Нужно открыть конфигурацию приглянувшейся, выделить и скопировать всё, создать у себя файл конфигурации по пути ~/.config/geany/colorschemes/ и вставить в него данные из буфера. В ROSA обнаружил пакет geany-themes ещё для версии 1.24. Кажется это те же темы, ну или близкий набор, попробовал несколько - подходят.

Geany называют редактором с элементами IDE, хотя компиляторов в Geany нет, используется то, что есть в системе. Проверим наличие с++ компилятора, наберём в терминале g++ --version. Сейчас текущая версия 13.1. Если ничего не найдено, то установите пакет g++, при этом будут предложены необходимые дополнительные пакеты. Если дистрибутив на rpm пакетах (ALT, ROSA, RED OS, Mos12), то устанавливать нужно пакет gcc-c++ и всё, что с ним будет предложено.

Использование

Посмотрим, что же сделано для удобства создания программ. В меню Файл - Создать из шаблона выбираем main.cxx. Выше строки с return 0; вставьте в пустую строку std::cout<<"Hello, Pingvinus!"<<std::endl; и сохраните файл как main.cpp. Слева от рабочего поля во вкладе Файлы (добавляли этот модуль), нажать иконку Обновить и увидеть main.cpp. Теперь в меню Сборка - Compile (F8), внизу появится сообщение о результате, потом жмём Build (F9) - внизу сообщение, и Execute (F5) - получим приветствие в терминале.

В шаблонах идёт информация от разработчиков в виде комментариев, их всякий раз придётся удалять. Чтобы они не вставлялись, в шаблонах по пути /usr/share/geany/templates/files/ удалите строку {fileheader}. Там можно разместить и свои шаблоны.

Код программы принято форматировать. Правила для этого бывают разные, а крупные компании создают свои собственные. Geany не умеет форматировать, опять нужно использовать стороннюю программу. Как часто бывает в Linux, есть несколько вариантов. Мне больше всего понравился проект Artistic Style. Его пакет astyle есть во всех основных ветках Linux и во многих дистрибутивах. Обычно устанавливается один пакет, в Alt Linux версия отстаёт и идёт с зависимостью, в Calculate собирается несколько зависимостей для java, чтобы astyle мог и код на java форматировать. В репах Astra Linux пакета astyle нет, но можно подключить Buster и взять оттуда.

По astyle --help видно, какие там есть стили. Самый распространённый и используемый во многих редакторах по умолчанию идёт первым в списке - это стиль Allman, его и зададим. В уже знакомом месте Правка - Форматирование - Отправить выделенное в - Установить пользовательские команды нажать Добавить, вписать в поле astyle --style=allman, нажать Enter и ОК. Можно использовать и более короткое выражение astyle -A1, но тогда не будет видно, что стиль назван в честь мужика, о котором можно почитать на досуге. Для проверки произвольно измените отступы в hello.cpp, выделите всё и, если у вас эта команда в третьей строке, отформатируйте по (Ctrl+3). Файл main.cpp пригодится дальше, не закрывайте его.

У участников форума Pingvinus есть общие интересы, в этом смысле это люди одного класса. Инструменты - Создать класс - Класс С++, Имя: Pingvinus, ставим галочку на Создать деструктор и ОК - откроются два файла, пока они только в оперативной памяти. Инструменты - Разделить окно - По вертикали, в правом окне файлы выбираются по стрелочке из выпадающего меню.

Заголовочный файл (.hpp) можно представить себе как законодательную часть класса, в нём описываются параметры элементов класса и что они могут делать. Пусть у нас участники будут только здороваться с помощью функции hi(). Вставляем в pingvinus.hpp сразу после строки virtual ~Pingvinus(); строку с текстом void hi(); Больше ничего вставлять не будем, нужно сохранить файл. Внимание, особенность! Сохранять можно только находясь в левом окне и активный там файл. Встаём в левое окно, открываем там вкладку с pingvinus.hpp и сохраняем его. В боковой панели слева во вкладке Файл должны его увидеть.

Теперь откроем в левом окне вкладку с pingvinus.cpp. Удобно видеть справа, что разрешено в классе, теперь слева, в исполнительной части класса, нужно описать работу hi(). Добавим там последней строкой void Pingvinus::hi(){std::cout<<"Hi, dude!";} Специально предлагаю в таком виде - потом сделаем красиво. Для работы функции hi() нужно ещё подключить библиотеку ввода/вывода. Выше, после #include "pingvinus.hpp" добавьте строку #include <iostream> Выделяем всё, форматируем и сохраняем. Проверяем появление файла в боковой панели.

Теперь откроем в левом окне main.cpp, а в правом по стрелочке выберем pingvinus.cpp. Видно, что main.cpp не знает про класс Pingvinus. Копируем справа #include "pingvinus.hpp" и вставляем в main.cpp над строкой #include <iostream>.

Представим, что после "Hello, Pingvinus!" появляется чел с форума и здоровается в ответ. Добавляем в main.cpp после строки с Hello новую строку Pingvinus chel; и следующей строкой chel.hi(); Выделяем всё, форматируем и сохраняем.

Настало время компиляции и сборки программы, состоящей из нескольких файлов. Открываем Сборка - Установить команды сборки и видим команды компилятору g++. Если открывать это окно находясь в файле .py, то команды будут для python, если с кодом на go, то для его компилятора, т.е. в зависимости от расширения - удобно.

В первой строке Compile меняем регулярное выражение "%f" на маску *.cpp без кавычек, т.е. компилироваться будет не активный файл, а все по маске в текущей директории. Такую же замену делаем во второй строке Build и ОК. Вернуть начальные команды можно нажатием там на крестик справа в строке. Теперь, находясь в любом файле программы, идём Сборка - Compile (F8), внизу будет сообщение о результате, Build (F9) - внизу сообщение, и Execute (F5) - результат в терминале.

Вы быстро поймёте, что работать с кодом удобно. Есть выделение цветом, работа со скобками, подсказки по классам, их методам, переменным и много других настроек для разных языков программирования. Всё это делает движок Scintilla, как и в Notepad++, с которым вы могли иметь дело. Слева на боковой панели есть вкладка Символы, которая помогает ориентироваться в больших проектах.

Энтузиасты создали набор плагинов geany-plugins и он есть везде, где есть geany. Насколько я понимаю, раньше пользователям много чего не хватало, вот они и делали плагины. Но идёт время, движок Scintilla развивается, да и Geany тоже, и один за другим плагины становятся ненужными. Некоторые теряют поддержку, а некоторые не успевают за быстрыми изменениями, например плагин для git.

Наибольший интерес представляют только gui для работы с консольным отладчиком gdb, который, скорее всего, у вас не установлен. Предлагаются два плагина: более простой и ранний Scope от разработчика с болгарскими корнями и более поздний вариант Debugger с российскими корнями. Когда у вас дойдёт дело до отладки, то "методом тыка" вы быстро разберётесь, как расставлять метки, шагать по ним и следить за переменными, а вот описывать это словами долго. В Инструменты - Менеджер модулей сразу оба выбирать не надо, а то они будут путаться, кому работать с gdb. Если плагин активирован, в нижней панели будет соответствующая вкладка. 

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

Есть в Geany и понятие Проекта, а мне как раз нравится, что для небольших программ не нужно городить огород под названием "Проект".

Скорее всего вы встречали в сети комментарии типа "зачем оно нужно, если есть ... vscode" или "а что не так с ... pycharm". Всё просто: по требованию к железу это разные весовые категории, причем не соседние и даже не через одну.

На этом заканчиваю, хотя интересные моменты ещё остались. Например у geany-plugins в разных ветках Linux есть нюансы, о них тогда в комментариях.

Лайков: +13
войдите, чтобы ставить лайки

Материалы по теме:

  • Geany — легковесная среда разработки
31
  • Опубликовано: 11.07.2023
  • choice

Комментарии

Minor748
Активный пользователь
Активный
11.07.2023
12:18
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Да, видео весьма в тему
Slawyan
Активный пользователь
Активный
11.07.2023
12:42
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
VSCodium и .
igorborisov
Активный пользователь
Активный
11.07.2023
14:40
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийSlawyanРодительский комментарий
0
войдите, чтобы ставить лайки
и прощайте несколько гигабайт оперативки
Slawyan
Активный пользователь
Активный
11.07.2023
14:48
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
Хочешь сэкономить оперативку, вытащи её, и положи рядом.
igorborisov
Активный пользователь
Активный
11.07.2023
14:59
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийSlawyanРодительский комментарий
0
войдите, чтобы ставить лайки
Все проще - я не поклонник js-приложений
none of your business
11.07.2023
12:54
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Много и интересно пишу код на разных диалектах, много испробовал разных IDE и текстовых редакторах, путём проб и ошибок пришёл к выводу, что освоить Vim и его клоны, например NeoVim, выгодней, дешевле и эффективной любой IDE. Опыт - сын ошибок трудных..!
Евгений
11.07.2023
17:16
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийnone of your businessРодительский комментарий
0
войдите, чтобы ставить лайки
Да приходил на собеседование один товарищ в далекие нулевые ( тогда самой модной операционкой была DOS).

-В чем программируете?
-В Нортоне(кто в танке, поймет)
Slawyan
Активный пользователь
Активный
12.07.2023
06:36
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийnone of your businessРодительский комментарий
0
войдите, чтобы ставить лайки
Ну если ты считаешь, "много" правку скриптов то да лучше.
scorpii
Активный пользователь
Активный
11.07.2023
12:58
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Хорошо так заморочился. Добротный обзор получился.
gadjimirzaev
11.07.2023
13:40
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Ставь vs code и не заморачивайся
igorborisov
Активный пользователь
Активный
11.07.2023
14:40
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийgadjimirzaevРодительский комментарий
0
войдите, чтобы ставить лайки
Ставь винду и не заморачивайся
gadjimirzaev
11.07.2023
18:13
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
Дык у меня и винда стоит. Линукс на wsl обитает
igorborisov
Активный пользователь
Активный
12.07.2023
11:45
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийgadjimirzaevРодительский комментарий
0
войдите, чтобы ставить лайки
Linux на WSL - это баловство
gadjimirzaev
12.07.2023
20:49
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
Для тестов самое то. Нет мароки с дуалбутом.
Hargard
Активный пользователь
Активный
11.07.2023
13:44
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
>> Нужно открыть конфигурацию приглянувшейся, выделить и скопировать всё, создать у себя файл конфигурации по пути ~/.config/geany/colorschemes/ и вставить в него данные из буфера
Важное добавление. Расширение такого файла должно быть .conf

Два вопроса к тем кто сабжем пользуется.
1. Автосохранение. Вот kate может автосохранять не только по таймеру, но при потере окном фокуса. Чертовски удобная штука. Есть аналог?
2. А как ты сделал, чтобы основной фрейм окна был поделен на две части? Расширение?
3. Сравнение файлов.
xKDE
Активный пользователь
Активный
11.07.2023
14:34
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийHargardРодительский комментарий
0
войдите, чтобы ставить лайки
1. Save Actions вроде умеет сохранять при потере фокуса, работало лет 5 назад. На сегодня - не знаю, но вряд ли вырезали)
choice
Активный пользователь
Активный
11.07.2023
23:27
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийHargardРодительский комментарий
0
войдите, чтобы ставить лайки
Спасибо за конструктивный отклик.
Да, лучше было в явном виде сказать, что файл конфигурации - это с расширением .conf, а то в более простых моментах подробно, а в этом небрежно.
1. Автосохранение есть среди тех модулей, которые признаны важными и сразу идут вместе с программой (Save Actions). При включении появится дополнительная опция в меню - Настройка модулей. Там несколько параметров для автосохранения, в том числе и прямым текстом про потерю фокуса. Забыл рассказать про это - моё упущение, жалею. Сказал лишь, что там все модули полезные. В который раз убеждаюсь, что xKDE не только много знает, но и помнит -).
2. Разделение окна на две части - это тоже идущий сразу модуль, про него как раз сказал.
3. Для сравнения небольших текстовых файлов удобно окно пополам, а если они большие или бинарное сравнение, то это скорее сфера деятельности файлового менеджера. У многих ...commander это есть. Но если мы про минимализм, то открыть в Geany внизу терминал и использовать что-то типа diff:
https://pingvinus.ru/note/compare-files-diff-in-linux
Minor748
Активный пользователь
Активный
11.07.2023
13:57
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Хорошо, понятно расписал, можно и продолжение сделать о плагинах и прочем дополнительном.
igorborisov
Активный пользователь
Активный
11.07.2023
14:39
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Kate editor как-то поприятнее будет
crud
Активный пользователь
Активный
11.07.2023
15:19
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Одно время юзал его, пока не перешел на NeoVim
igorborisov
Активный пользователь
Активный
11.07.2023
15:22
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийcrudРодительский комментарий
0
войдите, чтобы ставить лайки
Я тоже перешел с Kate на Nvim
Rom
Активный пользователь
Активный
11.07.2023
22:14
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
а я до сих пор большую часть в geany кропаю. Меня полностью устраивает. ide сейчас монструозные для монструозного софта.
choice
Активный пользователь
Активный
11.07.2023
23:52
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийRomРодительский комментарий
0
войдите, чтобы ставить лайки
Согласен. При написании кода нередко бывает нужно посмотреть что-то на форумах, а то и видео обучающее, а браузеры не стесняются использовать оперативку. Если ещё и IDE как второй браузер, то не всякий Боливар легко выдержит двоих.
Евгений
12.07.2023
05:02
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийchoiceРодительский комментарий
+1
войдите, чтобы ставить лайки
Geany для многих задач вполне себе торт. Есть у меня полный набор от JetBrains. Все красиво, удобно и ...медленно. Ресурсы просто жрет
Stanlyzoolo
Активный пользователь
Активный
12.07.2023
11:37
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийЕвгенийРодительский комментарий
0
войдите, чтобы ставить лайки
Ну жрет и жрет, вы же работаете. Выполняете свои задачи.
Вам было бы спокойно, если бы у вас свободно болтались 50% ресурсов?
Тогда зачем такая мощная техника.

Goland от JB меня дико бесит только во время индексирования, а индексирует он у меня не один, а рабочее пространство из 8 реп.

Остальное время, да, глянешь в какой нибудь ляля-top: браузером (firefox на 40 вкладок), телеграмом, слаком и голэндом отжирает 8 - 10 из 16гб оперативки. Ну и пусть)
igorborisov
Активный пользователь
Активный
12.07.2023
11:44
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийStanlyzooloРодительский комментарий
0
войдите, чтобы ставить лайки
Так оно не просто жрет, оно еще и медленно работает (Jetbrains IDE-шки написаны на Java)
Stanlyzoolo
Активный пользователь
Активный
12.07.2023
12:45
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
А какие функции именно медленно работают?
igorborisov
Активный пользователь
Активный
12.07.2023
12:52
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийStanlyzooloРодительский комментарий
0
войдите, чтобы ставить лайки
Лично у меня - все. Но это по сравнению с VSCode/Neovim/Kate
berdnikov01011975
Активный пользователь
Активный
14.07.2023
20:32
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Доброго времени суток.
Как сделать что бы некоторые текстовые файлы созданные в windows коректно открывались?
Для gedit? xed есть команды, а для этого редактора не знаю.
x230
Активный пользователь
Активный
14.07.2023
21:46
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийberdnikov01011975Родительский комментарий
+1
войдите, чтобы ставить лайки
Идем в Правка -> Настройки -> Файлы.

Включаем функцию "Использовать одну и ту же кодировку для открытия файлов формата отличного от Unicode" и из списка ниже выбираем "Кириллица (WINDOWS-1251)".

Pic. :
https://renotes.ru/content/public/upload/geany-encoding_0_o.png

Источник :
https://renotes.ru/post-141/geany-encoding-cp1251
LexD
Активный пользователь
Активный
16.07.2023
11:10
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Полезно.
Сохранил себе.
Благодарность.

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила