کدهای فرار انسی

در رایانش، کدهای فرار انسی یا کد های گریز انسی (همچنین رشته‌ها یا توالی‌های فرار) () روشی مورد استفاده در (ارسال فرمان از طریق همان کابل صوتی یا تصویری) برای کنترل قالب‌بندی، رنگ‌آمیزی، ویرایش صفحه نمایش و دیگر ویژگی‌های خروجی روی ترمینال‌های متنی می‌باشد. برای کدگذاری این اطلاعات، توالی‌های خاصی از بایت‌ها (دقیقاً رشته‌های خاصی از کاراکتر) درون متن جاسازی می‌شوند، که ترمینال آنها را تفسیر می‌کند، البته نه به عنوان کدهای کاراکتری معمولی. انسی مخفف عبارت انگلیسی مؤسسه استانداردهای ملی آمریکایی می‌باشد.

کدهای انسی در دهه ۱۹۷۰ معرفی شدند و در اوائل دهه ۱۹۸۰ در بازار مینی‌کامپیوترها و سرورهای اصلی (سرور پردازنده مرکزی) رایج شدند. کدهای انسی توسط بازار سیستم تخته بولتن برای ارائه نمایشگرهای بهبودیافته در مقایسه با سیستم‌های اولیه که فاقد حرکت نشانه‌گر یا کرسر بودند مورد استفاده قرار گرفتند که به استفاده بسیار گسترده‌تر آنها منتهی شد.

اگرچه ترمینال‌های متنی سخت‌افزاری در قرن ۲۱ به صورت فزاینده‌ای کمیاب شده‌اند، اما همچنان ارتباط استاندارد انسی پابرجاست زیرا اکثریت شبیه‌سازان ترمینال (مانند ترمینال لینوکس) حداقل برخی از توالی‌های فرار انسی را در متن خروجی تفسیر می‌کنند؛ و تنها یک استثنای برجسته در بین ترمینال‌های متنی بود، آن هم  از اجزاء مایکروسافت ویندوز پیش از روزرسانی تی‌اچ۲ در ویندوز ۱۰.

از کاربردهای رایج امروزی انسی در ترمینال مجازی لینوکس (شل یونیکس) مانند بش است برای مثال در ابزارها و کتابخانه‌های کنترل سرورهای وب، ابزارهای مایگریت کردن دیتابیس بواسطه گیت یا به منظور نوشتن اسکریپت کنسول‌های آسان برای فریم‌ابزارهای آزمایش کد پی‌اچ‌پی یا جاوا مانند  یا  که ترمینال بش در محیط‌های خارج از لینوکس نیز از طریق سیگوین یا گیت‌بش یا ماشین مجازی لینوکس نیز در دسترس است و آی‌دی‌ای‌هایی همچون نت‌بینز شرایط استفاده از این ترمینال‌ها به صورت لوکال یا ریموت را فراهم می‌کنند.

