ANSI qochish kodi - ANSI escape code

ANSI X3.64 (ISO 6429)
Htop.png
Tizim monitorining chiqishi tepa, ncurses-application (foydalanadigan SGR va boshqa ANSI / ISO boshqaruv ketma-ketliklari).
Standart
TasnifiISO / IEC 2022 asoslangan boshqaruv kodi va boshqaruv ketma-ketligi o'rnatilgan
Boshqa tegishli kodlash (lar)Boshqarish funktsiyalarining boshqa standartlari: ITU T.101, JIS X 0207, ISO 6630, DIN 31626, ETS 300 706

ANSI qochish ketma-ketliklari uchun standartdir tarmoqli ichidagi signalizatsiya videodagi kursorning joylashishini, rangini, shrift uslubini va boshqa parametrlarini boshqarish uchun matnli terminallar va terminal emulyatorlari. Ning ma'lum ketma-ketliklari bayt, ko'pi bilan boshlanadi ASCII qochish va qavs belgi va undan keyin parametrlar matnga kiritiladi. Terminal ushbu ketma-ketlikni so'zma-so'z ko'rsatish uchun matn o'rniga buyruqlar sifatida izohlaydi.

ANSI ketma-ketliklari sotuvchiga xos ketma-ketliklarni almashtirish uchun 1970-yillarda paydo bo'ldi va 1980-yillarning boshlarida kompyuter uskunalari bozorida keng tarqaldi. Ular ishlab chiqishda, ilmiy va tijorat matnli dasturlarda, shuningdek ishlatiladi e'lonlar taxtasi tizimlari standartlashtirilgan funksionallikni taklif qilish.

XXI asrda apparat matnli terminallar tobora kamdan-kam uchraydigan bo'lsa-da, ANSI standartining dolzarbligi saqlanib qolmoqda, chunki terminal emulyatorlari va buyruq konsollarining aksariyati ANSI standartining kamida bir qismini sharhlaydi.

Tarix

