Заметки о Geany. Встроенный терминал

Алексей Федорчук

Одна из особенностей Geany — встроенное терминальное окно, котором можно вводить любые команды оболочки, вставлять их (а также результаты их выполнения) в «мышиный» или «иксовый» буфер, после чего вставлять их в текст документа, открытого в основном окне. Не запрещена и обратная процедура — перенос команды из текста в терминальное окно с целью проверки правильности её ввода или просмотра вывода. Конечно, в полной мере это способны оценить только линуксописатели, которым постоянно приходится сочинять что-либо, имеющее отношение к CLI. Но такая функция может пригодиться и прочим применителям-текстовикам, не говоря уже о просто программистах или сочинителях документации к программам.

Чтобы иметь доступ к встроенному терминалу, нужно проследить, чтобы в настройках Geany (Правка -> Настройки -> Общее -> Запуск) бы отмечен пункт Загружать виртуальный терминал:

term_01

Впрочем, в большинстве случаев он включён по умолчанию. И в этом случае в окне сообщений в нижней части окна Geany можно видеть вкладку Терминал, переключение на которую выводит терминальное окно с приглашением командной строки:

term_02

Впрочем, по умолчанию это окно выглядит не совсем так. А скорее примерно так:

term_03

Вид с предыдущего скриншота придан ему путём некоторых настроечных мероприятий, о которых я сейчас расскажу.

Доступ к настройкам терминального окна Geany — через пункт Параметры из контекстного меню по щелчку правой кнопкой мыши в его пределах:

term_04

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

term_05

Как менять требуемые параметры — понятно без комментариев. А какие менять, и на что менять — дело сугубо интимное. В частности, у меня панель настроек выглядит так:

term_06

Здесь пару слов нужно сказать только о пункте Устанавливать путь вслед за текущим файлом. Если он включён, то с переключением между вкладками открытых документов, расположенных в разных каталогах, одновременно происходит смена текущего каталога (то есть выполняется команда cd, что можно видеть, пролистав историю команд в териминале). В большинстве случаев это удобно (в частности, мне удобно в 90% случаев). Но иногда мешает — требуется, чтобы в терминальном окне был некий фиксированный текущий каталог. Однако торопиться отключать опцию следования пути текущего файла не обязательно — и скоро я расскажу о другом пути решения этого вопроса.

А пока — пара слов о настройках непосредственно шелла, запускаемого во встроенном терминале. Каковой по умолчанию указан как /bin/bash иполучает свои параметры из профильных файлов данного пользователя. Я заменил его на /bin/zsh, который использую в качестве login shell и, соответственно, во всех терминальных программах, а также в консоли. В терминале Geany он получает свои параметры из ~/.zshrc и (в дистрибутивах семейства Ubuntu) .zshenv, а потому ведёт себя точно так же, как и во всех прочих случаях.

Штатного встроенного терминала Geany хватает почти во всех случаях. Однако у него есть и более функциональный аналог — Multiterm, реализованный в виде плагина geany-plugin-multiterm. Его особенностью, как можно догадаться из названия, является поддержка вкладок (Tabs). Плагин этот входит в состав метапакета geany-plugins, но может быть установлен и отдельно, например, так:

$ sudo apt install geany-plugins

После чего способом, описанным здесь, его надо активировать — никаких настроек для него на первый взгляд не предусмотрено:

term_07

После этого в окне сообщений появляется новая вкладка, которая так и называется Multiterm. И по умолчанию имеет весьма бледный вид:

term_08

В частности, запущенный в этом окне шелл и представляется как /bin/bash. Однако он запущен в режиме эмуляции POSIX shell, то есть не умеет ни автодополнения, ни истории команд… короче, ничего, за что мы так любим современные командные оболочки. Вызванное по аналогии со штатным терминалом контекстное меню позволяет открыть новую вкладку или переместить окно Multiterm в боковую панель (зачем это нужно — не знаю), но не содержит никаких возможностей для настройки:

term_09

Кстати, в Mint’е не работает и пункт Open Window — и сейчас станет ясно почему.

Однако доступ к настройкам возможен прямым редактированием конфига этого плагина — ~.config/geany/plugins/multiterm/multiterm.conf. Он разделяется три секции:

  • General Settings — общие свойства;
  • Default Shell — свойства умлочальной оболочки;
  • Other Shells — свойства прочих оболочек.

В первой из них можно, в частности, переопределить значение параметра external_terminal с умолчального xterm на, например, gnome-terminal. После этого волшебным образом заработает пункт Open Window из контекстного меню — он будет открывать терминал GNOME: дело в том, что в Mint’е по умолчанию xterm не устанавливается.

В секции Default Shell следует в первую очередь заменить этот самый default’ный шелл на что-то более человеческое, отредактировав строку

command=sh

должным образом, например, у меня таким:

command=/bin/zsh

Очевидно, что, отредактировав строки

bg_color=#ffffff
fg_color=#000000
font=Monospace 9

можно изменить цвет фона, текста и шрифтоначертание с кеглем для него, соответственно. Например, у меня это сделано так:

bg_color=#D6D6D6
fg_color=#000000
font=Monospace 15

А сняв комментарий со строки

scrollback_lines=1024

можно установить желаемую величину для прокрутки истории.

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

К сожалению, в Multiterm не и кое-чего другого, более важного. В частности, в нём категорически отказываются работать стандартные кейбиндинги типа Control+A, Control+E и им подобные. Поэтому в качестве замены штатному терминалу Geany он никак не годится. Но как его дополнение в некоторых случаях может быть полезен.

Содержание

Добавить комментарий