جدول برخی از کاراکترهای کنترل کرسر و متن (این فهرست کامل نیست و CSI نماینده کاراکتر گریز است که در انسی کلا  است و میان‌بر آن در بش  ) :
 کد  نام  ویژگی  CSI n A    CUU – Cursor Up  کرسر را به تعداد ن با پیشفرض ۱ سلول در جهت تعیین شده منتقل می‌کند. اگر کرسر قبلاً در لبه نمایشگر بوده باشد تأثیری نخواهد داشت.  CSI n B    CUD – Cursor Down   CSI n C    CUF – Cursor Forward   CSI n D    CUB – Cursor Back   CSI n E    CNL – Cursor Next Line   کرسر را به ابتدای خط ن‌ام بعد (پایین‌تر) از این خط می‌برد. (در ANSI.SYS نیست)  CSI n F    CPL – Cursor Previous Line   برعکس قبلی (در ANSI.SYS نیست)  CSI n G    CHA – Cursor Horizontal Absolute   کرسر را به ستون ن (جایگشت شماره ن‌ام در کاراکترهای یک خط) داخل یک خط می‌برد. (در ANSI.SYS نیست)  CSI n ; m H    CUP – Cursor Position   کرسر را به ردیف ن و ستون میم می‌برد. مقادیر عدد طبیعی هستند (پایه ۱) با پیشفرض ۱ (گوشه سمت چپ بالا) اگر تعیین نشده باشند. حذف هر یک از پارامترها به معنی مقدار پیشفرض است و بدون سمی‌کالن به معنی فقط شماره ردیف است یعنی ن.  CSI n J    ED – Erase in Display   بخشی از صفحه نمایش را تمیز می‌کند. اگر ن صفر باشد یا کلا نباشد از کرسر تا پایان صفحه، اگر یک باشد تا آغاز صفحه اگر ۲ کل صفحه را پاک می‌کند (و در ANSI.SYS داس کرسر را به گوشه چپ بالا می‌فرستد) اگر ۳ باشد کل صفحه نمایش بعلاوه حذف تمام خطوط ذخیره شده در حافظه بافر اسکرول‌بار (این ویژگی برای xterm اضافه شد و توسط دیگر برنامه‌های ترمینال پشتیبانی می‌شود)  CSI n K    EL – Erase in Line   بخشی از داخل یک خط را پاک می‌کند. اگر ن صفر باشد یا نباشد، از کرسر تا پایان خط، اگر یک باشد تا آغاز خط، اگر ۲ باشد کل خط را پاک می‌کند و مکان کرسر تغییر نمی‌کند.  CSI n S    SU – Scroll Up   کل صفحه را به تعداد ن خط به بالا اسکرول می‌کند با پیشفرض یک. خطوط جدید به پایین اضافه می‌شوند. (در ANSI.SYS نیست)  CSI n T    SD – Scroll Down   برعکس قبلی و خطوط جدید به بالا اضافه می‌شوند. (در ANSI.SYS نیست)  CSI n ; m f    HVP – Horizontal and Vertical Position   دقیقاً همانند CUP است.  CSI n m    SGR – Select Graphic Rendition   پارامترهای اس‌جی‌آر را تنظیم می‌کند از جمله رنگ متن. بعد از گریز (CSI) می‌تواند صفر به معنی Reset یا معمولی یا پارامترهای دیگری باشد. بدون پارامتر معادل صفر است. رنگ‌های اولیه از ۳۰ یعنی رنگ سیاه برای متن تا ۳۷ برای ۸ رنگ مختلف. ۴۰ تا ۴۷ برای زمینه. ۱ برای متن درشت، ۴ برای زیرخط یا آندرلاین و ۷ برای تعویض رنگ زمینه و متن با یکدیگر. رنگ‌های بیشتری تا حد ۳۲ بیت و رنگ‌های حقیقی نیز در برخی افزونه‌های برخی ترمینال‌ها افزوده شدند اما برای ساخت و پرداخت امور گرافیکی ابزارهای دیگری وجود دارند.  CSI 5i    AUX Port On   درگاه آیوایکس (پورت کمکی یا آکسیلری در داس یا ترمینال) را فعال یا باز می‌کند که معمولاً برای پرینتر محلی سریال پورت است.  CSI 4i    AUX Port Off   برعکس قبلی  CSI 6n    DSR – Device Status Report   گزارش محل کرسر (CPR) به برنامه به صورت (همان‌طور که روی کیبورد نیز هست) ، که ن ردیف و میم ستون است.  CSI s    SCP – Save Cursor Position   مکان فعلی کرسر را ذخیره می‌کند.  CSI u    RCP – Restore Cursor Position   محل ذخیره‌شده قبلی کرسر را فراخوانی می‌کند.  CSI ?25l    DECTCEM   کرسر را مخفی می‌کند. نکته: حرف آخر بعد از ۲۵ حرف ال کوچک لاتین است.  CSI ?25h    DECTCEM   برعکس قبلی

مثالی از یک تابع بش برای فلاشر یک ثانیه‌ای که سیگنال معکوس و طبیعی کردن رنگ نمایشگر را می‌فرستد تا زمانی که یک کلید فشرده شود:
flasher () { while true; do printf "\e[?5h"; sleep 1; printf \\e[?5l; read -s -n1 -t1 && break; done; }
این تابع می‌تواند همراه یک سمی‌کالن پس از یک فرمان زمان‌بر دیگر بیاید تا برنامه‌نویس را نهایتاً با فلاش زدن از تکمیل شدن پروسه مطلع کند. استفاده از printf در اینجا معادل  است.

 جستارهای وابسته 
 نویسه کنترلی

 منابع 



رده:استانداردهای ایزو
رده:استانداردهای ای‌ان‌اس‌آی
رده:استانداردهای رایانه
رده:استانداردهای ئی‌سی‌ام‌ای