Qual é o nome desse truque gráfico da janela do terminal, que mostra bordas acentuadas em torno do texto destacado?

19

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

insira a descrição da imagem aqui

Neste exemplo, observe a borda amarela em torno da linha do modo Emacs (barra de status):

insira a descrição da imagem aqui

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

Atualizar

Depois de pesquisar e pesquisar o código do tema da interface do Emacs Customize , encontrei um código que definia as bordas. Na linguagem do Emacs, é chamado :boxe um de seus atributos é line-width. Aqui está 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 :boxpode ser encontrada na documentação dos atributos de face do manual Emacs , embora não mencione como funciona ou quais terminais são suportados.

Comecei a pensar que isso poderia ser um recurso especial das versões GUI do Emacs (como o Aquamacs , mas tenho certeza de que vi capturas de tela do que parecem ser as janelas dos terminais Ubuntu Unity com destaques semelhantes em caixas.

Steve HHH
fonte
essas capturas de tela são emacs rodando no X, não em um terminal.
casey

Respostas:

3

O efeito que você está vendo não é um truque gráfico da janela de terminal, é o gui emacs rodando em X. Você identifica corretamente a personalização para fazer com que o emacs desenhe isso, mas eles são renderizados apenas quando o emacs é rodado em X.

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

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

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

insira a descrição da imagem aqui

e quando o emacs é executado em um terminal (por exemplo emacs -nw), é renderizado como:

insira a descrição da imagem aqui

Você pode ver os efeitos de borda de pixel que dão a aparência elevada definida pela caixa renderizada apenas 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 é propriedade de nenhum emulador de terminal, nem qualquer emulador de terminal envolvido nessa renderização.

Casey
fonte
1
Sim, eu também suspeitava que as capturas de tela fossem da GUI-Version. Recentemente, modifiquei minha resposta para incluir listas de execuções de caracteres disponíveis para os Emuladores de Terminal. E esses não incluíram o que o OP pediu.
Alex Stragies
Para mim, parece que a caixa de estilo "botão liberado" coloca apenas uma linha na borda superior, enquanto nas capturas de tela do OP, a linha aparece em todos os lados da linha de modo. Eu entendi mal a pergunta?
ksoo
3

A maneira como eu entendo esta Página da Wikipedia (embora eu gostaria muito de provar que está errado neste problema específico):

  • O estilo Sublinhado existe, não limitado ao cursor. Eles chamam de código 4.
  • Estilo emoldurado existe, como em 4 bordas ao redor de cada caractere, eles chamam de código 51.

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

Portanto, minha resposta (em meados de 2015) permanece:

Os emuladores de terminal (atual) não podem exibir bordas coloridas opcionais por lado em torno dos caracteres da maneira que desejar.

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 atuais Emuladores de Terminal. Eu acho que as capturas de tela são de aplicativos GUI.

Mais uma vez, gostaria de me provar errado nisso, pois incorporaria essa formatação felizmente em minhas próprias personalizações de arquivo de pontos.

Alex Stragies
fonte
1
nota que xemacs é um fork do emacs (não é "emacs em X") e emacs regulares podem ser executados graficamente na X.
casey