LXF165-166:Программирование: Geany
|
|
|
Программирование Пишите классные Linux-приложения в этом многогранном редакторе
Содержание |
Geany: Пишем код
Спустя годы поисков идеального редактора для программирования, Джоно Бэкон уверовал, что, возможно, наконец-то он набрел на золотую жилу...
Написание кода – вещь глубоко личная. У каждого есть свои любимые инструменты, технологии и подходы к тому, как же написать превосходный код, который обеспечит выдающуюся функциональность. Сотни книг были написаны о разных аспектах Дзен написания кода, и я здесь явно не для того, чтобы поведать вам о том, что именно мой вариант является самым лучшим.
Ключевым моментом в этих спорах является то, нужно ли использовать в качестве окна в ваш код IDE или редактор. Любопытно, что многие сторонники IDE частенько являются начинающими или не очень опытными программистами, которые считают, что именно IDE крайне важны для снижения планки написания приложений; а многие умудренные жизнью хакеры предпочитают редактор, дабы избежать всякой ненужной ерунды и сразу приступить к делу. Если говорить о моих предпочтениях, я вижу и сильные, и слабые стороны в обоих лагерях; мне всегда казалось, что это – дело исключительно личного выбора, и никто здесь не может быть прав полностью, кроме меня, разумеется.
За долгие годы я испробовал разные IDE: Eclipse, KDevelop, а совсем давно – Visual Studio. Я пробовал также и редакторы: Emacs, Vim и GEdit. На сегодняшний день я сделал свой выбор, выбор ясный и уверенный, и этот выбор – Geany.
Простота и мощь
Geany, по сути, текстовый редактор, приукрашенный и усиленный всякими штуками, потребными большинству программистов. На самом деле Geany не является ни IDE, ни обычным текстовым редактором; он являет собой текстовый редактор с важными вставками из IDE. Geany не пытается вместить в себе все эксперт-программы, шаблоны для начинающих и прочие моменты, обычные для IDE, но зато он включает основные функции, необходимые для написания приложений – например, отличный редактор, навигатор классов, свертывание кода и прочее. Я твердо убежден, что Geany является лучшим выбором для профессионального программиста или для любителя, пишущего приложения для Linux.
Geany написан с помощью набора виджетов GTK, а значит, отлично интегрируется в рабочие столы Unity и Gnome в Ubuntu и Fedora соответственно. Пакеты доступны через Ubuntu Software Centre, в репозитории Fedora Everything, а также для Debian, Gentoo, OpenSUSE, ArchLinux, Centos, RHEL, AltLinux, SourceMage и Crux, в www.geany.org/Download/ThirdPartyPackages.
Имеется встроенная поддержка обширного ряда языков программирования, в том числе (O)Caml, Ada, Assembler, C, C#, C++, COBOL, Python, D, Fortan, FreeBasic, Genie, GLSL, Haskell, Haxe, Java, Objective C, Pascal, Scala, Vala, VHDL и Verilog. Он также включает отличную поддержку языков скриптов и разметки, таких, как ActionScript, CMake, Erlang, Ferite, Forth, Javascript, LISP, Lua, Makefile, Matlab, NSIS, Perl, PHP, Python, R, Ruby, Shell, Tcl, CSS, DocBook, HTML, LaTeX, Markdown, reStructuredText, Txt2Tags и XML. В качестве бонуса, он обеспечивает отличную поддержку файлов Abc, Config, Diff, Gettext, SQL, и YAML. В Geany можно использовать и другие языки, просто им могут не подойти встроенное выделение синтаксиса и другие функции.
На данном уроке мы пройдемся по Geany и познакомимся со многими его функциями. Чтобы проиллюстрировать все это, я создам новый проект, создам пример программы, и затем мы пройдемся по разным функциями и опциям настройки, чтобы подогнать ваш опыт программирования под ваши нужды.
Пример кода я буду писать на Python, но вы можете использовать любой язык по своему усмотрению. Итак, начнем.
Интерфейс
Загрузите Geany, и вы увидите интерфейс, напоминающий изображенный на рис. 1. В этом интерфейсе имеются три основные части. Слева находится браузер. Здесь вы получаете быстрый доступ к разным файлам, классам, функциям и прочим символам, являющимся частью вашего проекта. Мы рассмотрим его чуть позднее, когда создадим наш код.
Справа находится основной текстовый редактор. Именно здесь вы будете проводить большую часть своего времени. Так же, как и во многих современных текстовых редакторах, вы можете загружать многочисленные файлы, и они доступны в многочисленных вкладках.
Под текстовым редактором находится раздел Messages [Сообщения]. Здесь вы увидите информацию от вашего компилятора/интерпретатора об отладке программы, и другие полезные функции, например, место для написания заметок и просмотра задач, которые еще предстоит выполнить в вашем проекте.
В верхней части экрана вы видите меню (в Ubuntu меню встроено в верхнюю панель, как и большинство приложений) и обычные функции в приложении, доступные в виде панели инструментов. Панели инструментов также поддаются индивидуальной настройке. Чтобы настроить их, щелкните правой кнопкой по панели инструментов и выберите Toolbar Preferences [Параметры панели инструментов]. Теперь щелкните по кнопке Customize Toolbar [Настройка панели инструментов], чтобы вывести редактора панели инструментов. Затем просто выберите функции слева и щелкните по правой кнопке со стрелкой, чтобы добавить их к панели инструментов.
Пишем код
Давайте начнем – и создадим новый проект. Щелкните по Project > New [Проект > Новый], и в появившемся окне введите имя для своего проекта (например, “Awesome App” – «Потрясающее Приложение»), затем щелкните по кнопке Create [Создать].
Итак, проект создан; давайте настоим для него предпочтения. Для этого щелкните по Project > Properties [Проект > Свойства]. Весьма удобно начинать настраивать проект со вкладки Indentation [Отступы]. Здесь вы можете настроить, будут ли использоваться табуляция/пробелы. Это особенно важно для разработчиков Python, у которых могут быть проекты с применением табуляции или пробелов.
Если вы работаете над проектом, которому нужен компилятор (например, над приложением C/C++), вы также можете использовать вкладку Build для настройки команд для создания проекта. Это так же просто, как ввести команду и рабочую директорию для вашего кода. Мы не будем это рассматривать, потому что сегодня займемся Python.
Вы, вероятно, заметили, что за время создания проекта у нас ни разу не появился ни всплывающий мастер, ни набор опций для создания и отображения вашего приложения. Помните, я сказал, что Geany не является настоящей IDE? Вот как раз поэтому. Если вы хотите сгенерировать свое приложение, вам понадобится другой инструмент, типа Quickly, и затем вы сможете скопировать сгенерированные файлы в свою директорию проекта Geany.
В нашем новом проекте создайте новый файл, нажав на File > New (with Template) > main.py [Файл > Новый (с шаблоном) > main.py]. Создастся новый файл Python, в который уже включен некий код, например, комментарий по его лицензированию, и шаблонный код, чтобы реализовать функцию Python main(). Теперь нажмите на File > Save As [Файл > Сохранить как] и сохраните файл как app.py. Теперь давайте добавим знаменитое «Привет, мир! [Hello World!]» в main(), чтобы это выводилось на экран при запуске:
print “Hello World!”
Сохраните файл, а затем давайте его запустим.
В Geany файл можно запустить, сначала щелкнув по вкладке Terminal [Терминал] в нижнем окне вывода. Затем надо перейти в директорию с кодом (в моем случае это /home/jono/projects/Awesome App/) и запустить файл:
cd projects/Awesome App
python app.py
Теперь на экране должно появиться «Привет, мир!». Теперь давайте пробежимся по тому, как Geany уже делает наш код проще для навигации.
Слева, в браузере, щелкните по вкладке Symbols [Символы]. Это вкладка, на которой вы будете проводить больше всего времени в поисках разных частей кода. Вы уже должны увидеть, что эта вкладка показывает нашу основную функцию main(). Щелкнув по вкладке Documents, вы также сможете увидеть наш единственный исходный файл; это особенно удобно, если у вас много исходных файлов.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Щелкните по функции main() во вкладке Symbols, и вы увидите, что на полях редактора появилась маленькая стрелка, указывающая на функцию. В редакторе также имеется маленький белый квадрат с символом - внутри, рядом с каждым блоком кода. Этот квадратик являет собой простой вариант сворачивания кода, чтобы скрыть те его фрагменты, которые вам на данный момент не нужны. Если щелкнуть по этому квадратику, он будет показывать символ +, сообщая, что блок кода свернут.
Теперь давайте создадим класс, чтобы продемонстрировать, как Geany может с легкостью осуществлять навигацию по вашему коду. Добавьте в свою программу следующий код:
class MyClass:
def __init__(self):
print “Создание объекта MyClass”
def show_info(self):
print “Это класс MyClass”
def foo(self, value):
print “Вы снабдили меня %s “ % величиной
if __name__ == ‘__main__’:
obj = MyClass()
obj.show_info()
obj.foo(5)
В этом коде я создаю простой (и довольно бесполезный) класс. Заметьте, что мы удалили функцию main(), поскольку она больше не нужна.
По мере написания кода вы, возможно, заметили, что рядом с каждой функцией класса, которую вы добавляете, автоматически появляются маленькие квадратики сворачивания кода. Geany умен: он наблюдает за кодом, который вы пишете, и автоматически применяет эти функции, не дожидаясь, когда вы завершите блок или сохраните файл.
Вы должны были заметить еще одно свойство: когда вы вызываете функции класса (т. е. вводите obj и затем имя функции), Geany выводит маленькое окошко автозаполнения кода, показывающее вам функции, которые, возможно, подойдут к тому коду, который вы ввели. Это очень удобная опция, и Geany будет часто пытаться предложить имена функций в разных API, которыми вы тоже пользуетесь.
Добавив наш класс к нашей программе, загляните во вкладку Symbols в браузере в левой части окна. Теперь вы видите, что добавленный класс появился рядом с маленьким голубым значком, и функции класса отображены как часть иерархии этого класса. Для такого небольшого приложения, как это, отображение класса не дает каких-то особых преимуществ, но для крупного приложения, вроде показанного на рис. 2, этот браузер классов является исключительно важным, поскольку с его помощью легко перемещаться по кодовой базе в поисках того, что вам нужно.
Настройка
Одним из ключевых факторов, отличающих IDE от редактора, является уровень настройки. Многие IDE предоставляют ряд разумных функций по умолчанию и ограниченную возможность настройки, чтобы упростить работу в IDE для пользователей. Хотя многие редакторы не имеют удобной функции интерфейса, предлагаемой IDE, уровень настройки они предлагают превосходный. И Geany является одним из таких примеров.
Geany предлагает фантастический уровень настройки для многих частей процесса программирования. Вы можете настроить Geany через две области:
1 Edit > Preferences [Редактировать > Предпочтения] – именно здесь вы настраиваете основное приложение.
2 Edit > Plugin Preferences [Редактировать > Предпочтения модулей] – здесь вы можете настроить модули расширения (мы скоро поговорим о модулях-плагинах более подробно).
Давайте рассмотрим некоторые части основной работы в Geany (без расширений), которые вы, возможно, решите настроить.
Начнем с настройки информации, добавляемой к комментариям заголовка при добавлении нового файла к проекту. Нажмите на Edit > Preferences > Templates [Редактировать > Предпочтения > Шаблоны], и вы увидите разные области, подлежащие редактированию. Geany постарается заполнить многие области за вас, но некоторые вам придется отредактировать самим.
В некоторых областях вы увидите нечто похожее на полную бессмыслицу, например, %Y- %m- %d в поле Date. Это коды, которые выступают в роли шаблонов, чтобы структурировать отображение некоторых вещей, например, даты. Например, %Y- %m- %d может конвертироваться в 2012-12-25 (%Y – это 2012, %m – 12, и %d – 25). Полный список этих кодов и того, что они делают, вы найдете на http://man.cx/strftime.
Идем дальше. Одной из самых важных областей настройки для многих разработчиков является привязка клавиш. Программирование – это во многом и наука, и искусство, в котором есть ритм и каденция. Когда вы «в ударе», вы стремитесь сохранить свой ритм, поскольку он отражается на производительности вашего написания кода. Именно по этой причине многие из нас ночи напролет сидят за программированием, не желая потерять кураж.
А если что и сбивает с куражу чаще, чем все остальное, то это необходимость использовать мышь. Отрыв рук от клавиатуры, чтобы перенести их на мышь, а потом обратно, сильно замедляет процесс, а функциональные клавиши дают вашему куражу возможность куражиться и дальше. Если раньше вы никогда не использовали функциональных клавиш, настоятельно вам рекомендую их изучить, и очень хорошо, что в Geany у вас есть возможность настроить практически все функциональные клавиши. Для этого щелкните по Edit > Preferences и нажмите на вкладку Keybindings [Привязки клавиш].
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Еще одна важная область настройки – сам редактор. Хотя текстовый редактор кажется весьма простым... вы печатаете в нем текст... все же есть множество факторов, в которых и кроются различия в использовании текстового редактора. Отступы... выделение синтаксиса... нумерация строк... перенос строки... новые строки и конечные пробелы... автозаполнение кода и прочие элементы – все они и являются этими факторами. К счастью, в Geany имеются опции настройки для широкого ряда функций в Edit > Preferences > Editor [Редактировать > Предпочтения > Редактор].
Вы также можете настроить то, какие части редактора будут видимыми, нажав на View > Editor [Вид > Редактор].
Я бы порекомендовал вам обязательно включить Line Numbers [Номера строк]; возможность увидеть номер обсуждаемой строки важна при сотрудничестве с другими разработчиками.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Можно также использовать View > Editor > Colour Schemes [Вид > Редактор > Цветовые схемы], чтобы загрузить альтернативную цветовую схему редактора, если, например, вы предпочитаете более темные тона. Сменные темы можно найти на www.geany.org/Download/Extras#colors.
Обработка задач
В программировании обычным делом является добавление к коду комментариев, указывающих на то, что надо исправить в определенных частях кода. Например, если какая-то функция недоделана, вы можете добавить к ней следующее, чтобы ее выделить:
# TODO: Expand this to include support for XYZ. [Расширить, чтобы добавить поддержку XYZ]
Вы также можете оставить комментарий, чтобы исправить часть кода позднее. Частенько это выглядит так:
# FIXME: Make this thread-safe. [Сделать поточно-ориентированным]
Одна из проблем с подобным подходом в том, что может оказаться трудным обнаружить эти небольшие примечания позднее, чтобы успеть решить проблемы до выхода релиза.
К счастью, Geany включает небольшую функцию, применяемую для отображения всех этих примечаний в одном месте, создав таким образом список неотложных дел (TODO, Надо сделать) для своего кода. Чтобы использовать эту функцию, просто используйте TODO и FIXME [поправь меня] для описания проблемы, как показано выше, и убедитесь, что в Edit > Plugin Preferences > Addons [Редактировать > Предпочтения модулей > Дополнения] у вас отмечена функция Show available tasks [Показать имеющиеся задачи] в окне Messages. Если захотите, можете установить другие термины вместо TODO и FIXME, но TODO и FIXME являются повсеместно используемыми, так что вы, возможно, решите просто придерживаться настроек по умолчанию.
Geany – простой, но невероятно мощный редактор для программирования, который дает вам все основные инструменты, необходимые для написания кода. Разработчики Geany сосредоточили все свое внимание на простоте и настоящих потребностях программистов, не шпигуя его всякими красивостями, которые большинству программистов совершенно не нужны.
Это придает редактору истинную зрелость, и, к счастью, уровень настройки и богатый выбор модулей расширения означает, что вы действительно можете настроить Geany под свои потребности.
Изучение Geany не займет у вас много времени, и эта статья продемонстрировала вам главное, что вы должны знать, чтобы работать продуктивно.
Итак, не тратя времени на всякую ерунду, приступайте-ка к программированию. Счастливого вам программирования, друзья мои!
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить |