Quel est le nom de cette astuce graphique de la fenêtre de terminal, qui montre les bords accentués autour du texte en surbrillance?

19

J'ai remarqué quelques captures d'écran de fenêtres de terminal en ligne qui montrent de minces bords en surbrillance autour des barres d'état ou des lignes en surbrillance. Dans l'exemple suivant, notez la bordure gris clair autour des lignes 1, 5 et 389:

entrez la description de l'image ici

Dans cet exemple, notez la bordure jaune autour de la ligne de mode Emacs (barre d'état):

entrez la description de l'image ici

Quel est le nom de cet effet et est-il possible avec iTerm 2 sous OS X 10.10?

Mise à jour

Après avoir fait des recherches et creusé dans le code du thème de l'interface Emacs Customize , j'ai trouvé du code qui définissait les bords. Dans le langage Emacs, cela s'appelle :box, et l'un de ses attributs est line-width. Voici un exemple de ligne de boîte définie dans un thème:

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

La documentation de :boxse trouve dans la documentation des attributs faciaux du manuel Emacs , bien qu'elle ne mentionne pas comment cela fonctionne, ni quels terminaux sont pris en charge.

J'ai commencé à penser que cela pourrait être une caractéristique spéciale des versions GUI d'Emacs (telles que Aquamacs , mais je suis presque sûr d'avoir vu des captures d'écran de ce qui semble être des fenêtres de terminal Ubuntu Unity avec des surbrillances similaires).

Steve HHH
la source
ces captures d'écran sont des emacs fonctionnant sous X, pas dans un terminal.
casey

Réponses:

3

L'effet que vous voyez n'est pas une astuce graphique de la fenêtre de terminal, c'est gui emacs s'exécutant dans X. Vous identifiez correctement la personnalisation pour qu'emacs dessine cela, mais ceux-ci ne sont rendus que lorsque emacs est exécuté dans X.

Pour illustrer, j'ai ma ligne de mode sur le thème de:

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

et quand emacs est exécuté graphiquement (par exemple emacs) il est rendu comme:

entrez la description de l'image ici

et quand emacs est exécuté dans un terminal (par exemple emacs -nw), il est rendu comme:

entrez la description de l'image ici

Vous pouvez voir les effets de bordure en pixels qui donnent l'apparence en relief définie par la boîte de rendu uniquement en mode gui. En mode terminal, c'est juste un effet plat.

De même, les images que vous avez publiées proviennent de gui emacs et l'effet n'est la propriété d'aucun émulateur de terminal, ni aucun émulateur de terminal impliqué dans ce rendu.

casey
la source
1
Oui, je soupçonnais également les captures d'écran de la version GUI. J'ai récemment modifié ma réponse pour inclure des listes de rendus de caractères disponibles pour les émulateurs de terminaux. Et ceux-ci n'incluaient pas ce que le PO demandait.
Alex Stragies
Pour moi, il semble que la boîte de style "bouton relâché" ne place qu'une ligne sur le bord supérieur, alors que dans la ou les captures d'écran de l'OP, la ligne apparaît de tous les côtés de la ligne de mode. Ai-je mal compris la question?
ksoo
3

La façon dont je comprends cette page Wikipédia (bien que j'aimerais beaucoup me tromper sur cette question spécifique):

  • Le soulignement de style existe, non limité au curseur. Ils l'appellent le code 4.
  • Style Framed existe, car dans 4 bordures autour de chaque caractère, ils l'appellent code 51.

Remarque: cela ne permet pas d'encadrer une chaîne de caractères sans frontières entre les caractères. comme Lisadans la première capture d'écran.

Donc, ma réponse (à la mi-2015) reste:

Les émulateurs de terminaux (actuels) ne peuvent pas afficher les bordures colorées facultatives par côté autour des caractères comme vous le souhaitez.

Ici, vous pouvez voir à quoi ressemblent les codes ANSI.

Les applications Gui comme gvim et xemacs, non basées sur un émulateur de terminal, ne sont pas liées aux limitations des émulateurs de terminal actuels. Je pense que les captures d'écran proviennent d'applications GUI.

Encore une fois, je voudrais me tromper sur ce point, car je serais heureux d'incorporer un tel formatage dans mes propres personnalisations de fichiers dot.

Alex Stragies
la source
1
notez que xemacs est une fourchette d'emacs (ce n'est pas "emacs dans X") et que les emacs réguliers peuvent s'exécuter graphiquement dans X.
casey