Deyarli barcha video terminallarni ishlab chiqaruvchilar kursorni ekranda o'zboshimchalik holatiga qo'yish kabi operatsiyalarni bajarish uchun sotuvchiga xos qochish ketma-ketliklarini qo'shdilar. Bir misol VT52 terminali, bu esa kursorni yuborish orqali ekranda x, y joyiga qo'yishga imkon beradi ESC belgi, a Y belgi, so'ngra x, y joylashuvi va 32 ga teng bo'lgan sonli qiymatlar bilan ifodalanadigan ikkita belgi (shuning uchun ASCII bo'shliq belgisidan boshlanib, boshqaruv belgilaridan qochish). The Hazeltine 1500 shunga o'xshash xususiyatga ega edi ~, DC1 va keyin vergul bilan ajratilgan X va Y pozitsiyalari. Ikkala terminalda bu borada bir xil funktsionallik mavjud bo'lsa-da, ularni chaqirish uchun turli xil boshqaruv ketma-ketliklaridan foydalanish kerak edi.

Ushbu ketma-ketliklar turli terminallar uchun har xil bo'lganligi sababli, masalan, batafsil kutubxonalar termcap ("terminal qobiliyatlari") va shunga o'xshash yordam dasturlari tput dasturlari bir xil foydalanishi uchun yaratilishi kerak edi API har qanday terminal bilan ishlash. Bundan tashqari, ushbu terminallarning aksariyati belgilarning ikkilik qiymatlari sifatida raqamlarni (qator va ustun kabi) yuborishni talab qildi; ba'zi dasturlash tillari uchun va ichki ASCII dan foydalanmagan tizimlar uchun ko'pincha raqamni to'g'ri belgiga aylantirish qiyin bo'lgan.

ANSI standarti ushbu muammolarni barcha terminallar foydalanadigan va barcha raqamli ma'lumotlarning ASCII raqamlari sifatida uzatilishini talab qiladigan buyruqlar to'plamini tuzish orqali hal qilishga urindi. Seriyadagi birinchi standart 1976 yilda qabul qilingan ECMA-48 edi.[1] Bu belgi kodlash standartlarining bir qatorining davomi edi, birinchisi ECMA-6 1965 yildan boshlab 7 bitlik standart ISO 646 kelib chiqadi. "ANSI qochish ketma-ketligi" nomi 1979 yildan beri paydo bo'lgan ANSI ANSI X3.64 ni qabul qildi. ANSI X3L2 qo'mitasi. Bilan hamkorlik qildi ECMA deyarli bir xil standartlarni ishlab chiqarish uchun TC 1 qo'mitasi. Ushbu ikkita standart ISO 6429 xalqaro standartiga birlashtirildi.[1] 1994 yilda ANSI xalqaro standart foydasiga o'z standartidan voz kechdi.

Ushbu ketma-ketlikni qo'llab-quvvatlaydigan birinchi mashhur video terminal bu edi Raqamli VT100, 1978 yilda kiritilgan.[2] Ushbu model bozorda juda muvaffaqiyatli edi, bu VT100 klonlarini keltirib chiqardi, ularning orasida eng qadimgi va eng ommaboplari orasida ancha arzon edi. Zenit Z-19 1979 yilda.[3] Boshqalar tarkibiga kiritilgan Qume QVT-108, Televizion TVI-970, Vayz WY-99GT, shuningdek ixtiyoriy "VT100" yoki "VT103" yoki "ANSI" rejimlari ko'plab boshqa markalarda turli darajadagi moslik darajalariga ega. Bularning mashhurligi asta-sekin ko'proq dasturiy ta'minotni keltirib chiqardi (ayniqsa e'lonlar taxtasi tizimlari va boshqalar onlayn xizmatlar ) deyarli barcha yangi terminallar va ularni qo'llab-quvvatlovchi emulyator dasturlarini yaratishga olib keladigan qochish ketma-ketligini taxmin qilish.

1981 yilda ANSI X3.64 tomonidan AQSh hukumatida foydalanish uchun qabul qilingan FIPS 86-nashr. Keyinchalik, AQSh hukumati sanoat standartlarini takrorlashni to'xtatdi, shuning uchun FIPS pab. 86 qaytarib olindi.[4]

ECMA-48 bir necha bor yangilangan va hozirda uning 1991 yildagi 5-nashrida. Shuningdek, u tomonidan qabul qilingan ISO va IEC standart sifatida ISO / IEC 6429.[5] A versiyasi sifatida qabul qilingan Yaponiya sanoat standarti, kabi JIS X 0211.

Tegishli standartlarga quyidagilar kiradi ITU T.61, Teleteks standart va ISO / IEC 8613, Hujjat arxitekturasini oching standart (asosan ISO / IEC 8613-6 yoki ITU T.416). Ikkala tizim ANSI tizimi bilan ko'plab qochish kodlarini baham ko'radi, ularning kengaytmalari kompyuter terminallari uchun ahamiyatli emas. Ikkala tizim ham tezda ishdan chiqdi, ammo ECMA-48 ularda ishlatiladigan kengaytmalarni zaxira sifatida belgilaydi.

Platformani qo'llab-quvvatlash

Unixga o'xshash tizimlar

Garchi termcap /terminfo - uslubiy kutubxonalar asosan 1980-yillarning o'rtalarida Unix-da va uchun ishlab chiqilgan Unixga o'xshash operatsion tizimlar deyarli har doim ANSI ketma-ketligini qo'llab-quvvatlaydigan terminal yoki emulyatordan foydalangan deb taxmin qilishlari mumkin edi;[iqtibos kerak ] bu ANSI-ni ushbu platformalarda ishlaydigan dasturlar tomonidan keng qo'llanilishiga olib keldi. Masalan, ko'plab o'yinlar va qobiq skriptlari (rangli tezkor misollar uchun quyida ko'ring) va rangli kataloglar ro'yxati kabi yordamchi dasturlar to'g'ridan-to'g'ri ANSI ketma-ketligini yozadi va shu sababli ularni izohlamaydigan terminalda ishlatib bo'lmaydi. Ko'plab dasturlar, shu jumladan matn muharrirlari kabi vi va GNU Emacs, termcap yoki terminfo-dan foydalaning yoki kabi kutubxonalardan foydalaning la'natlar termcap yoki terminfo dan foydalanadigan va shuning uchun nazariy jihatdan ANSI bo'lmagan terminallarni qo'llab-quvvatlaydigan, ammo hozirgi kunda bu juda kamdan-kam sinovdan o'tganligi sababli ishlamasligi mumkin ushbu terminallar bilan.[iqtibos kerak ]

Terminal emulyatorlari mahalliy dasturlar, shuningdek masofali mashinalar va matn bilan aloqa qilish uchun tizim konsoli deyarli har doim ANSI qochish kodlarini qo'llab-quvvatlaydi. Bunga kabi terminal emulyatorlari kiradi xterm, rxvt, GNOME terminali va Konsole tizimlarida X11 asoslangan yoki Wayland asoslangan oyna tizimlari va Terminal.app va shunga o'xshash uchinchi tomon terminallari iTerm2 kuni macOS.

DOS, OS / 2 va Windows

MS-DOS 1.x ANSI yoki boshqa qochish ketma-ketliklarini qo'llab-quvvatlamadi. Faqat bir nechtasi belgilarni boshqarish (BEL, CR, LF, BS ) asosiy BIOS tomonidan talqin qilinib, deyarli amalga oshirildi[nb 1] to'liq ekranli dasturni amalga oshirishning iloji yo'q. Har qanday displey effektlari BIOS-ning qo'ng'iroqlari bilan amalga oshirilishi kerak edi, ular juda sekin edi yoki to'g'ridan-to'g'ri IBM PC apparatini boshqarish orqali.

DOS 2.0 a qo'shish imkoniyatini taqdim etdi qurilma drayveri ANSI qochish ketma-ketliklari uchun - amalda standart mavjudot ANSI.SYS, lekin boshqalarga yoqadi ANSI.COM,[6] NANSI.SYS[7] va ANSIPLUS.EXE ham ishlatiladi (ular BIOS-ni chetlab o'tishlari bilan ancha tezroq). Sekinlik va uning sukut bo'yicha o'rnatilmaganligi dasturlardan kamdan kam foydalanadi; Buning o'rniga, dasturlar kerakli matnli displeyni olish uchun apparatni to'g'ridan-to'g'ri boshqarishni davom ettirdilar.[iqtibos kerak ] ANSI.SYS va shunga o'xshash haydovchilar ishlashni davom ettirdilar Windows 9x qadar Windows Me va ostida bajariladigan 16-bitli eski dasturlar uchun NT-dan olingan tizimlarda NTVDM.

DOS-ning ko'plab klonlari ketma-ketlikni izohlash imkoniyatiga ega edi va alohida ANSI drayverini yuklashni talab qilmaydi. PTS-DOS[8][9] shu qatorda; shu bilan birga Bir vaqtning o'zida DOS, Multiuser DOS[10] va REAL / 32 o'rnatilgan qo'llab-quvvatlashga ega (shuningdek, bir qator kengaytmalar). OS / 2 bor edi ANSI ketma-ketlikni yoqadigan buyruq.

The Windows konsol ANSI qochish ketma-ketligini qo'llab-quvvatlamagan va Microsoft ularni yoqish uchun biron bir usulni taqdim etmagan. JP Software kabi konsol oynasi uchun ba'zi almashtirishlar yoki qo'shimchalar TCC (ilgari 4NT), Maykl J. Meffordning ANSI.COM, Jeyson Xudnikidir ANSIKON[11]va Maximus5 ConEmu dasturlar tomonidan chop etilgan ANSI qochish ketma-ketligini talqin qildi. Python to'plami[12] chop etilayotgan matnda ichki sharhlangan ANSI qochish ketma-ketliklari, ularni rang va kursor holatini boshqarish uchun qo'ng'iroqlarga tarjima qilish, Windows-ga ANSI yordamida Python kodini ko'chirishni osonlashtirish. Kigvin Cygwin fayl tavsiflovchilari yordamida konsolga yozilgan barcha chiqimlarga o'xshash tarjimani amalga oshiradi, filtrlash chiqish funktsiyalari bilan amalga oshiriladi cygwin1.dll, POSIX C kodini Windows-ga ko'chirishga ruxsat berish.

2016 yilda Microsoft kompaniyasi Windows 10 Versiya 1511 Windows NT-ning debyutidan keyin yigirma yil ichida ANSI qochish ketma-ketligini kutilmagan tarzda qo'llab-quvvatlagan yangilanish.[13] O'zgarish, uni to'ldirish uchun ishlab chiqilgan Linux uchun Windows quyi tizimi ga qo'shish Windows konsol xosti uchun terminalga asoslangan dastur tomonidan ishlatiladigan belgilar qochish kodlari uchun Buyruqning tezkor yordami tomonidan ishlatiladi Unixga o'xshash tizimlar. Bu odatiy xatti-harakatlar emas va Win32 API orqali dasturiy ta'minot bilan yoqilgan bo'lishi kerak SetConsoleMode (tutqich, ENABLE_VIRTUAL_TERMINAL_PROCESSING).[14] Bu CMD.EXE tomonidan yoqilgan, lekin dastlab emas PowerShell;[15] ammo, Windows PowerShell 5.1 endi buni sukut bo'yicha yoqadi. ESC o'z ichiga olgan qatorni doimiy qilish qobiliyati PowerShell 6-ga qo'shilgan (masalan) "e [32m";[16] PowerShell 5 uchun siz foydalanishingiz kerak edi [char] 0x1B + "[32m".

Windows terminali, 2019 yilda taqdim etilgan sukut bo'yicha ketma-ketlikni qo'llab-quvvatlaydi va Microsoft Windows Console-ni u bilan birlashtirish yoki almashtirish niyatida.[iqtibos kerak ]

Atari ST

The Atari ST dan moslashtirilgan buyruqlar tizimidan foydalanilgan VT52 rangni qo'llab-quvvatlash uchun ba'zi kengayishlar bilan,[17] ANSI qochish kodlarini qo'llab-quvvatlash o'rniga.

AmigaOS

AmigaOS nafaqat ekranga, AmigaOS-ga matn chiqarish uchun ANSI kodlar ketma-ketligini izohlaydi printer haydovchi ularni izohlaydi (AmigaOS-ga tegishli kengaytmalar bilan) va ularni aslida biriktirilgan printer uchun zarur bo'lgan kodlarga aylantiradi.[18]

VMS / OpenVMS

VMS yuqorida aytib o'tilgan kabi raqamli matnli video terminallar yordamida interaktiv ravishda boshqarish uchun ishlab chiqilgan VT100; keyinchalik VWS Terminal, DECTerm va xterm kabi grafik terminal emulyatorlari bilan.[19]

Qochish ketma-ketliklari

Qochish ketma-ketliklari uzunligi bo'yicha farq qiladi. ANSI-ga mos keladigan qochish ketma-ketligining umumiy formati quyidagicha aniqlanadi ANSI X3.41 (ECMA-35 yoki ISO / IEC 2022 ga teng). The ESC (27 / olti burchak 0x1B / sakkiz 033) keyin nol yoki undan ko'proq oraliq "Men"hex 0x20 dan 0x2F gacha bo'lgan baytlar, so'ngra final"F"bayt 0x30 dan 0x7E gacha.[20]:13.1

Bundan tashqari, ba'zi bir boshqarish funktsiyalari ESC ketma-ketligidan keyin, ya'ni F ESC ketma-ketligi bayti. Xususan, uchun ESC ketma-ketligi CSI (0x1B 0x5B, yoki ESC [) o'zi parametrlar qatori va oraliq baytlar ketma-ketligini, so'ngra 0x40 va 0x7E oralig'idagi yakuniy baytni oladi; CSI uchun ESC ketma-ketligini va keyingi parametr va identifikator baytlarini o'z ichiga olgan butun ketma-ketlik ECMA-48 (ANSI X3.64 / ISO 6429) tomonidan "boshqaruv ketma-ketligi" deb nomlangan.[5]:5.4 Bundan tashqari, uchun ESC ketma-ketliklari DCS, SOS, OSC, Bosh vazir va APC tomonidan tugatilgan parametr ma'lumotlarining o'zgaruvchan uzunlikdagi ketma-ketligi ST; bu "boshqaruv satri" deb nomlanadi.[5]:5.6

ANSI X3.41 / ECMA-35 qochish ketma-ketligini bir nechta keng toifalarga ajratadi:[20]:13.2

  • Yo'q bilan ketma-ketlikdan qochish Men bayt va a F 0x40 dan 0x5F gacha bo'lgan bayt, "turi" toifasiga kiritilgan Fe"ketma-ketligi va tegishli narsalarga topshirilgan C1 boshqaruv kodi standart.[20]:13.2.1 Shunga mos ravishda ANSI X3.64 / ECMA-48 dan C1 boshqaruv kodlariga mos keladigan barcha qochish ketma-ketliklari ushbu formatga amal qiladi.[5]:5.3.a
  • Yo'q bilan ketma-ketlikdan qochish Men bayt va a F 0x60 dan 0x7E gacha bo'lgan bayt, "turi" toifasiga kiritilgan Fs"ketma-ketliklar va boshqarish funktsiyalari uchun alohida ro'yxatdan o'tgan ISO-IR ro'yxatga olish kitobi va shuning uchun hatto boshqa C1 boshqaruv kodlari to'plami ishlatilgan sharoitlarda ham mavjud. Xususan, ular tomonidan tasdiqlangan yagona boshqaruv funktsiyalariga mos keladi ISO / IEC JTC 1 / SC 2 va ISO yoki ISO tomonidan tan olingan tashkilot tomonidan standartlashtirilgan.[20]:6.5.1 Ulardan ba'zilari ECMA-35 (ISO 2022 / ANSI X3.41), boshqalari ECMA-48 (ISO 6429 / ANSI X3.64) da ko'rsatilgan.[20]:6.5.4 ECMA-48 bularni "mustaqil boshqarish funktsiyalari" deb ataydi.[5]:5.5
  • Yo'q bilan ketma-ketlikdan qochish Men bayt va a F 0x30 dan 0x3F gacha bo'lgan bayt, "turi" toifasiga kiritilgan Fp"ketma-ketlik va xususiy foydalanishda boshqarish funktsiyalari uchun ajratilgan.[20]:6.5.3
  • Bir yoki bir nechtasi bilan ketma-ketliklardan qochish Men baytlar "turi" toifasiga kiritilgan nF"ketma-ketliklar. Ular birinchisining eng past to'rt biti bilan pastki toifalarga bo'linadi Men bayt, masalan. "turi 2F"birinchi navbatda ketma-ketliklar uchun Men bayt 0x22va F bayt shaxsiy foydalanish oralig'ida 0x30 va 0x3F (shu jumladan "turini o'z ichiga oladi) 2Fp") yoki yo'q (masalan" turi 2Ft").[20]:13.2.1 Ular asosan ANSI / ISO kodlarini almashtirish mexanizmlari uchun ishlatiladi, masalan ISO-2022-JP, turidan tashqari 3F ketma-ketliklar (birinchi oraliq bayt bo'lganlar) 0x23), ular individual boshqaruv funktsiyalari uchun ishlatiladi. Turi 3Ft ketma-ketlik qo'shimcha ISO-IR tomonidan ro'yxatdan o'tgan individual boshqaruv funktsiyalari uchun ajratilgan,[20]:6.5.2 while turi 3Fp shaxsiy foydalanish funktsiyalari uchun ketma-ketliklar mavjud.[20]:6.5.3

Standart 8 bitli muhitda turga mos keladigan boshqarish funktsiyalarini aytadi Fe qochish ketma-ketliklari (to'plamidan bo'lganlar) C1 boshqaruv kodlari ) 0x80-0x9F oralig'ida bitta bayt sifatida ifodalanishi mumkin.[5]:5.3.b Biroq, zamonaviy qurilmalarda ushbu kodlar ko'pincha boshqa maqsadlarda, masalan, qismlarida ishlatiladi UTF-8 yoki uchun CP-1252 belgilar, shuning uchun odatda faqat 2 baytli ketma-ketlik ishlatiladi. (UTF-8 va boshqa Unicode kodlashlarida C1 ularning Unicode kod nuqtalari sifatida kodlanishi mumkin [masalan. xC2 x8E uchun U + 008E], ammo shu bilan bo'sh joy saqlanmaydi.)

ESC dan tashqari boshqa C0 kodlari - odatda BEL, BS, CR, LF, FF, TAB, VT, SO va SI - chiqish paytida ba'zi bir nazorat ketma-ketliklariga o'xshash yoki bir xil effektlarni keltirib chiqaradi.

Ba'zi turlari Fe (C1 set elementi) ANSI qochish ketma-ketliklari (to'liq ro'yxat emas)
TartibC1QisqaIsmEffekt
ESC N0x8ESS2Yagona Shift IkkinchiUlardan bittasini bitta belgini tanlang muqobil belgilar to'plamlari. SS2 G2 belgilar to'plamini va SS3 G3 belgilar to'plamini tanlaydi.[21] 7-bitli muhitda bundan keyin bir yoki bir nechta GL baytlari (0x20-0x7F) ushbu to'plamdagi belgini belgilaydi.[20]:9.4 8-bitli muhitda ular GR baytlari (0xA0-0xFF) bo'lishi mumkin.[20]:8.4
ESC O0x8FSS3Yagona Shift Uch
ESC P0x90DCSQurilmani boshqarish satriST tomonidan bekor qilingan. Xterm ushbu ketma-ketlikdan foydalanishda foydalanuvchi tomonidan belgilangan kalitlarni aniqlashni va Termcap / Terminfo ma'lumotlarini so'rashni yoki sozlashni o'z ichiga oladi.[21]
ESC [0x9BCSIBoshqaruv ketma-ketligi bo'yicha tanishtiruvchiKo'pgina foydali ketma-ketliklar, qarang keyingi qism.
ESC 0x9CSTString TerminatorBoshqa boshqaruv elementlaridagi satrlarni tugatadi.[5]:8.3.143
ESC ]0x9DOSCOperatsion tizim buyrug'iST tomonidan tugatilgan operatsion tizim uchun boshqaruv satrini ishga tushiradi.[5]:8.3.89 Xtermda ular ham tugatilishi mumkin BEL.[21] Masalan, xterm oyna nomini belgilashga imkon beradi x1b] 0; bu x07 oynaning sarlavhasi.

Xterm bo'lmagan kengaytma - bu VTE va iTerm2 tomonidan foydalaniladigan OSC 8, 2017 yildagi ko'prik.[22][23][muhokama qilish]

ESC X0x98SOSStringning boshlanishiST tomonidan tugatilgan matn satrining argumentini oladi. Ushbu satrlarni boshqarish ketma-ketliklaridan foydalanish dastur tomonidan belgilanadi[5]:8.3.2,8.3.128 yoki maxfiylik intizomi.[5]:8.3.94 Ushbu funktsiyalar kamdan-kam hollarda amalga oshiriladi va argumentlar xterm tomonidan e'tiborga olinmaydi.[21]
ESC ^0x9EBosh vazirMaxfiylik to'g'risidagi xabar
ESC _0x9FAPCDastur dasturi buyrug'i
Ba'zi turlari Fs (mustaqil funktsiya) terminallar tomonidan tan olingan ANSI qochish ketma-ketliklari
TartibQisqaIsmEffekt
ESC vRISDastlabki holatga qaytarishTerminalni asl holatiga to'liq tiklashni tetiklaydi.[21] Bunga quyidagilar kirishi mumkin (agar mavjud bo'lsa): grafik ko'rinishni tiklash, jadvallarni to'xtatish, standart shriftga o'rnatish va boshqalar.[24]
Ba'zi turlari 0Ft (e'lon) ANSI qochish ketma-ketliklari terminallar tomonidan tan olingan (to'liq ro'yxat emas)
TartibQisqaIsmEffekt
ESC SP FACS6
S7C1T
Kod tuzilishini e'lon qiling 6
Xostga 7-bitli C1 boshqaruv belgisini yuboring
ECMA-35 (ANSI X3.41 / ISO 2022) da belgilangan.[20]:15.2 Funktsiya tugmachalarini C1 kodlari o'rniga ESC + xatini yuboradi.[21]
ESC SP GACS7
S8C1T
Kod tuzilishini e'lon qiling 7
Xostga 8-bitli C1 boshqaruv belgisini yuboring
ECMA-35da belgilangan.[20]:15.2 Funktsional tugmachalarni C1 kodlarini yuborishini ta'minlaydi.[21]
Ba'zi turlari Fp yoki 3Fp (xususiy foydalanish) tomonidan tan olingan qochish ketma-ketliklari VT100, uning vorislari va / yoki kabi terminal emulyatorlari xterm
TartibQisqaIsmEffekt
ESC 7DECSCDEC Save KursorShift holatini va formatlash atributlarini kodlash, kursor holatini saqlaydi.[25][21]
ESC 8DECRCKursni tiklash DECKursor holatini tiklaydi, siljish holatini kodlaydi va agar mavjud bo'lsa oldingi DECSC formatlash xususiyatlarini kodlaydi, aks holda ularning hammasini asl holatiga qaytaradi.[26][21]
ESC №3DEKDLIkki balandlikdagi xat, yuqori yarimBelgilangan satrni ikki baravar baland qilib ishlatadi. Ushbu kod yuqori yarmiga mo'ljallangan.[27]
ESC №4DEKDLIkki balandlikdagi xat, pastki yarmiBelgilangan satrni ikki baravar baland qilib ishlatadi. Ushbu kod pastki yarmi uchun mo'ljallangan.[28]
ESC №5DECSWLDEC bitta kenglikdagi chiziqAmaldagi satr uchun joriy satrda bitta kenglikdagi belgilar ishlatiladi.[29][21]
ESC №6DECDWLDEC ikki kenglikdagi chiziqIkkinchi kenglikdagi belgilarni ishlatib, satrning ikkinchi yarmidagi har qanday belgilarni tashlaydi.[30][21]

Klaviaturada maxsus tugmachalarni bosish, shuningdek ko'plab xterm CSI, DCS yoki OSC ketma-ketliklarini chiqarish ko'pincha foydalanuvchidan yozganga o'xshab terminaldan kompyuterga yuborilgan CSI, DCS yoki OSC ketma-ketligini hosil qiladi.

CSI ketma-ketliklari

CSI yoki "Control Sequence Introducer" buyruqlari uchun ESC [ 0x30-0x3F (ASCII) oralig'idagi "parametr baytlari" ning istalgan raqami (shu jumladan, yo'q) 0–9:;<=>?), keyin 0x20-0x2F oralig'idagi istalgan "oraliq bayt" bo'yicha (ASCII maydoni va !"#$%&'()*+,-./), so'ngra 0x40-0x7E (ASCII) oralig'idagi bitta "so'nggi bayt" bilan @ A – Z [] ^ _ `a – z {|} ~).[5]:5.4

Barcha umumiy ketma-ketliklar parametrlardan faqat vergul bilan ajratilgan qatorlar qatori sifatida foydalanadi 1;2;3. Yo'qolgan raqamlar sifatida ko'rib chiqiladi 0 (1;;3 o'rta raqam kabi harakat qiladi 0va umuman parametrlar yo'q ESC [m kabi harakat qiladi 0 kodni qayta tiklash). Ba'zi ketma-ketliklar (masalan, CUU) davolanadi 0 kabi 1 etishmayotgan parametrlarni foydali qilish uchun.[5]:F.4.2

Kelishuvlarning bir qismi "xususiy" deb e'lon qilindi, shunda terminal ishlab chiqaruvchilari standartga zid kelmasdan o'zlarining ketma-ketligini kiritishlari mumkin edi. Parametr baytlarini o'z ichiga olgan ketma-ketliklar <=>? yoki oxirgi baytlar 0x70-0x7E (p – z {|} ~) xususiydir.

CSI ketma-ketligi 0x20-0x7E oralig'idan tashqarida har qanday belgini o'z ichiga olgan holda terminalning harakati aniqlanmagan. Ushbu noqonuniy belgilar C0 boshqaruv belgilaridir (0-0x1F oralig'i), DEL (0x7F) yoki yuqori bitli baytlar. Mumkin bo'lgan javoblar baytni e'tiborsiz qoldirish, uni darhol qayta ishlash va bundan tashqari CSI ketma-ketligini davom ettirish, darhol bekor qilish yoki qolgan qismiga e'tibor bermaslik.[iqtibos kerak ]

Terminal chiqishi ketma-ketliklari

Ba'zi ANSI boshqaruv ketma-ketliklari (to'liq ro'yxat emas)
KodQisqaIsmEffekt
CSI n ACUUKursor yuqorigaKursorni harakatga keltiradi n (standart) 1) berilgan yo'nalishdagi hujayralar. Agar kursor allaqachon ekranning chetida bo'lsa, bu hech qanday ta'sir qilmaydi.
CSI n BCUDKursor pastga
CSI n CCUFOldinga kursor
CSI n D.KubKursor orqaga
CSI n ECNLKeyingi qatorga kursorKursorni satr boshiga o'tkazadi n (standart) 1) chiziqlar pastga. (emas ANSI.SYS )
CSI n FCPLOldingi qatorKursorni satr boshiga o'tkazadi n (standart) 1) chiziqlar. (emas ANSI.SYS )
CSI n GCHAKursor Gorizontal MutlaqKursorni ustunga o'tkazadi n (standart) 1). (emas ANSI.SYS )
CSIn ; m HKubokKursorning holatiKursorni qatorga siljitadi n, ustun m. Qiymatlar 1 ga asoslangan va sukut bo'yicha 1 (chap tomondagi yuqori burchak) chiqarib tashlansa. Kabi ketma-ketlik CSI; 5H sinonimidir CSI 1; 5H shu qatorda; shu bilan birga CSI 17; H bilan bir xil CSI 17H va CSI 17; 1H
CSI n JEDDispleyda o'chirishEkranning bir qismini tozalaydi. Agar n bu 0 (yoki etishmayotgan), kursordan ekranning oxirigacha. Agar n bu 1, kursordan ekranning boshigacha tozalang. Agar n bu 2, butun ekranni tozalang (va kursorni DOS-ning yuqori chap tomoniga o'tkazing ANSI.SYS ). Agar n bu 3, butun ekranni tozalang va orqaga qaytarish buferida saqlangan barcha qatorlarni o'chirib tashlang (bu xususiyat qo'shilgan xterm va boshqa terminal dasturlari tomonidan qo'llab-quvvatlanadi).
CSI n KELQatorda o'chirishChiziqning bir qismini o'chirib tashlaydi. Agar n bu 0 (yoki etishmayotgan), kursordan satr oxirigacha aniq. Agar n bu 1, kursordan satr boshigacha aniq. Agar n bu 2, butun qatorni tozalang. Kursorning pozitsiyasi o'zgarmaydi.
CSI n SSUYuqoriga o'tingButun sahifani yuqoriga siljiting n (standart) 1) chiziqlar. Pastki qismida yangi qatorlar qo'shiladi. (emas ANSI.SYS )
CSI n TSDPastga aylantirishButun sahifani pastga aylantiring n (standart) 1) chiziqlar. Yuqorida yangi qatorlar qo'shiladi. (emas ANSI.SYS )
CSI n ; m fHVPLandshaft vertikal holatCUP bilan bir xil, lekin format effektori funktsiyasi sifatida hisoblanadi (masalan CR yoki LF ) muharriri funktsiyasidan ko'ra (CUD yoki CNL kabi). Bu muayyan terminal rejimlarida turli xil ishlov berishga olib kelishi mumkin.[5]:A ilova
CSI n mSGRGraphic Rendition-ni tanlangQuyidagi belgilar ko'rinishini o'rnatadi, qarang SGR parametrlari quyida.
CSI 5iAUX port yoqilganOdatda mahalliy ketma-ket printer uchun aux ketma-ket portini yoqing
CSI 4iAUX porti o'chirilganOdatda mahalliy ketma-ket printer uchun aux seriyali portni o'chirib qo'ying

CSI 6nDSRQurilmaning holati to'g'risida hisobotIlovaga kursor holati (CPR) haqida xabar beradi (xuddi klaviaturada yozilgandek) ESC [n; mR, qayerda n qator va m bu ustun.)
Ba'zi mashhur shaxsiy ketma-ketliklar
KodEffekt
CSI sSCP / SCOSC: Joriy kursor o'rnini saqlash. ShHT konsol rejimida kursor holatini / holatini saqlaydi.[31] Vertikal bo'lingan ekran rejimida, o'rniga (sifatida CSI n ; n s) yoki chap va o'ng chekkalarni tiklash.[32]
CSI uRCP / SCORC: Saqlangan kursor o'rnini tiklash. ShHT konsol rejimida kursor holatini / holatini tiklaydi.[33]
CSI? 25 soatDECTCEM kursorni VT320.
CSI? 25 lDECTCEM Kursorni yashiradi.
CSI? 1049 soatMuqobil ekran buferini yoqing
CSI? 1049 lMuqobil ekran buferini o'chirib qo'ying
CSI? 2004 yQavsli joylashtirish rejimini yoqing. Terminalga yopishtirilgan matn bilan o'ralgan bo'ladi ESC [200 ~ va ESC [201 ~va undagi belgilar buyruqlar sifatida ko'rib chiqilmasligi kerak (masalan, Vimda).[34] Unix terminal emulyatorlaridan.
CSI? 2004 yilQavsli joylashtirish rejimini o'chirib qo'ying.

SGR parametrlari

SGR (Select Graphic Rendition) displey atributlarini o'rnatadi. Bir nechta atributlarni bir xil ketma-ketlikda, vergul bilan ajratish mumkin.[35] Har bir displey atributi SGR ning keyingi paydo bo'lishi uni qayta tiklamaguncha amal qiladi.[5] Agar kodlar berilmagan bo'lsa, CSI m kabi muomala qilinadi CSI 0 m (asl holatini tiklash / normal).

ECMA-48 SGR-da "Select Graphic Rendition" deb nomlangan.[5]:8.3.117 Linux qo'llanmasidagi sahifalarda "Set Graphics Rendition" atamasi ishlatiladi.[35]

KodEffektEslatma
0Qayta tiklash / OddiyBarcha xususiyatlar o'chirilgan
1Jasoratli yoki kuchaygan intensivlikZaif holatda bo'lgani kabi, rang o'zgarishi ham kompyuter (SCO / CGA ) kashfiyot.[36][yaxshiroq manba kerak ]
2Zaif yoki pasaygan intensivlikaka Dim (to'yingan rang bilan). Chiroq sifatida amalga oshirilishi mumkin shrift og'irligi qalin kabi.[37]
3KursivKeng qo'llab-quvvatlanmaydi. Ba'zan teskari yoki miltillovchi sifatida muomala qilinadi.[36]
4Chizib qo'yingKitty, VTE, mintty va iTerm2 uchun uslub kengaytmalari mavjud.[38][39]
5Sekin miltillaydidaqiqada 150 dan kam
6Tez miltillaydiMS-DOS ANSI.SYS, daqiqada 150+; keng qo'llab-quvvatlanmaydi
7Orqaga videoold va orqa ranglarni almashtirish, aka teskari; nomuvofiq emulyatsiya[40]
8Yashirishaka Yashirish, keng qo'llab-quvvatlanmaydi.
9Chizilganaka Strike, belgilar tushunarli, ammo o'chirish uchun belgilab qo'yilgan.
10Asosiy (standart) shrift
11–19Muqobil shriftMuqobil shriftni tanlang n − 10
20FrakturKamdan kam qo'llab-quvvatlanadi
21Ikki marta tagiga chizib qo'ying yoki JasoratliECMA-48 bo'yicha ikki marta pastki chiziq.[5]:8.3.117 Qarang munozara
22Oddiy rang yoki zichlikJasur ham, zaif ham emas
23Kursiv emas, Fraktur ham emas
24Chiziq o'chirilganYagona yoki ikki marta chizilgan emas
25Ko'zni o'chiring
26Proportional oraliqITU T.61 va T.416, terminallarda ishlatilishi ma'lum emas
27Orqaga / teskari o'chirish
28Oshkor qilishyashirish
29Chizib tashlanmagan
30–37Old rangni o'rnatingQuyidagi rangli jadvalga qarang
38Old rangni o'rnatingKeyingi dalillar 5; n yoki 2; r; g; b, pastga qarang
39Standart oldingi rangamalga oshirish belgilangan (standart bo'yicha)
40–47Fon rangini o'rnatingQuyidagi rangli jadvalga qarang
48Fon rangini o'rnatingKeyingi dalillar 5; n yoki 2; r; g; b, pastga qarang
49Standart fon rangiamalga oshirish belgilangan (standart bo'yicha)
50Mutanosib oraliqni o'chirib qo'yingT.61 va T.416
51Hoshiyali"Sifatida amalga oshirildiemoji o'zgarishini tanlagich "yalpizda.[41]
52O'ralgan
53Belgilangan
54Ramkada yoki atrofda emas
55Ustiga chizilmagan
58Chiziqli rangni o'rnatingKitty, VTE, mintty va iTerm2. (standartda emas)[38][39]
Keyingi dalillar 5; n yoki 2; r; g; b, pastga qarang
59Birlamchi pastki chiziq chizilgan rangKitty, VTE, mintty va iTerm2. (standartda emas)[38][39]
60ideogramma osti yoki o'ng chiziqKamdan kam qo'llab-quvvatlanadi
61ideogram ikki marta chizilgan yoki
o'ng tomonda ikkita chiziq
62ideogramning pastki chizig'i yoki chap tomoni
63ideogram ikki tomonlama chiziq yoki
chap tomonda ikkita chiziq
64ideogram stressini belgilash
65ideogram atributlari o'chirilganbarchasining ta'sirini tiklash 6064
73yuqori belgiyalpiz (standartda emas)[41]
74pastki yozuv
90–97Old yorqin rangni o'rnatingaixterm (standartda emas)
100–107Yorqin fon rangini o'rnating

Ranglar

3-bit va 4-bit

Asl spetsifikatsiyada atigi 8 ta rang bor edi va ularga shunchaki nomlar berildi. SGR parametrlari 30-37 oldingi rangni tanlagan bo'lsa, 40-47 fonni tanlagan. Juda oz sonli terminallar "shaffof" (SGR kod 1) har xil shrift o'rniga yorqinroq rang sifatida amalga oshirildi va shu tariqa 8 ta qo'shimcha rang taqdim etildi. Odatda siz ularni fon ranglari sifatida ololmaysiz, ammo ba'zida teskari video (SGR kod 7) bunga imkon beradi. Misollar: oq fonda qora harflarni olish ESC [30; 47m, qizil rangdan foydalanish uchun ESC [31m, qizil rangdan foydalanish uchun ESC [1; 31m. Ranglarni asl holatiga qaytarish uchun foydalaning ESC [39; 49m (ba'zi terminallarda qo'llab-quvvatlanmaydi), yoki barcha xususiyatlarni qayta tiklang ESC [0m. Keyinchalik terminallar "yorqin" ranglarni 90-97 va 100-107 bilan to'g'ridan-to'g'ri belgilash imkoniyatini qo'shdilar.

Uskuna 8-bitdan foydalanishni boshlaganda analog-raqamli konvertorlar (DAC) bir nechta dasturiy ta'minot ushbu nomlarga 24-bitli rangli raqamlarni berdi. Quyidagi jadvalda ba'zi bir keng tarqalgan apparat va dasturiy ta'minot uchun DAC-ga yuborilgan qiymatlar ko'rsatilgan.[iqtibos kerak ]

IsmFG kodiBG kodiVGA[nb 2]Windows konsol[nb 3]Windows PowerShell[nb 4]Visual Studio kodi

Tuzatish konsollari

(Standart qorong'i + mavzu)

Windows 10 konsol[nb 5]
PowerShell 6
Terminal.appPuTTYmIRCxtermUbuntu[nb 6]
Qora30400,0,012,12,120,0,01,1,1
Qizil3141170,0,0128,0,0205, 49, 49197,15,31194,54,33187,0,0127,0,0205,0,0222,56,43
Yashil32420,170,00,128,013, 188, 12119,161,1437,188,360,187,00,147,00,205,057,181,74
Sariq3343170,85,0[nb 7]128,128,0238,237,240229, 229, 16193,156,0173,173,39187,187,0252,127,0205,205,0255,199,6
Moviy34440,0,1700,0,12836, 114, 2000,55,21873,46,2250,0,1870,0,1270,0,238[42]0,111,184
Magenta3545170,0,170128,0,1281,36,86188, 63, 188136,23,152211,56,211187,0,187156,0,156205,0,205118,38,113
Moviy36460,170,1700,128,12817, 168, 20558,150,22151,187,2000,187,1870,147,1470,205,20544,181,233
Oq3747170,170,170192,192,192229, 229, 229204,204,204203,204,205187,187,187210,210,210229,229,229204,204,204
Yorqin qora (kulrang)9010085,85,85128,128,128102, 102, 102118,118,118129,131,13185,85,85127,127,127127,127,127128,128,128
Yorqin qizil91101255,85,85255,0,0241, 76, 76231,72,86252,57,31255,85,85255,0,0255,0,0255,0,0
Yorqin yashil9210285,255,850,255,035, 209, 13922,198,1249,231,3485,255,850,252,00,255,00,255,0
Yorqin sariq93103255,255,85255,255,0245, 245, 67249,241,165234,236,35255,255,85255,255,0255,255,0255,255,0
Yorqin ko'k9410485,85,2550,0,25559, 142, 23459,120,25588,51,25585,85,2550,0,25292,92,255[43]0,0,255
Yorqin magenta95105255,85,255255,0,255214, 112, 214180,0,158249,53,248255,85,255255,0,255255,0,255255,0,255
Yorqin moviy9610685,255,2550,255,25541, 184, 21997,214,21420,240,24085,255,2550,255,2550,255,2550,255,255
Yorqin oq97107255,255,255255,255,255229, 229, 229242,242,242233,235,235255,255,255255,255,255255,255,255255,255,255

8-bit

Sifatida 256 rangli qidirish jadvallari grafik kartalarda odatiy holga aylandi, oldindan belgilangan 256 rang to'plamini tanlash uchun qochish ketma-ketliklari qo'shildi:[iqtibos kerak ]

ESC [38; 5; ⟨n⟩ m oldingi ranglarni tanlangESC [48; 5; ⟨n⟩ m fon rangini tanlang 0-7: standart ranglar (ESC [30-37 m) kabi 8- 15: yuqori intensivlik ranglari (kabi ESC da [90-97 m) 16-231: 6 × 6 × 6 kub (216 rang): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b-5) 232-255: kul rang 24 qadamda oqdan oq ranggacha

The ITU T.416 Axborot texnologiyalari - Ochiq hujjat arxitekturasi va almashinish formati: Belgilar tarkibidagi arxitektura[44] o'rniga ':' ajratuvchi belgilar sifatida foydalanadi:

ESC [38: 5: ⟨n⟩ m Old rangni tanlang ESC [48: 5: ⟨n⟩ m Fon rangini tanlang
256 rangli rejim - old fon: ESC [38; 5; #m fon: ESC [48; 5; #m
Standart ranglarYuqori zichlikdagi ranglar
 0  1  2  3  4  5  6  7  8  9 101112131415
216 rang
161718192021222324252627282930313233343536373839404142434445464748495051
525354555657585960616263646566676869707172737475767778798081828384858687
888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
Kulrang ranglar
232233234235236237238239240241242243244245246247248249250251252253254255

24-bit

16 dan 24 bitgacha bo'lgan "haqiqiy rang" grafik kartalari keng tarqalganligi sababli, Xterm,[21] KDE Konsole,[45] iTerm, shuningdek libvte asosidagi barcha terminallar[46] (shu jumladan GNOME terminali ) 24-bitli old va fon ranglarini sozlashni qo'llab-quvvatlash.[yaxshiroq manba kerak ][47]

ESC [38; 2; ⟨r⟩; ⟨g⟩; ⟨b⟩ m RGB old rangini tanlangESC [48; 2; ⟨r⟩; ⟨g⟩; ⟨b⟩ m RGB fon rangini tanlang

The ITU T.416 Axborot texnologiyalari - Ochiq hujjat arxitekturasi (ODA) va almashinish formati: Belgilar tarkibi arxitekturasi[44] ISO / IEC Xalqaro standarti 8613-6 sifatida qabul qilingan alternativa kamroq qo'llab-quvvatlanadigan ko'rinishga ega.[shubhali ] '2' dan keyingi parametrlar, ya'ni hatto r, g, b ixtiyoriydir. Shunisi e'tiborga loyiqki, bu nuqta-vergul bilan nuqta-nuqta o'rniga qo'yilgan yuqoridagi ketma-ketlik emas, balki etakchi "ranglar maydoni identifikatori" mavjud (bu haqiqat ko'plab terminal emulyatorlari tomonidan o'tkazib yuborilgan edi, bu kamchilik KDE Konsole tomonidan keltirilganga o'xshaydi).[21] Ranglar oralig'i identifikatorining ta'rifi ushbu hujjatga kiritilmagan, shuning uchun u belgilanmagan sukut bo'yicha bo'sh bo'lishi mumkin. Shuningdek, Qizil-Yashil-Moviy formatni belgilash uchun '2' qiymati (va 0-255 indekslangan rang uchun yuqoridagi '5') belgilangan dastur uchun '0' va shaffof uchun '1' alternativalari mavjud - na boshqa parametrlarga ega bo'lgan narsalar to'g'risida; '3' ranglarni Cyan-Magenta-Yellow sxemasi yordamida, va '4' Cyan-Magenta-Yellow-Black uchun, ikkinchisi Qora komponent uchun "ishlatilmagan" deb belgilangan pozitsiyadan foydalangan holda belgilaydi:[iqtibos kerak ]

ESC [38: 2: ⟨Color-Space-ID⟩: ⟨r⟩: ⟨g⟩: ⟨b⟩: ⟨ishlatilmagan⟩:⟩CS tolerantligi ⟩: ⟨Color-Space bag'rikenglik bilan bog'liq: "CIELUV" uchun 0; "CIELAB" 1 uchun 1; m RGB old fon rangini tanlang [48: 2: olColor-Space-ID⟩: ⟨r⟩: ⟨g⟩: ⟨b⟩: ⟨unused⟩: ⟨CS tolerantlik⟩: ⟨Color-Space bag'rikenglik bilan bog'liq: 0 uchun " CIELUV "; "CIELAB" uchun; m RGB fon rangini tanlang

Misollar

CSI 2 J - Bu ekranni tozalaydi va ba'zi qurilmalarda kursorni y, x holatiga 1,1 (yuqori chap burchak) holatiga o'tkazadi.

CSI 32 m - Bu matnni yashil rangga aylantiradi. Yashil to'q, xira yashil rangga ega bo'lishi mumkin, shuning uchun ketma-ketlik bilan Bold-ni yoqishingiz mumkin CSI 1 m uni porloq yashil rangga aylantirishi yoki birlashtirilishi mumkin CSI 32; 1 m. Belgilarni Yorqin qilish uchun ba'zi dasturlar qalin holatdan foydalanadi.

CSI 0; 6 8; "DIR"; 13 p - Bu F10 tugmachasini klaviatura buferiga "DIR" va ENTER qatorlarini yuborish uchun qayta tayinlaydi, ular DOS buyruq satrida joriy katalog tarkibini aks ettirishi mumkin edi. (Faqat MS-DOS ANSI.SYS uchun) Bu ba'zan ishlatilgan ANSI bombalari. Bu satr qiymatiga ega parametrni kiritish uchun nostandart kengaytmani ishlatib, shaxsiy foydalanish kodi (p harfi bilan ko'rsatilgan). Standart harfidan so'ng ketma-ketlikni D harfi bilan tugashini ko'rib chiqamiz.

CSI s - Bu kursor o'rnini tejaydi. Ketma-ketlikdan foydalanish CSI u uni holatiga qaytaradi. Joriy kursorning holati 7 (y) va 10 (x) ga ayting. Ketma-ketlik CSI s bu ikkita raqamni saqlaydi. Endi ketma-ketlik yordamida 20 (y) va 3 (x) kabi boshqa kursor holatiga o'tishingiz mumkin CSI 20; 3 H yoki CSI 20; 3 f. Endi siz CSI u ketma-ketligidan foydalansangiz kursor pozitsiyasi 7 (y) va 10 (x) ga qaytadi. Ba'zi terminallar DEC ketma-ketligini talab qiladi ESC 7 / ESC 8 buning o'rniga qaysi biri kengroq qo'llab-quvvatlansa.

Shell skriptida foydalanish misoli

ANSI qochish kodlari ko'pincha ishlatiladi UNIX va UNIXga o'xshash terminallar ta'minlash uchun sintaksisni ajratib ko'rsatish. Masalan, mos keladigan terminallarda quyidagilar ro'yxat rang kodlari fayli va katalog nomlarini turlari bo'yicha buyruq bering.

ls - rang

Foydalanuvchilar qochish kodlarini o'zlarining skriptlarida ularni bir qismi sifatida qo'shib ishlatishlari mumkin standart chiqish yoki standart xato. Masalan, quyidagi GNU sed buyrug'i. chiqishini bezatadi qilish "OGOHLANTIRISH" da boshlanadigan so'zlarni o'z ichiga olgan qatorlarni ko'rsatish orqali buyruq teskari video va quyuq qizil rangli fonda "ERR" dan boshlangan so'zlar (xat ishi e'tiborga olinmaydi). Kodlarning namoyishlari ta'kidlangan.[48]

2> & 1 | hosil qiling sed -e 's /.*  b OGOHLANTIRING. * / x1b [7m& x1b [0m/ i '-e' s /.*  bERR. * / x1b [93; 41m& x1b [0m/ men

Quyidagi Bosh funktsiya foydalanuvchi tugmachani bosguncha terminalni yonadi (navbat bilan teskari va normal video rejim kodlarini yuborish orqali).[49]

flasher () {while true; do printf  e [? 5h; uxlash 0,1; printf  e [? 5l; o'qish -s -n1 -t1 && tanaffus; bajarildi; }

Buning yordamida uzoq buyruq tugashi bilan dasturchini ogohlantirish uchun foydalanish mumkin, masalan qilish; chaqmoq .[50]

printf  033c

Bu buyruqqa o'xshash konsolni qayta tiklaydi qayta o'rnatish zamonaviy Linux tizimlarida; ammo u eski Linux tizimlarida va boshqa (Linuxdan tashqari) UNIX variantlarida ham ishlashi kerak.

Cda foydalanish misoli

Gnome Terminalda misol dasturining chiqishi
 1# shu jumladan <stdio.h> 2 3int asosiy(bekor) 4{ 5  int men, j, n; 6   7  uchun (men = 0; men < 11; men++) { 8    uchun (j = 0; j < 10; j++) { 9      n = 10*men + j;10      agar (n > 108) tanaffus;11      printf("\033[% dm% 3d\033[m ”, n, n);12    }13    printf(" n");14  }15  qaytish (0);16}

Terminal kiritish tartiblari

Oddiy asosiy alfasayısal klaviatura maydonidan tashqarida terminal tugmachasini bosishda kiritishni kiritishda xostga ANSI ketma-ketligi sifatida yuborilishi mumkin. Kursor tugmachalari kabi ekvivalent chiqish funktsiyasiga ega bo'lgan tugmalar uchun ular ko'pincha chiqish ketma-ketliklarini aks ettiradi. Biroq, aksariyat tugmachalarni bosish uchun ekvivalent chiqish ketma-ketligi mavjud emas.

Bir nechta kodlash sxemalari mavjud va afsuski aksariyat terminallar ketma-ketliklarni har xil sxemalardan aralashtirib yuboradi, shuning uchun kompyuter dasturlari har qanday sxemadan foydalangan holda kirish ketma-ketliklari bilan ishlashga qodir bo'lishi kerak. Muammoni murakkablashtirish uchun VT terminallarining o'zida ikkita kirish sxemasi mavjud, normal rejim va dastur rejimi dastur tomonidan o'zgartirilishi mumkin.

(qoralama qism)

 -> char   -> esc   -> esc   -> Alt-keypress yoki keycode ketma-ketligi  '['  -> Alt - [ '[' () (';' ) '~' -> klaviatura kodlari ketma-ketligi,  sukut bo'yicha 1

Agar tugatish belgisi '~' bo'lsa, birinchi raqam mavjud bo'lishi kerak va akeycode raqami, ikkinchi raqam ixtiyoriy modifikator qiymati. Agar tugaydigan belgi harf bo'lsa, harf kalit kodining qiymati va ixtiyoriy raqam modifikatorning qiymati.

Modifikator qiymati sukut bo'yicha 1 ga teng bo'ladi va 1ni olib tashlaganidan so'ng bosilgan modifikator tugmachalarining bitmapasi bo'ladi: Meta-Ctrl-Alt-Shift. Masalan, [4; 2 ~ isShift-End, [20 ~ 9 funktsiya tugmachasi, [5C - Ctrl-Right[shubhali ].

vt ketma-ketliklar:  [1 ~ - Home  [16 ~ -  [31 ~ - F17  [2 ~ - Insert  [17 ~ - F6  [32 ~ - F18  [3 ~ - o'chirish  [18 ~ - F7  [33 ~ - F19  [4 ~ - End  [19 ~ - F8  [34 ~ - F20  > [5 ~ - PgUp  [20 ~ - F9  [35 ~ -  [6 ~ - PgDn  [21 ~ - F10  [7 ~ - Home  [22 ~ -  [8 ~ - End  [23 ~ - F11  [9 ~ -  [24 ~ - F12  [10 ~ - F0  [25 ~ - F13 < esc> [11 ~ - F1  [26 ~ - F14  [12 ~ - F2  [27 ~ -  [13 ~ - F3  [28 ~ - F15  [ 14 ~ - F4  [29 ~ - F16  [15 ~ - F5  [30 ~ - xterm ketma-ketliklari:  [A - Up  [K -  [U - < esc> [B - Down  [L -  [V -  [C - O'ng  [M -  [W -  [D - Left  [N -  [X -  [E -  [O -  [Y -  [F - End  [1P - F1  [Z -  [G - Keypad 5  [1Q - F2  [H - Bosh sahifa  [1R - F3  [I -  [1S - F4  [J -  [T - 

[A dan [D ANSI chiqish ketma-ketliklari bilan bir xil. Hech qanday o'zgartirish tugmachasi bosilmasa, odatda o'rnatiladi, lekin aksariyat dasturlar har doim F1-F4 uchun ni chiqaradi. (Qoralama qism)

Xterm has a comprehensive documentation page on the various function-key and mouse input sequence schemes from DEC's VT terminals and various other terminals it emulates.[21] Thomas Dickey has added a lot of support to it over time;[51] he also maintains a list of default keys used by other terminal emulators for comparison.[52]

Invalid and ambiguous sequences in use

  • The Linux console uses OSC P n rr gg bb to change the palette, which, if hard-coded into an application, may hang other terminals.[53] However, appending ST will be ignored by Linux and form a proper, ignorable sequence for other terminals.[iqtibos kerak ]
  • On the Linux console, certain function keys generate sequences of the form CSI [ char. The CSI sequence should terminate on the [.
  • Old versions of Terminator yaratish SS3 1; modifikatorlar char when F1–F4 are pressed with modifiers. The faulty behavior was copied from GNOME terminali.[iqtibos kerak ]
  • xterm replies CSI qator ; ustun R if asked for cursor position and CSI 1 ; modifikatorlar R if the F3 key is pressed with modifiers, which collide in the case of qator == 1. This can be avoided by using the ? private modifier as CSI ? 6 n, which will be reflected in the response as CSI ? qator ; ustun R.
  • many terminals prepend ESC to any character that is typed with the alt key down. This creates ambiguity for uppercase letters and symbols @[\]^_, which would form C1 codes.[tushuntirish kerak ]
  • Konsole hosil qiladi SS3 modifikatorlar char when F1–F4 are pressed with modifiers.[tushuntirish kerak ]

Shuningdek qarang

Izohlar

  1. ^ The screen display could be replaced by drawing the entire new screen's contents at the bottom, scrolling the previous screen up sufficiently to erase all the old text. The user would see the scrolling, and the hardware kursor would be left at the very bottom. Ba'zilar erta ommaviy fayllar achieved rudimentary "full screen" displays in this way.
  2. ^ Typical colors that are used when booting PCs and leaving them in text mode, which used a 16-entry color table. The colors are different in the EGA/VGA graphic modes.
  3. ^ As of Windows XP
  4. ^ Until PowerShell 6
  5. ^ Campbell theme.
    Used as of Windows 10 1709
  6. ^ For virtual terminals, from /etc/vtrgb.
  7. ^ On terminals based on CGA compatible hardware, such as ANSI.SYS running on DOS, this normal intensity foreground color is rendered as Orange. CGA RGBI monitors contained hardware to modify the dark yellow color to an orange/brown color by reducing the green component. Buni qarang ansi art Arxivlandi 2011 yil 25 iyul Orqaga qaytish mashinasi misol sifatida.

Adabiyotlar

  1. ^ a b "Standard ECMA-48: Control Functions for Character-Imaging I/O Devices" (PDF) (Ikkinchi nashr). Ecma International. August 1979. Brief History.
  2. ^ Uilyams, Pol (2006). "Digital's Video Terminals". VT100.net. Olingan 17 avgust 2011.
  3. ^ Heathkit Company (1979). "Heathkit Catalog 1979". Heathkit Company. Arxivlandi asl nusxasi 2012 yil 13 yanvarda. Olingan 4 noyabr 2011.
  4. ^ "Chiqarilgan FIPS raqam bo'yicha ko'rsatilgan" (PDF). Milliy standartlar va texnologiyalar instituti. 2016 yil 15-dekabr.
  5. ^ a b v d e f g h men j k l m n o p "Standard ECMA-48: Control Functions for Coded Character Sets" (PDF) (Beshinchi nashr). Ecma International. 1991 yil iyun.
  6. ^ Mefford, Michael (7 February 1989). "ANSI.com: Download It Here". Kompyuter jurnali. Olingan 10 avgust 2011.
  7. ^ Kegel, Dan; Auer, Eric (28 February 1999). "Nansi and NNansi – ANSI Drivers for MS-DOS". Dan Kegel's Web Hostel. Olingan 10 avgust 2011.
  8. ^ "PTS-DOS 2000 Pro foydalanuvchi qo'llanmasi" (PDF). Buggingen, Germaniya: Paragon Technology GmbH. 1999. Arxivlandi (PDF) asl nusxasidan 2018 yil 12 mayda. Olingan 12 may 2018.
  9. ^ Günther, Jens; Ernst, Tobias (25 April 2004) [1996]. Ellsässer, Wolfgang (ed.). "Inoffizielle deutschsprachige PTS-DOS-FAQ (PTS/FAQD)" [Inofficial German PTS-DOS FAQ] (in German). Olingan 2 oktyabr 2018.
  10. ^ CCI Multiuser DOS 7.22 GOLD Online Documentation. Concurrent Controls, Inc. (SSP). 10 February 1997. HELP.HLP.
  11. ^ Hood, Jason (2005). "Process ANSI escape sequences for Windows console programs". Jason Hood's Home page. Olingan 9 may 2013.
  12. ^ "colorama 0.2.5". Python to'plami indeksi. Olingan 17 avgust 2013.
  13. ^ bitcrazed. "Console Virtual Terminal Sequences - Windows Console". docs.microsoft.com. Olingan 30 may 2018.
  14. ^ "Windows 10 Creators Update: What's new in Bash/WSL & Windows Console". Comment by ulrichb and reply by Rick Turner.
  15. ^ Grehan, Oisin (4 February 2016). "Windows 10 TH2 (v1511) Console Host Enhancements". Arxivlandi asl nusxasi 2016 yil 9 fevralda. Olingan 10 fevral 2016.
  16. ^ "PowerShell Help: About Special Characters".
  17. ^ "Printer and terminal escape codes". Concise Atari ST 68000 Programming Guide. Arxivlandi asl nusxasidan 2016 yil 20 sentyabrda. Olingan 22 iyun 2020.
  18. ^ "Amiga Printer Command Definitions". Commodore. Olingan 10 iyul 2013.
  19. ^ "Escape Sequence - OpenVMS Wiki".
  20. ^ a b v d e f g h men j k l m "Standard ECMA-35: Character Code Structure and Extension Techniques" (PDF) (Oltinchi nashr). Ecma International. 1994.
  21. ^ a b v d e f g h men j k l m n Moy, Edward; Gildea, Stephen; Dickey, Thomas (2019). "Xterm Control Sequences (ctlseqs)". Invisible Island.
  22. ^ "mintty/mintty: Control Sequences". GitHub.
  23. ^ Koblinger, Egmont. "Hyperlinks (a.k.a. HTML-like anchors) in terminal emulators". GitHub Gists.
  24. ^ ISO / TC 97 / SC 2 (1976 yil 30-dekabr). Reset to Initial State (RIS) (PDF). ITSCJ /IPSJ. ISO-IR -35.
  25. ^ Raqamli. "DECSC—Save Cursor". VT510 Video Terminal Programmer Information.
  26. ^ Raqamli. "DECSC—Save Cursor". VT510 Video Terminal Programmer Information.
  27. ^ ANSI Escape sequences - VT100 / VT52
  28. ^ ANSI Escape sequences - VT100 / VT52
  29. ^ Raqamli. "DECSWL—Single-Width, Single-Height Line". VT510 Video Terminal Programmer Information.
  30. ^ Raqamli. "DECDWL—Double-Width, Single-Height Line". VT510 Video Terminal Programmer Information.
  31. ^ "SCOSC—Save Current Cursor Position". VT510 Video Terminal Programmer Information. DEK.
  32. ^ "DECSLRM—Set Left and Right Margins". VT510 Video Terminal Programmer Information. DEK.
  33. ^ "SCORC—Restore Saved Cursor Position". VT510 Video Terminal Programmer Information. DEK.
  34. ^ Conrad Irwin (April 2013). "bracketed paste mode". cirw.in.
  35. ^ a b "console_codes(4) - Linux manual page". man7.org. Olingan 23 mart 2018.
  36. ^ a b "screen(HW)". SCO OpenServer Release 5.0.7 Manual. 2003 yil 11 fevral.
  37. ^ "Bug 791596 – Thoughts about faint (SGR 2)". bugzilla.gnome.org.
  38. ^ a b v "Curly and colored underlines (#6382) · Issues · George Nachman / iterm2". GitLab.
  39. ^ a b v "Extensions to the xterm protocol". kitty documentation. Olingan 1 iyul 2020.
  40. ^ "console-termio-realizer". jdebp.uk.
  41. ^ a b "mintty/mintty: Text attributes and rendering". GitHub.
  42. ^ Changed from 0,0,205 in July 2004 "Patch #192 – 2004/7/12 – XFree86 4.4.99.9".
  43. ^ Changed from 0,0,255 in July 2004 "Patch #192 – 2004/7/12 – XFree86 4.4.99.9".
  44. ^ a b "T.416 Information technology - Open Document Architecture (ODA) and interchange format: Character content architectures".
  45. ^ "color-spaces.pl (a copy of 256colors2.pl from xterm dated 1999-07-11)". KDE. 2006 yil 6-dekabr.[doimiy o'lik havola ]
  46. ^ "libvte's bug report and patches: Support for 16 million colors". GNOME Bugzilla. 2014 yil 4 aprel. Olingan 5 iyun 2016.
  47. ^ "README.moreColors". KDE. 2010 yil 22 aprel.[doimiy o'lik havola ]
  48. ^ "Chapter 9. System tips". debian.org.
  49. ^ "VT100.net: Digital VT100 User Guide". Olingan 19 yanvar 2015.
  50. ^ "bash – How to get a notification when my commands are done – Ask Different". Olingan 19 yanvar 2015.
  51. ^ Dikki, Tomas. "Xterm FAQ: Comparing versions, by counting controls". Invisible Island. Olingan 25 yanvar 2020.
  52. ^ Dickey, Thomas (2016). "Table of function-keys for XTerm and other Terminal Emulators". Invisible Island. Olingan 25 yanvar 2020.
  53. ^ "console_codes — Linux console escape and control sequences". Linux Programmer’s Manual.

Tashqi havolalar