Pertanyaan itu sebenarnya beberapa pertanyaan, dan "karakter kontrol" hanya membahas sebagian kecil saja, misalnya bilah kemajuan untuk curl
. Secara umum, ini adalah fitur umum dari terminal (dan emulator terminal).
Sebagian besar fitur umum ini distandarisasi dalam ECMA-48: Fungsi Kontrol untuk Set Karakter Coded . Namun, fitur lainnya tidak . Mereka didefinisikan implementasi.
ECMA-48 mengacu pada fungsi kontrol . Itu termasuk karakter kontrol dan urutan kontrol (sering disebut sebagai urutan melarikan diri, urutan ANSI, dll).
Beberapa karakter kontrol digunakan untuk operasi sederhana , misalnya,
- pindahkan kursor ke kolom sebelumnya pada baris yang sama
- pindahkan kursor ke kolom pertama pada baris yang sama
- pindahkan kursor ke perhentian tab berikutnya di baris yang sama
- pindahkan kursor ke baris berikutnya (dan gulir layar jika sudah di baris terakhir)
Bilah kemajuan untuk curl
dibangun menggunakan operasi sederhana ini. Tetapi karakter kontrol hanya bisa melakukan begitu banyak, tidak lebih. Kontrol urutan melakukan lebih banyak, misalnya,
- pindahkan kursor ke baris / kolom mana saja di layar
- pindahkan kursor ke baris mana pun di kolom yang sama di layar
- pindahkan kursor ke kolom mana saja di baris yang sama di layar
- atur tab-stops di kolom mana saja di layar
- pindahkan kursor ke baris sebelumnya
- membuat layar gulir ke atas atau ke bawah tanpa menggerakkan kursor
Begitu banyak persamaan antara sederhana / kompleks. Urutan kontrol juga digunakan untuk mengubah warna teks dan latar belakang, menghapus teks dari layar, menampilkan teks dalam video terbalik (atau cetak tebal, garis bawah, berkedip).
Program yang menggambar urutan kontrol menggunakan reverse-video (atau berwarna) menggunakan bar .
Meskipun urutan kontrol dapat melakukan lebih banyak, mereka hanya dapat melakukan hal-hal tertentu. Menyatukan mereka untuk membuat editor teks, layar instalasi (dan program yang menggambar progress-bar berwarna) menjadi rumit. Beberapa di antaranya dibuat lebih sederhana dengan menggunakan perpustakaan yang tahu tentang hal-hal ini. Awalnya, kami memiliki termcap (dan database beberapa ratus jenis terminal), diperluas ke terminfo (dan database sekitar seribu jenis terminal).
Bahkan dengan standarisasi, ada puluhan deskripsi terminal yang dapat Anda gunakan . Jadi kami terus menggunakan perpustakaan untuk semua kecuali yang paling sepele dari aplikasi ini. Salah satunya adalah ncurses ("kutukan baru"), yang lain adalah bahasa gaul (secara teknis "S-Lang").
Bacaan lebih lanjut:
ncurses
.