December 1

Подсветка синтаксиса в терминале: что есть на Linux?

1. Перенаправлять вывод текста в утилиту через pipe

В качестве примера TxtStyle или Grc
Используется примерно так:

ps u | txts -n ps

Вывод утилиты TxtStyle


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


2. Использовать альтернативные терминалы

Эти терминалы работают на Electron/JS/CSS

Кстати, про tabby был пост на канале

Tabby пример выделения кода
extraterm пример подсветки синтаксиса

Минусы

  • Дольше открываются, грузятся, и больше потребляют ресурсов системы

MobaXTerm (через Wine)

На официальном сайте есть заметка про установку на Linux через Wine
Там сразу предупреждают, что первый запуск может быть долгим.
Версия доступна, хоть и не прошла тщательного тестирования.

Пример подсветки синтаксиса в mobaxterm

Минусы:

  • Официальной релизной версии нет, непредсказумая работа приложения.

4. Подсвечивать вывод SSH

Что делать, если с текущего терминала переходить на другой не хочется?
Можно воспользоваться ChromaTerm

Перехватывает вывод SSH и раскрашивает его по заданным правилам
Настраивается через alias:

alias ssh="ct ssh"

Также можно подсвечивать текущую оболочку через настройки терминала
Путь может отличаться в зависимости от способа установки:

/usr/local/bin/ct /bin/bash --login
ChromaTerm подсветка кода

Минусы:

  • Проект заархивирован, давно не обновлялся
  • Когда я им пользовался замечал проблему, что он мог нарушать цветной вывод других утилит.
    Например, вывод утилиты k9s мог криво отображаться, если запускать его через ChromaTerm.


Итоги

Я для себя остановился на MobaXTerm. На данный момент для меня он самый удобный и стабильный вариант.


Если потребуется поработать на других операционных системах, то снова воспользуюсь ChromaTerm.