Jak nazywa się ta sztuczka graficzna okna terminala, która pokazuje akcentowane krawędzie wokół podświetlonego tekstu?


19

Zauważyłem kilka zrzutów ekranów okien terminali online, które pokazują cienkie podświetlone krawędzie wokół pasków stanu lub podświetlonych linii. W poniższym przykładzie zwróć uwagę na jasnoszare obramowanie wokół linii 1, 5 i 389:

wprowadź opis zdjęcia tutaj

W tym przykładzie zwróć uwagę na żółte obrzeże wokół linii trybu Emacsa (pasek stanu):

wprowadź opis zdjęcia tutaj

Jak nazywa się ten efekt i czy jest to możliwe w przypadku iTerm 2 w systemie OS X 10.10?

Aktualizacja

Po przeprowadzeniu badań i przejrzeniu kodu motywu interfejsu Emacs Customize znalazłem kod, który definiuje krawędzie. W mowie Emacsa nazywa się to :box, a jednym z jego atrybutów jest line-width. Oto przykład definicji linii pola w kompozycji:

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

Dokumentację :boxmożna znaleźć w dokumentacji atrybutów twarzy Emacsa w podręczniku Emacsa , chociaż nie wspomina ona o tym, jak to działa ani jakie terminale są obsługiwane.

Zacząłem myśleć, że może to być specjalna funkcja wersji GUI Emacsa (takich jak Aquamacs , ale jestem całkiem pewien, że widziałem zrzuty ekranu z okna terminalu Ubuntu Unity z podobnymi podświetleniami okien.


te zrzuty ekranu to emacs działający w X, a nie w terminalu.
casey

Odpowiedzi:


3

Efekt, który widzisz, nie jest graficzną sztuczką okna terminala, to gui emacs działający w X. Prawidłowo identyfikujesz dostosowanie, aby emacs je narysował, ale są one renderowane tylko wtedy, gdy emacs jest uruchamiany w X.

Aby to zilustrować, mam tematyczne linie trybu:

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

a gdy emacs jest uruchamiany graficznie (np. emacs), jest renderowany w następujący sposób:

wprowadź opis zdjęcia tutaj

a gdy emacs jest uruchamiany w terminalu (np. emacs -nw), jest renderowany jako:

wprowadź opis zdjęcia tutaj

Widoczne są efekty obramowania pikseli, które nadają wyglądzie zdefiniowanemu przez ramkę renderowanie tylko w trybie GUI. W trybie terminalowym jest to po prostu efekt płaski.

Podobnie, opublikowane przez ciebie zdjęcia pochodzą z gui emacs i efekt nie jest własnością żadnego emulatora terminala, ani żaden emulator terminala jest zaangażowany w to renderowanie.


1
Tak, podejrzewałem też, że zrzuty ekranu pochodzą z wersji GUI. Niedawno zmodyfikowałem swoją odpowiedź, aby uwzględnić listy dostępnych wersji znaków dostępnych dla emulatorów terminali. A te nie obejmowały tego, o co prosił PO.
Alex Stragies,

Dla mnie wygląda to tak, jakby pole stylu „zwolnionego przycisku” umieszczało tylko linię na górnej krawędzi, podczas gdy na zrzutach ekranów PO, linia pojawia się po wszystkich stronach linii trybu. Czy źle zrozumiałem pytanie?
ksoo

3

Sposób, w jaki rozumiem tę stronę w Wikipedii (choć bardzo chciałbym się wykazać, że się mylę w tej konkretnej sprawie):

  • Istnieje podkreślenie stylu , które nie ogranicza się do kursora. Nazywają to kod 4.
  • Style Framed istnieje, ponieważ w 4 ramkach wokół każdego znaku nazywają go kod 51.

Uwaga: Nie pozwala to na obramowanie ciągu znaków bez granic między znakiem. jak Lisana pierwszym zrzucie ekranu.

Tak więc moja odpowiedź (z połowy 2015 r.) Pozostaje:

(Bieżące) Emulatory terminali nie mogą wyświetlać opcjonalnie kolorowych ramek wokół znaków w pożądany sposób.

Tutaj możesz zobaczyć, jak wyglądają zastosowane Kody ANSI.

Aplikacje GUI, takie jak gvim i xemacs, nie oparte na emulatorze terminali, nie są ograniczone ograniczeniami obecnych emulatorów terminali. Myślę, że zrzuty ekranu pochodzą z aplikacji GUI.

Ponownie chciałbym się wykazać, że się mylę, ponieważ chętnie włączę takie formatowanie do moich własnych dostosowań plików dot.


1
zauważ, że xemacs jest rozwidleniem emacsa (nie jest to „emacs in X”), a zwykłe emacs mogą działać graficznie w X.
casey
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.