Qual é o nome deste truque gráfico da janela do terminal, que mostra arestas acentuadas em volta do texto destacado?

19

Eu notei algumas capturas de tela de janelas de terminal on-line que mostram finas bordas destacadas em torno de barras de status ou linhas destacadas. No exemplo a seguir, observe a borda cinza clara nas linhas 1, 5 e 389:

Nesteexemplo,observeabordaamarelaaoredordalinhadomodoEmacs(barradestatus):

Qual é o nome desse efeito, e é possível com o iTerm 2 no OS X 10.10?

Atualizar

Depois de fazer algumas pesquisas e cavar o código do tema da interface do Emacs Customize , encontrei um código que definia as arestas. No jargão do Emacs, ele é chamado de :box e um de seus atributos é line-width . Veja um exemplo de uma linha de caixa sendo definida em um tema:

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

A documentação para :box pode ser encontrada nos atributos da face do manual do Emacs. documentação , embora não mencione como funciona ou quais terminais são suportados.

Eu comecei a pensar que isso pode ser uma característica especial das versões GUI do Emacs (como Aquamacs , mas tenho certeza que tenho capturas de tela do que parecem ser janelas de terminal do Ubuntu Unity com destaques de caixa semelhantes.

    
por Steve HHH 15.12.2014 / 22:24

2 respostas

3

O efeito que você está vendo não é um truque gráfico da janela do terminal, é o gui emacs rodando no X. Você identifica corretamente a customização para obter o emacs para desenhar isso, mas estes são renderizados apenas quando o emacs é executado no X. / p>

Para ilustrar, tenho minha linha de modo com o seguinte tema:

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

e quando o emacs é executado graficamente (por exemplo, emacs ), ele é renderizado como:

equandooemacséexecutadoemumterminal(porexemplo,emacs-nw),eleérenderizadocomo:

Você pode ver os efeitos de borda de pixel que dão a aparência elevada definida pela caixa somente renderizada no modo gui. No modo terminal, é apenas um efeito plano.

Da mesma forma, as imagens que você postou são do gui emacs e o efeito não é uma propriedade de qualquer emulador de terminal, nem qualquer emulador de terminal envolvido nessa renderização.

    
por 13.08.2015 / 20:37
3

A maneira como entendo esta Página da Wikipédia (embora eu gostaria muito de ser provada erroneamente nessa questão específica) :

  • O estilo Underline existe, não se limitando ao cursor. Eles chamam de código 4.
  • O
  • Estilo Framed existe, como em 4 bordas ao redor de cada caractere, eles o chamam de código 51.

Nota: Isso não permite enquadrar uma sequência de caracteres sem bordas entre o caractere. como Lisa na primeira captura de tela.

Então, minha resposta (a partir de meados de 2015) permanece:

(atual) Os emuladores de terminal não podem exibir bordas coloridas opcionais por lado dos caracteres da maneira que você deseja.

Aqui você pode ver como são os códigos ANSI aplicados.

Gui Aplicativos como gvim e xemacs, não baseados em um emulador de terminal, não estão vinculados às limitações dos emuladores de terminal atuais. Eu acho que as imagens são de aplicativos GUI.

Mais uma vez, gostaria de provar que isso está errado, já que eu incorporaria essa formatação em minhas próprias personalizações de dotfile.

    
por 09.08.2015 / 19:53