وایل (ویرایشگر نوشتار) کیست؟ توضیح بده.
وایل (vile) یک ویرایشگر نوشتار است که جنبه‌هایی از ویرایشگرهای Emacs و vi را آمیخته می‌کند. این ویرایشگرها به طور سنتی در دو جبهه مخالف جنگ ویرایشگرها قرار دارند، زیرا کاربران هر یک از آنها تمایل دارند احساسات شدیدی نسبت به ویرایشگری که از آن کاربری نمی‌کنند، داشته باشند. وایل تلاش می‌کند تا این مواضع را با هم آشتی دهد."vile" مخفف عبارت "VI Like Emacs" است. vile 9.6 در فصل ۱۸ کتاب O'Reilly با عنوان "یادگیری ویرایشگرهای vi و Vim" ارائه شده است. نسخه قدیمی‌تر (vile 8.0) در فصل ۱۲ کتاب O'Reilly با عنوان "یادگیری ویرایشگر vi" ارائه شده است. این برنامه همچنین برای سامانه‌ی پنجره X با نام xvile و برای مایکروسافت ویندوز با نام winvile شناخته می‌شود.vile در آغاز بدست پاول فاکس ایجاد و نگهداری شد. در سال ۱۹۹۶، نگهداری آن به توماس دیکی، که در سال‌های گذشته سهم عمده‌ای در توسعه کدبیس داشته است، واگذار شد.یادگیری استفاده از وایل.از لحاظ تاریخی، مستندات vile بر تفاوت‌های آن با vi تمرکز داشته است. این برخلاف دیگر کلون‌های رایج vi ( elvis ، nvi و vim ) است که پسوندهای مربوط به خود را با مستندات اصلی vi ترکیب کرده‌اند.مستندات vile سه بخش است:vile از ترکیبی از کد دست‌ساز و جداول پردازش‌شده بدست یک برنامه‌ی ویژه ساخته شده است. اطلاعات از پیش تعریف‌شده از جداول را می‌توان به روش‌های مختلفی رندر کرد، از جمله نمایش فرمان‌ها موجود، ارائه تکمیل نام و غیره. در سایر نسخه‌های "vi" ، جداول مشابه از کد دست‌ساز متمایز نیستند.در سایر نسخه‌های "vi" ، اطلاعات نمایش داده شده ایستا هستند و برای به‌روزرسانی نیاز به تعامل کاربر دارند. با این حال، در vile، این اطلاعات پویا هستند - این پنجره‌های ویژه با تغییراتی که در ویژگی‌هایی که ارائه می‌دهند ایجاد می‌شود، به‌روزرسانی می‌شوند، برای نمونه فهرست تمام بافرهای موجود در حافظه، تنظیمات حالت مربوط به بافری که فوکوس دارد و غیره.در حالی که بسیاری از ویژگی‌های vile اکنون در سایر ویرایشگرهای سازگار با vi یافت می‌شوند، برخی از توانمندترین آنها پیش از پذیرش گسترده در سایر ویرایشگرها پیاده‌سازی شده‌اند. برای نمونه، چندین پنجره از آغاز از ویژگی‌های نخستین vile (و xvi) بودند. همین امر در مورد خواندن از pipeها و complex fences نیز صدق می‌کند. برخی از این موارد در کتاب O'Reilly آورده شده است، اگرچه هیچ مطالعه دقیقی در مورد نحوه پذیرش و تطبیق ویژگی‌ها در انواع "vi" و "emacs" انجام نشده است.ویژگی‌ها.تکمیل فرمان.vile از تکمیل دستور برای چندین عنصر یک فرمان پشتیبانی می‌کند: نام فرمان، نام پرونده، نام پوشه و مقادیر حالت.حالت‌های اصلی.هم وی و هم ایمکس دارای mode هستند که تنظیماتی هستند که بر رفتار برنامه تأثیر می‌گذارند. vile با ارائه سه سطح mode: "global" ، "buffer" و "window" ، modeهای vi مانند "list" ، "number" و دگره را گسترش می‌دهد. modeهای "بافر" با درونمایه‌ی بافر، مانند line-terminators و ویژگی‌های تنها خواندنی، مرتبط هستند. همه این modeها از پیش تعریف شده‌اند. vile را می‌توان با تعریف "majormodes" ، که تنظیمات ویژه modeهای "بافر" را با ارتباط با نوع پرونده ترکیب می‌کنند، سفارشی کرد. این "majormodesها" همچنین دارای modeهای ویژه‌ای مانند ارتباط با یک "فیلتر نحوی" ویژه هستند.برجسته‌سازی سینتکس.vile با اجرای یک برنامه "فیلتر نحوی" که درونمایه‌ی بافر را تجزیه می‌کند، برجسته‌سازی نحوی را انجام می‌دهد. در آغاز این یک برنامه جداگانه بود. با این حال، برای بهبود عملکرد و جلوگیری از مشکلات نمایش، این فیلترهای نحوی معمولاً در ویرایشگر کامپایل می‌شوند. بیشتر فیلترهای نحوی با lex (ترجیحاً flex ) پیاده‌سازی شده‌اند و بقیه در C برای رسیدگی به گرامرهای نامنظم مانند Perl و Ruby هستند. همه فیلترهای نحوی از یک طرح مشابه پیروی می‌کنند:وایل اطلاعات نشانه‌گذاری را با استفاده از نواحی جدا شده با شماره خط و ستون، روی محتویات بافر ترسیم می‌کند. این نشانه‌گذاری به محتویات بافر زیرین متصل نیست. به‌روزرسانی نشانه‌گذاری همزمان با تغییر بافر، نیاز به تحلیل مجدد دارد. این کار به طور خودکار هنگام مکث کاربر انجام می‌شود.تاریخچه.وایل از سال ۱۹۹۰ همواره در حال توسعه بوده است.