Как называется этот графический трюк окон терминала, который показывает акцентированные края вокруг выделенного текста?

19

Я заметил несколько скриншотов окон терминала онлайн, которые показывают тонкие выделенные края вокруг строк состояния или выделенных линий. В следующем примере обратите внимание на светло-серую окантовку вокруг линий 1, 5 и 389:

введите описание изображения здесь

В этом примере обратите внимание на желтую окантовку вокруг строки режима Emacs (строка состояния):

введите описание изображения здесь

Как называется этот эффект, и возможно ли это с iTerm 2 под OS X 10.10?

Обновить

Проведя некоторые исследования и покопавшись в коде темы интерфейса Emacs Customize , я нашел код, определяющий края. На языке Emacs это называется :box, и одним из его атрибутов является line-width. Вот пример строки блока, определяемой в теме:

'(modeline ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed))))

Документация для :boxможет быть найдена в документации по атрибутам лица руководства Emacs , хотя в ней не указано, как она работает, или какие терминалы поддерживаются.

Я начал думать, что это может быть особой особенностью версий Emacs с графическим интерфейсом (таких как Aquamacs) , но я почти уверен, что видел скриншоты окон терминала Ubuntu Unity с похожими окнами.

Стив ХХХ
источник
Эти скриншоты - Emacs, работающий в X, а не в терминале.
Кейси

Ответы:

3

Эффект, который вы видите, не является графическим приемом оконного окна, это графический интерфейс, работающий в X. Вы правильно определяете настройку, чтобы заставить emacs рисовать это, но они отображаются только тогда, когда emacs запускается в X.

Чтобы проиллюстрировать это, у меня есть моя строка мод:

 '(mode-line ((t (:background "gray10" :foreground "green" :box (:line-width -1 :style released-button)))))

и когда emacs запускается графически (например emacs), он отображается так:

введите описание изображения здесь

и когда emacs запускается в терминале (например emacs -nw), он отображается как:

введите описание изображения здесь

Вы можете видеть эффекты границы пикселей, которые дают рельефный вид, определенный рамкой, только в режиме графического интерфейса. В режиме терминала это просто плоский эффект.

Точно так же изображения, которые вы разместили, взяты из gui emacs, и эффект не является свойством какого-либо эмулятора терминала, равно как и эмулятор терминала не участвует в этом рендеринге.

Casey
источник
1
Да, я также подозревал, что скриншоты сделаны из GUI-версии. Недавно я изменил свой ответ, включив в него списки доступных представлений символов, доступных для эмуляторов терминала. И те не включали то, что попросил ОП.
Алекс Стрэги
Для меня это выглядит так, как будто поле стиля "освобожденная кнопка" только ставит линию на верхнем краю, тогда как на скриншоте (ах) ОП линия появляется со всех сторон линии режима. Я неправильно понял вопрос?
ksoo
3

Как я понимаю эту страницу в Википедии (хотя я бы очень хотел оказаться ошибочным в этом конкретном вопросе):

  • Стиль подчеркивания существует, не ограничивается курсором. Они называют это кодом 4.
  • Стиль Framed существует, так как в 4 границах вокруг каждого символа они называют его кодом 51.

Примечание. Это не позволяет создавать строку символов без границ между символами. как Lisaна первом скриншоте.

Итак, мой ответ (по состоянию на середину 2015 года) остается:

(Текущие) Эмуляторы терминала не могут отображать необязательные цветные рамки вокруг символов по вашему желанию.

Здесь вы можете увидеть, как выглядят ANSI-коды.

Приложения Gui, такие как gvim и xemacs, не основанные на эмуляторе терминала, не связаны с ограничениями существующих эмуляторов терминала. Я думаю, что скриншоты из приложений с графическим интерфейсом.

Опять же, я хотел бы оказаться неправым в этом, так как я бы с радостью включил такое форматирование в свои собственные настройки dotfile.

Алекс Страгиес
источник
1
обратите внимание, что xemacs - это ветвь emacs (это не «emacs in X»), и обычные emacs могут работать графически в X.
casey