Apa nama trik grafis jendela terminal ini, yang menunjukkan tepi beraksen di sekitar teks yang disorot?

19

Saya perhatikan beberapa tangkapan layar terminal windows online yang menunjukkan tepi yang disorot tipis di sekitar bilah status atau garis yang disorot. Dalam contoh berikut, perhatikan abu-abu muda yang merayap di sekitar garis 1, 5, dan 389:

masukkan deskripsi gambar di sini

Dalam contoh ini, perhatikan tepi kuning di sekitar garis mode Emacs (bilah status):

masukkan deskripsi gambar di sini

Apa nama efek ini, dan apakah mungkin dengan iTerm 2 di bawah OS X 10.10?

Memperbarui

Setelah melakukan beberapa penelitian dan menggali kode tema antarmuka Emacs Customize , saya menemukan beberapa kode yang mendefinisikan tepi. Dalam bahasa Emacs, itu disebut :box, dan salah satu atributnya adalah line-width. Berikut adalah contoh garis kotak yang didefinisikan dalam sebuah tema:

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

Dokumentasi untuk :boxdapat ditemukan dalam dokumentasi atribut wajah manual Emacs , meskipun tidak menyebutkan cara kerjanya, atau terminal mana yang didukung.

Saya mulai berpikir bahwa ini mungkin fitur khusus versi GUI dari Emacs (seperti Aquamacs , tetapi saya cukup yakin bahwa saya telah melihat tangkapan layar dari apa yang tampak sebagai jendela terminal Ubuntu Unity dengan sorotan kotak yang serupa.

Steve HHH
sumber
tangkapan layar itu adalah emacs yang berjalan di X, bukan di terminal.
casey

Jawaban:

3

Efek yang Anda lihat bukan trik jendela terminal, itu adalah gui emacs yang berjalan di X. Anda benar mengidentifikasi kustomisasi untuk mendapatkan emacs untuk menggambar itu, tetapi ini hanya diberikan ketika emacs dijalankan di X.

Sebagai ilustrasi, saya memiliki garis mode bertema:

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

dan ketika emacs dijalankan secara grafis (misal emacs) ia dibuat seperti:

masukkan deskripsi gambar di sini

dan ketika emacs dijalankan di terminal (mis. emacs -nw) itu diterjemahkan sebagai:

masukkan deskripsi gambar di sini

Anda dapat melihat efek batas piksel yang memberikan tampilan terangkat yang ditentukan oleh render kotak saja dalam mode gui. Dalam mode terminal itu hanya efek datar.

Demikian pula, gambar yang telah Anda posting berasal dari gui emacs dan efeknya bukan milik emulator terminal apa pun, juga tidak ada emulator terminal yang terlibat dalam rendering itu.

casey
sumber
1
Ya, saya juga menduga tangkapan layar berasal dari GUI-Version. Saya baru-baru ini memodifikasi jawaban saya untuk memasukkan daftar rendisi karakter yang tersedia untuk Terminal Emulator. Dan itu tidak termasuk apa yang diminta OP.
Alex Stragies
Bagi saya, sepertinya kotak gaya "tombol dilepas" hanya menempatkan garis di tepi atas, sedangkan di tangkapan layar OP, garis muncul di semua sisi garis mode. Sudahkah saya salah memahami pertanyaan?
ksoo
3

Cara saya memahami Halaman Wikipedia ini (meskipun saya sangat ingin dibuktikan salah pada masalah spesifik ini):

  • Style Underline ada, tidak terbatas pada kursor. Mereka menyebutnya kode 4.
  • Style Framed ada, seperti di 4 perbatasan di sekitar setiap karakter, mereka menyebutnya kode 51.

Catatan: Itu tidak memungkinkan membingkai string karakter tanpa batas antara karakter. seperti Lisadi screenshot pertama.

Jadi, jawaban saya (per pertengahan 2015) tetap:

Terminal (Saat Ini) Emulator tidak dapat menampilkan batas berwarna opsional per karakter di sekitar karakter sesuai keinginan Anda.

Di sini Anda dapat melihat, seperti apa ANSI-Codes seperti diterapkan.

Aplikasi Gui seperti gvim dan xemacs, tidak didasarkan pada Emulator Terminal, tidak terikat pada batasan Emulator Terminal saat ini. Saya pikir, tangkapan layarnya dari aplikasi GUI.

Sekali lagi, saya ingin terbukti salah dalam hal ini, karena saya akan dengan senang hati memasukkan format seperti itu ke dalam penyesuaian dotfile saya sendiri.

Alex Stragies
sumber
1
perhatikan bahwa xemac adalah fork dari emacs (ini bukan "emacs dalam X") dan emacs reguler dapat berjalan secara grafis di X.
casey