انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

exposix - آنلاین در ابر

Exposix را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستوری است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


سابق - ویرایشگر متن

خلاصه


ex [-rR] [−s|−v] [فرمان] [-t برچسب زدن] [-w اندازه] [پرونده...]

شرح


La ex ابزار یک ویرایشگر متن خط گرا است. دو حالت دیگر از ویرایشگر وجود دارد -
باز و بصری - که در آن ویرایش صفحه‌گرا در دسترس است. در این مورد بیشتر توضیح داده شده است
به طور کامل توسط ex باز کن و بصری دستورات و در vi.

اگر یک عملوند باشد '-'، نتایج نامشخص است.

این بخش از این اصطلاح استفاده می کند ویرایش کنید بافر برای توصیف متن کاری فعلی مشخص نیست
پیاده سازی با این اصطلاح دلالت دارد. تمام تغییرات ویرایش روی ویرایش انجام می شود
بافر، و هیچ تغییری در آن روی هیچ فایلی تأثیر نمی گذارد تا زمانی که دستور ویرایشگر آن را بنویسد
فایل.

برخی از ترمینال ها تمام قابلیت های لازم برای پشتیبانی کامل را ندارند ex
تعریف، مانند دستورات ویرایش تمام صفحه (بصری حالت or باز کن حالت) چه زمانی
این دستورات را نمی توان در چنین پایانه هایی پشتیبانی کرد، این شرط نباید یک را ایجاد کند
پیام خطایی مانند "دستور ویرایشگر نیست" یا گزارش یک خطای نحوی. در
پیاده سازی ممکن است دستورات را بپذیرد و نتایجی را روی صفحه نمایش دهد
نتیجه تلاش ناموفق برای برآوردن الزامات این حجم از
POSIX.1-2008 یا یک خطا را در توصیف نقص مربوط به ترمینال گزارش کنید.

OPTIONS


La ex ابزار باید با حجم تعاریف پایه POSIX.1-2008 مطابقت داشته باشد، بخش 12.2,
سودمندی نحو دستورالعمل، به جز استفاده نامشخص از '-'، و آن '+' شاید
به عنوان یک جداکننده گزینه و همچنین '-'.

گزینه های زیر باید پشتیبانی شوند:

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

-r فایل های نامگذاری شده را بازیابی کنید (به بخش EXTENDED DESCRIPTION مراجعه کنید). بهبود
اطلاعات یک فایل باید در طول یک ویرایشگر یا خرابی سیستم ذخیره شود (برای
به عنوان مثال، هنگامی که ویرایشگر با سیگنالی که ویرایشگر می تواند دریافت کند، پایان می یابد.
یا پس از استفاده از یک ex حفظ کردن فرمان

A سقوط در این زمینه یک شکست غیرمنتظره از سیستم یا ابزار است که
نیاز به راه اندازی مجدد سیستم یا ابزار ناموفق دارد. خرابی سیستم به این معنی است
هر گونه ابزاری که در آن زمان اجرا می شود نیز خراب می شود. در مورد ویرایشگر یا سیستم
خرابی، تعداد تغییرات بافر ویرایش (از آخرین حفظ کردن
فرمان) که بازیابی خواهد شد نامشخص است.

اگر نه پرونده عملوند داده می شود و -t گزینه مشخص نشده است، همه موارد دیگر
گزینه ها، EXINIT متغیر، و هر exrc فایل ها نادیده گرفته می شوند. یک لیست از
تمام فایل های قابل بازیابی در دسترس کاربر فراخوان باید نوشته شود و
ویرایشگر باید به طور معمول بدون اقدام بیشتر خارج شود.

تنظیم فقط خواندنی گزینه ویرایش

-s آماده ex برای استفاده دسته ای با انجام اقدامات زیر:

* دستورات نوشتن و پیام های اطلاعاتی (اما نه تشخیصی) را سرکوب کنید.

* ارزش را نادیده بگیرید مدت و هر نوع ترمینال پیش فرض پیاده سازی و
فرض کنید ترمینال نوعی است که قادر به پشتیبانی از حالت های باز یا بصری نیست.
ببینید بصری دستور و شرح vi.

* سرکوب استفاده از EXINIT متغیر محیطی و خواندن هر
exrc فایل؛ بخش توضیحات گسترده را ببینید.

* فرورفتگی خودکار را سرکوب کنید، ارزش the را نادیده بگیرید خود توند گزینه ویرایش

-t برچسب زدن
فایل حاوی موارد مشخص شده را ویرایش کنید برچسب زدن؛ دیدن برچسب ها. ویژگی های برچسب ها
ارائه شده توسط -t برچسب زدن و برچسب دستور اختیاری است خواهد بود
ارائه شده در هر سیستمی که اجرای منطبق بر آن را نیز فراهم می کند برچسب ها;
در غیر این صورت، استفاده از -t نتایج نامشخصی ایجاد می کند. در هر سیستمی، باید باشد
یک خطا برای تعیین بیش از یک واحد -t گزینه.

−v در حالت بصری شروع کنید (نگاه کنید به vi).

-w اندازه مقدار را تنظیم کنید پنجره گزینه ویرایشگر به اندازه.

عملگرها


عملوند زیر باید پشتیبانی شود:

پرونده نام مسیر فایلی که باید ویرایش شود.

STDIN


ورودی استاندارد شامل یک سری دستورات و متن ورودی است، همانطور که در توضیح داده شده است
بخش توضیحات گسترده. پیاده سازی ممکن است هر خط ورودی استاندارد را محدود کند
طول {LINE_MAX}.

اگر ورودی استاندارد یک دستگاه ترمینال نباشد، باید مانند این باشد -s گزینه بوده است
مشخص شده.

اگر یک خواندن از ورودی استاندارد یک خطا برمی گرداند، یا اگر ویرایشگر یک پایانه را تشخیص دهد
شرایط فایل از ورودی استاندارد، باید معادل یک SIGHUP ناهمزمان باشد
رویداد.

INPUT فایل ها


فایل‌های ورودی باید فایل‌های متنی یا فایل‌هایی باشند که جز فایل‌های ناقص، فایل‌های متنی هستند
آخرین خطی که طول آن بیشتر از {LINE_MAX}-1 بایت نیست و NUL ندارد
شخصیت ها. به‌طور پیش‌فرض، هر خط آخر ناقص باید به‌گونه‌ای تلقی شود که گویی یک خط آخر دارد
. ویرایش فرم های دیگر فایل ها ممکن است به صورت اختیاری مجاز باشد ex
پیاده سازی

La exrc فایل ها و فایل های منبع باید فایل های متنی متشکل از ex دستورات؛ را ببینید
بخش توضیحات گسترده.

به‌طور پیش‌فرض، ویرایشگر باید خطوطی از فایل‌هایی که باید ویرایش شوند را بدون تفسیر بخواند
هر یک از آن خطوط به عنوان هر شکلی از دستور ویرایشگر.

محیط زیست متغیرها


متغیرهای محیطی زیر باید بر اجرای آن تأثیر بگذارند ex:

ستون ها اندازه صفحه افقی انتخاب شده توسط سیستم را لغو کنید. به تعاریف پایه مراجعه کنید
جلد POSIX.1-2008، فصل 8, محیط متغیر برای مقادیر معتبر و
وقتی تنظیم نشده یا تهی باشد نتیجه می شود.

EXINIT لیستی از ex دستوراتی که در راه اندازی ویرایشگر اجرا می شوند. را ببینید
بخش توضیحات گسترده برای جزئیات بیشتر مرحله اولیه سازی.

صفحه اصلی تعیین نام مسیر دایرکتوری که باید برای شروع ویرایشگر جستجو شود.
فایل up به نام exrc; بخش توضیحات گسترده را ببینید.

زبان یک مقدار پیش فرض برای متغیرهای بین المللی سازی که تنظیم نشده اند یا
خالی. (به جلد تعاریف پایه POSIX.1-2008 مراجعه کنید، بخش 8.2,
بین المللی کردن متغیر برای تقدم بین المللی شدن
متغیرهایی که برای تعیین مقادیر دسته‌های محلی استفاده می‌شوند.)

LC_ALL اگر روی یک مقدار رشته ای غیر خالی تنظیم شده است، مقادیر بقیه را لغو کنید
متغیرهای بین المللی سازی

LC_COLLATE
محلی را برای رفتار محدوده ها، کلاس های هم ارزی و چند
عناصر ترکیب کاراکتر در عبارات منظم.

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

LC_MESSAGES
محلی را که باید برای تأثیرگذاری بر قالب و محتویات استفاده شود، تعیین کنید
پیام های تشخیصی با خطای استاندارد نوشته شده است.

LINES اندازه صفحه عمودی انتخاب شده توسط سیستم را که به عنوان تعداد خطوط استفاده می شود، لغو کنید
در یک صفحه نمایش و اندازه صفحه نمایش عمودی در حالت بصری. پایگاه را ببینید
حجم تعاریف POSIX.1-2008، فصل 8, محیط متغیر برای معتبر
مقادیر و نتایج زمانی که تنظیم نشده یا صفر باشد.

nlspath تعیین محل کاتالوگ پیام برای پردازش LC_MESSAGES.

PATH مسیر جستجوی دستور پوسته مشخص شده در را تعیین کنید ex سردبیر
دستورات !, صدف, خواندنو نوشتنو دستور حالت باز و بصری !؛ دیدن
شرح جستجو و اجرای دستور در بخش 2.9.1.1, فرمان
جستجو و اعدام.

پوسته مفسر خط فرمان ترجیحی را برای استفاده به عنوان مقدار پیش فرض تعیین کنید
la صدف گزینه ویرایش

مدت نام نوع ترمینال را تعیین کنید. اگر این متغیر تنظیم نشده یا تهی باشد، an
نوع ترمینال پیش فرض نامشخص باید استفاده شود.

نامتقارن رویدادها


عبارت زیر در این بخش و بخش های بعدی برای تعیین دستور و استفاده می شود
اقدامات رویداد ناهمزمان:

کامل نوشتن
نوشتن کامل عبارت است از نوشتن کل محتویات بافر ویرایش در یک فایل
از نوع دیگری غیر از یک دستگاه ترمینال، یا ذخیره بافر ویرایش ایجاد شده است
توسط کاربر اجرا کننده ex حفظ کردن فرمان نوشتن مطالب ویرایش
بافر به یک فایل موقت که پس از خروج ویرایشگر حذف نمی شود
رایت کامل در نظر گرفته شود

پس از دریافت سیگنال اقدامات زیر باید انجام شود:

SIGINT اگر ورودی استاندارد یک دستگاه ترمینال نباشد، ex نباید فایل یا
به حالت دستور یا ورودی متن برگردید و با خروجی غیر صفر خارج شوید
وضعیت.

در غیر این صورت، در صورت اجرای دستور حالت ورودی متن باز یا تصویری، ex در رسید
SIGINT باید رفتاری مشابه با دریافت آن داشته باشد شخصیت.

در غیر این صورت:

1. در صورت اجرای یک ex دستور حالت ورودی متن، تمام خطوط ورودی که بوده اند
به طور کامل وارد شده باید در بافر ویرایش حل شود، و هر جزئی
خط وارد شده باید دور ریخته شود.

2. اگر دستوری در حال اجرا وجود داشته باشد، باید لغو شود و یک پیام ارسال شود
نمایش داده. مگر اینکه غیر از این توسط ex or vi توضیحات فرمان،
مشخص نیست که آیا خطوطی که توسط دستور اجرا اصلاح شده اند ظاهر می شوند یا خیر
اصلاح شده، یا همانطور که قبل از تغییر توسط فرمان اجرا کننده، در
بافر

اگر دستوری که در حال حاضر اجرا می شود یک فرمان حرکتی بود، مربوط به آن است
فرمان باید کنار گذاشته شود.

3. اگر در حالت فرمان باز یا بصری باشد، ترمینال باید هشدار داده شود.

4. سپس ویرایشگر باید به حالت فرمان بازگردد.

SIGCONT صفحه باید در حالت باز یا بصری به روز شود.

SIGHUP اگر بافر ویرایش از آخرین نوشتن کامل تغییر کرده باشد، ex باید
سعی کنید بافر ویرایش را ذخیره کنید تا بعداً با استفاده از آن بازیابی شود -r
گزینه یا ex بهبود پیدا کن فرمان ویرایشگر نباید فایل را بنویسد یا برگرداند
به حالت دستور یا ورودی متن، و باید با وضعیت خروج غیر صفر خاتمه یابد.

SIGTERM به SIGHUP مراجعه کنید.

اقدام انجام شده برای همه سیگنال های دیگر نامشخص است.

با توجه به


خروجی استاندارد باید فقط برای نوشتن دستورات به کاربر، برای اطلاعات استفاده شود
پیام ها و برای نوشتن خطوط از فایل.

STDERR


خطای استاندارد باید فقط برای پیام های تشخیصی استفاده شود.

OUTPUT فایل ها


خروجی از ex باید فایل متنی باشد

تمدید شده شرح


فقط ex حالت ویرایشگر در این بخش توضیح داده شده است. دیدن vi برای ویرایش اضافی
قابلیت های موجود در ex.

وقتی خطایی رخ می دهد، ex باید پیام بنویسد اگر ترمینال از حالت ایستاده پشتیبانی کند
(مانند ویدیوی معکوس)، پیام باید در حالت برجسته نوشته شود. اگر ترمینال
حالت برجسته و گزینه ویرایش را پشتیبانی نمی کند زنگ های خطا تنظیم شده است، یک اقدام هشدار
باید قبل از پیام خطا باشد.

به طور پیش فرض، ex باید در حالت فرمان شروع شود که باید با a نشان داده شود : سریع؛ دیدن
la سریع فرمان حالت ورودی متن را می توان توسط ضمیمه کردن, درج، یا تغییر دادن
دستورات؛ با تایپ a می توان از آن خارج شد (و حالت فرمان را دوباره وارد کرد). (".") تنها
در ابتدای یک خط

دهی اولیه in ex و vi
از نمادهای زیر در این بخش و بخش های بعدی برای تعیین مکان در قسمت استفاده می شود
ویرایش بافر:

متناوب و جاری نام های مسیر
دو مسیر نامگذاری شده جاری و متناوب، توسط ویرایشگر نگهداری می شوند. هر ex
دستوراتی که نام فایل ها را به عنوان آرگومان می گیرند باید آنها را به صورت زیر تنظیم کنند:

1. اگر الف پرونده آرگومان مشخص شده است ex ویرایش کنید, ex، یا بهبود پیدا کن دستورات، یا اگر
an ex برچسب دستور جایگزین محتویات بافر ویرایش می شود.

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

ب در غیر این صورت، نام مسیر جایگزین باید به مقدار تنظیم شود پرونده بحث و جدل.

2. اگر الف پرونده آرگومان مشخص شده است ex بعد فرمان:

آ. اگر دستور جایگزین محتویات بافر ویرایش شود، جریان فعلی
نام مسیر باید روی اولین تنظیم شود پرونده آرگومان و نام مسیر جایگزین
باید روی مقدار قبلی نام مسیر فعلی تنظیم شود.

3. اگر الف پرونده آرگومان مشخص شده است ex پرونده فرمان، نام مسیر فعلی
باید تنظیم شود پرونده آرگومان، و نام مسیر جایگزین باید به تنظیم شود
مقدار قبلی نام مسیر فعلی

4. اگر الف پرونده آرگومان مشخص شده است ex خواندن و نوشتن دستورات (یعنی وقتی
خواندن یا نوشتن یک فایل، و نه به برنامه ای که توسط صدف ویرایش کنید
گزینه)، یا الف پرونده آرگومان مشخص شده است ex خروج فرمان:

آ. اگر نام مسیر فعلی مقداری نداشته باشد، نام مسیر فعلی باید روی تنظیم شود
la پرونده بحث و جدل.

ب در غیر این صورت، نام مسیر جایگزین باید به مقدار تنظیم شود پرونده بحث و جدل.

اگر نام مسیر جایگزین روی مقدار قبلی نام مسیر فعلی تنظیم شود
نام مسیر فعلی هیچ مقدار قبلی ندارد، سپس نام مسیر جایگزین باید داشته باشد
در نتیجه ارزشی ندارد

جاری خط
خط بافر ویرایش که توسط مکان نما ارجاع داده شده است. توضیحات هر دستور
خط فعلی را پس از اجرای دستور مشخص می کند جاری خط
ارزش. هنگامی که بافر ویرایش حاوی هیچ خطی نباشد، خط فعلی باید صفر باشد. دیدن
خطاب به in ex.

جاری ستون
ستون خط نمایش فعلی که توسط مکان نما اشغال شده است. (ستون ها باید باشند
با شماره 1 شروع می شود.) توضیحات هر فرمان ستون فعلی را مشخص می کند
پس از اجرای دستور، به عنوان جاری ستون مقدار. این ستون یک
دلخواه ستونی که در طول عمر ویرایشگر به خاطر سپرده می شود. نمایشگر واقعی
ستون خطی که مکان نما بر روی آن قرار دارد ممکن است متفاوت از ستون فعلی باشد.
بحث تعیین موقعیت مکان نما را در فرمان توضیحات in vi.

تنظیم به غیر-
توضیحی برای مقدار ستون فعلی، به این معنی که ستون فعلی باید باشد
بر روی آخرین ستون صفحه نمایش که هر قسمت از اولین ستون نمایش داده می شود تنظیم کنید
غیر- از خط اگر خط فاقد غیر غیر- شخصیت ها،
ستون فعلی باید روی آخرین ستون خط نمایشی که روی آن قرار دارد تنظیم شود
هر بخشی از آخرین غیر شخصیت در خط اگر خط است
خالی، ستون فعلی باید در موقعیت ستون 1 تنظیم شود.

طول خطوط در بافر ویرایش ممکن است به {LINE_MAX} بایت محدود شود. در باز و
در حالت بصری، طول خطوط در بافر ویرایش ممکن است به تعداد محدود باشد
کاراکترهایی که در صفحه نمایش جا می شوند. اگر در حین ویرایش از هر یک از محدودیت ها فراتر رفت، یک
پیام خطا باید نوشته شود اگر خط خوانده شده از یک فایل از هر یک از محدودیت ها فراتر رفت،
یک پیام خطا باید نوشته شود و جلسه ویرایش ممکن است خاتمه یابد.

اگر ویرایشگر به هر دلیلی غیر از دستور کاربر، اجرا را متوقف کند، و ویرایش
بافر از زمان آخرین نوشتن کامل اصلاح شده است، باید معادل SIGHUP باشد
رویداد ناهمزمان اگر سیستم از کار بیفتد، باید معادل SIGHUP ناهمزمان باشد
رویداد.

در طول مقداردهی اولیه (قبل از اینکه اولین فایل در بافر ویرایش یا هر کاربری کپی شود
دستورات ترمینال پردازش می شوند) موارد زیر رخ می دهد:

1. اگر متغیر محیطی EXINIT تنظیم شده است، ویرایشگر باید آن را اجرا کند ex دستورات
موجود در آن متغیر

2. اگر EXINIT متغیر تنظیم نشده است و همه موارد زیر درست است:

آ. صفحه اصلی متغیر محیطی تهی و خالی نیست.

ب پرونده exrc در دایرکتوری اشاره شده توسط صفحه اصلی متغیر محیطی:

من. وجود دارد

ii متعلق به همان شناسه کاربری است که شناسه کاربری واقعی فرآیند یا همان
فرآیند دارای امتیازات مناسب است

III. توسط کسی غیر از مالک قابل نوشتن نیست

ویرایشگر باید آن را اجرا کند ex دستورات موجود در آن فایل

3. اگر و فقط اگر همه موارد زیر درست باشد:

آ. دایرکتوری فعلی توسط صفحه اصلی متغیر محیطی.

ب یک دستور در EXINIT متغیر محیطی یا یک فرمان در exrc فایل در
دایرکتوری اشاره شده توسط صفحه اصلی متغیر محیطی گزینه ویرایشگر را تنظیم می کند
exrc.

ج exrc فایل در دایرکتوری فعلی:

من. وجود دارد

ii متعلق به همان شناسه کاربری که شناسه کاربری واقعی فرآیند است، یا متعلق به یکی از آنها است
مجموعه ای از شناسه های کاربری تعریف شده توسط پیاده سازی

III. توسط کسی غیر از مالک قابل نوشتن نیست

ویرایشگر باید تلاش کند تا آن را اجرا کند ex دستورات موجود در آن فایل

خطوط در هر exrc فایل هایی که خطوط خالی هستند نادیده گرفته می شوند. در صورت وجود exrc فایل وجود دارد،
اما به دلایل مالکیت یا مجوز خوانده نمی شود، باید خطا باشد.

بعد از EXINIT متغیر و هر exrc فایل ها پردازش می شوند، اولین فایل مشخص شده توسط
کاربر باید به شرح زیر ویرایش شود:

1. اگر کاربر مشخص کرده است -t گزینه، اثر باید به عنوان اگر ex برچسب فرمان بود
با آرگومان مشخص شده وارد می شود، با این استثنا که اگر پردازش تگ انجام شود
به فایلی برای ویرایش منجر نمی شود، اثر باید همانطور که در مرحله 3 در زیر توضیح داده شده است.

2. در غیر این صورت، اگر کاربر خط فرمانی را مشخص کرده باشد پرونده استدلال، اثر باید باشد
گویی که ex ویرایش کنید دستور با اولین آرگومان آن وارد شد پرونده
بحث و جدل.

3. در غیر این صورت اثر به گونه ای خواهد بود که ex ویرایش کنید دستور با a وارد شد
نام فایل موجود نیست پرونده بحث و جدل. مشخص نیست که آیا این اقدام انجام خواهد شد یا خیر
نام مسیر فعلی را تنظیم کنید در پیاده سازی که این عمل تنظیم نمی کند
نام مسیر فعلی، هر دستور ویرایشگر که از نام مسیر فعلی استفاده می‌کند، تا زمانی که یک عدد ناموفق باشد، ناموفق خواهد بود
دستور ویرایشگر نام مسیر فعلی را تنظیم می کند.

اگر -r گزینه مشخص شد، اولین بار یک فایل در لیست آرگومان اولیه یا a
فایل مشخص شده توسط -t اگر اطلاعات بازیابی قبلاً وجود داشته باشد، گزینه ویرایش می شود
ذخیره شده در مورد آن، آن اطلاعات باید بازیابی شوند و ویرایشگر باید طوری رفتار کند که گویی
محتویات بافر ویرایش قبلاً اصلاح شده است. اگر چند نمونه از
فایلی که قرار است بازیابی شود، فایلی که اخیراً ذخیره شده است باید بازیابی شود و یک
پیام اطلاعاتی مبنی بر اینکه نسخه های قبلی فایل قابل بازیابی وجود دارد
نوشته خواهد شد. اگر هیچ اطلاعات بازیابی در مورد یک فایل در دسترس نیست، اطلاعاتی است
پیامی به این منظور نوشته می شود و ویرایش طبق معمول انجام می شود.

اگر گزینه مشخص شد، اولین بار که فایلی که از قبل وجود دارد (از جمله a
فایلی که ممکن است وجود نداشته باشد اما اطلاعات بازیابی آن در دسترس است، زمانی که -r
گزینه مشخص شده است) محتویات بافر ویرایش، جریان را جایگزین یا مقداردهی اولیه می کند
خط باید روی آخرین خط بافر ویرایش تنظیم شود، ستون فعلی باید روی تنظیم شود
غیر- ، و ex دستورات مشخص شده با گزینه باید اجرا شود در این
در این حالت، خط فعلی و ستون فعلی نباید آنطور که برای دستور توضیح داده شده است تنظیم شوند
مربوط به جایگزینی یا مقداردهی اولیه محتویات بافر ویرایش است. با این حال، اگر
la -t گزینه یا الف برچسب فرمان با این عمل همراه است دستورات گزینه
باید اجرا شود و سپس حرکت به تگ انجام شود.

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

خطاب به in ex
آدرس دادن در ex مربوط به خط جاری و ستون جاری است. آدرس یک خط
شماره خط مبتنی بر 1 آن است، آدرس یک ستون تعداد بر اساس 1 آن است
ابتدای خط به طور کلی، خط فعلی آخرین خطی است که تحت تأثیر یک فرمان قرار می گیرد.
شماره خط فعلی آدرس خط فعلی است. در توضیحات هر دستور،
تأثیر دستور بر روی شماره خط فعلی و ستون فعلی توضیح داده شده است.

آدرس ها به صورت زیر ساخته می شوند:

1. شخصیت "." (دوره) باید خط فعلی را نشان دهد.

2. شخصیت "$" باید آخرین خط بافر ویرایش را نشان دهد.

3. عدد اعشاری مثبت n باید به nخط هفتم بافر ویرایش.

4. آدرس "'ایکس" به خط مشخص شده با کاراکتر نام علامت اشاره دارد 'ایکس'، که
باید یک حرف کوچک از مجموعه کاراکترهای قابل حمل باشد، کاراکتر نقل قول،
یا شخصیت تک نقل قولی. اگر خطی که علامت گذاری شده نباشد، خطا خواهد بود
در حال حاضر در بافر ویرایش وجود دارد یا علامت تنظیم نشده است. خطوط را می توان علامت گذاری کرد
با ex علامت or k دستورات یا vi m فرمان

5. یک عبارت منظم که توسط شخصیت ها ('/') باید خط اول را نشان دهد
با جستجوی رو به جلو از خط زیر خط فعلی به سمت انتهای یافت می شود
بافر ویرایش و توقف در اولین خطی که خط به استثنای آن
خاتمه دادن با عبارت منظم مطابقت دارد. همانطور که در منظم عبارات
in ex، آدرسی متشکل از یک عبارت منظم تهی که توسط
شخصیت ها ("//") باید خط بعدی را نشان دهد که خط به استثنای آن
خاتمه دادن با آخرین عبارت منظمی که با آن مواجه شد مطابقت دارد. علاوه بر این،
دومین را می توان در انتهای خط فرمان حذف کرد. اگر wrapscan ویرایش کنید
گزینه تنظیم شده است، جستجو باید به ابتدای بافر ویرایش بپیچد و
تا خط فعلی ادامه دهید، به طوری که کل بافر ویرایش باشد
جستجو کرد. در عبارت منظم، دنباله "\/" به معنای واقعی کلمه است
به جای جداکننده عبارت منظم.

6. یک عبارت منظم محصور در شخصیت ها ("؟") باید به
اولین خط با جستجوی عقب از خط قبل از خط فعلی یافت می شود
به سمت ابتدای بافر ویرایش و توقف در اولین خطی که برای
خط به استثنای پایانه با عبارت منظم مطابقت دارد. یک آدرس
متشکل از یک عبارت منظم تهی که توسط شخصیت ها ("؟؟")
باید خط قبلی را نشان دهد که خط به استثنای خط پایان دهنده
با آخرین عبارت منظمی که با آن مواجه شد مطابقت دارد. علاوه بر این، دوم
mark> را می توان در انتهای خط فرمان حذف کرد. اگر wrapscan گزینه ویرایش تنظیم شده است،
جستجو باید از ابتدای بافر ویرایش تا انتهای آن بپیچد
بافر را ویرایش کنید و تا خط فعلی ادامه دهید، به طوری که کل ویرایش را انجام دهید
بافر جستجو می شود. در عبارت منظم، دنباله "\؟" نشان دهنده الف خواهد بود
تحت اللفظی به جای جداکننده RE.

7. الف ('+') یا علامت منفی ('-') به دنبال آن یک عدد اعشاری باید آدرس دهد
خط فعلی به اضافه یا منهای عدد. آ '+' or '-' اعشار دنبال نمی شود
شماره باید خط فعلی به اضافه یا منهای 1 را نشان دهد.

آدرس‌ها را می‌توان به‌صورت اختیاری با صفر یا تعداد بیشتری آفست آدرس دنبال کرد -جدا از هم.
آفست آدرس به صورت زیر ساخته می شود:

1. '+' or '-' بلافاصله پس از آن یک عدد اعشاری باید اضافه (کاهش) شود
تعداد خطوط به (از) آدرس نشان داده شده است. آ '+' or '-' a دنبال نمی شود
اعداد اعشاری باید 1 را به (از) آدرس اضافه کند.

2. یک عدد اعشاری باید تعداد خطوط مشخص شده را به آدرس اضافه کند.

اگر مقدار آدرس میانی کمتر از صفر یا بیشتر باشد، نباید خطا باشد
از آخرین خط در بافر ویرایش. برای مقدار آدرس نهایی باید خطا باشد
کمتر از صفر یا بزرگتر از آخرین خط در بافر ویرایش باشد.

دستورات صفر، یک یا دو آدرس می گیرند. توضیحات را ببینید 1addr و 2addr in
فرمان توضیحات in ex. در صورتی که بیش از تعداد مورد نیاز آدرس ارائه شود به
دستوری که به آدرس صفر نیاز دارد، باید یک خطا باشد. در غیر این صورت، اگر بیشتر از
تعداد آدرس های مورد نیاز به یک فرمان ارائه می شود، آدرس ها ابتدا مشخص شده اند
باید ارزیابی شود و سپس تا زمانی که حداکثر تعداد آدرس های معتبر باقی بماند، کنار گذاشته می شود.

آدرس ها باید با الف از یکدیگر جدا شوند ('،') یا الف (';').
اگر قبل یا بعد از a آدرسی مشخص نشده باشد یا جداکننده، باید باشد
گویی آدرس خط فعلی قبل یا بعد از جداکننده مشخص شده است. در
مورد الف جداکننده، خط فعلی (".") باید روی اولین تنظیم شود
آدرس، و تنها پس از آن آدرس بعدی محاسبه می شود. از این ویژگی می توان استفاده کرد
خط شروع را برای جستجوهای رو به جلو و عقب تعیین کنید (به قوانین 5 و 6 مراجعه کنید).

آ ('%') باید معادل وارد کردن دو آدرس باشد "1,$".

هر گونه تحدید کاراکترهای بین آدرس ها، جداکننده آدرس یا آدرس
افست باید کنار گذاشته شود.

فرمان لاین تجزیه in ex
نماد زیر در این بخش و بخش های بعدی برای توصیف رفتار تجزیه استفاده می شود:

فرار اگر یک کاراکتر به عنوان "" نامیده شود -Escaped'' یا `` -V-
فرار کرد، به این معنی است که شخصیت معنای خاصی را به دست آورده یا از دست داده است
به دلیل مسبوق بودن به ترتیب الف یا - V
شخصیت. مگر اینکه غیر از این مشخص شده باشد، نویسه فرار باید کنار گذاشته شود
در آن زمان و دیگر برای هیچ هدفی در نظر گرفته نخواهد شد.

تجزیه خط فرمان باید در مراحل زیر انجام شود. برای هر مرحله، شخصیت ها
قبلا ارزیابی شده باید نادیده گرفته شود. یعنی عبارت «شخصیت پیشرو» به آن اشاره دارد
شخصیت بعدی که هنوز ارزیابی نشده است.

1. پیشرو کاراکترها باید نادیده گرفته شوند

2. پیشرو کاراکترها باید نادیده گرفته شوند

3. اگر کاراکتر پیشرو یک کاراکتر دو نقل قول باشد، کاراکترها تا و
از جمله غیر بعدی -فرار کرد باید دور ریخته شود، و هر
کاراکترهای بعدی باید به عنوان یک دستور جداگانه تجزیه شوند.

4. کاراکترهای اصلی که می توانند به عنوان آدرس تفسیر شوند باید ارزیابی شوند. دیدن
خطاب به in ex.

5. پیشرو کاراکترها باید نادیده گرفته شوند

6. اگر کاراکتر بعدی a باشد شخصیت یا الف :

آ. اگر کاراکتر بعدی a باشد :

من. اگر ex در حالت باز یا بصری است، خط فعلی باید روی آخرین تنظیم شود
آدرس مشخص شده، در صورت وجود

ii در غیر این صورت، اگر آخرین فرمان توسط a خاتمه داده شود شخصیت،
هیچ اقدامی نباید انجام شود؛ برای مثال دستور "|| " باید
دو دستور ضمنی را اجرا کنید نه سه دستور.

III. در غیر این صورت، مرحله 6.b. اعمال خواهد شد.

ب در غیر این صورت، دستور ضمنی همان خواهد بود چاپ فرمان آخرین #, pو l
پرچم مشخص شده به هر ex فرمان باید به خاطر بسپارد و در این مورد اعمال شود
فرمان ضمنی اجرای ex عدد, چاپ، یا فهرست دستور باید تنظیم شود
به یاد پرچم به #، هیچی و l، به ترتیب، به علاوه هر پرچم دیگر
برای اجرای آن مشخص شده است عدد, چاپ، یا فهرست فرمان

If ex در حال حاضر a را انجام نمی دهد جهانی or v فرمان، و بدون آدرس یا شمارش
مشخص شده است، قبل از دستور، خط فعلی باید 1 افزایش یابد
اجرا شده. اگر افزایش خط فعلی منجر به ایجاد آدرسی در گذشته شود
آخرین خط در بافر ویرایش، دستور از کار می افتد و افزایش نباید
رخ دادن.

ج در یا شخصیت باید کنار گذاشته شود و هر مورد بعدی
کاراکترها باید به عنوان یک دستور جداگانه تجزیه شوند.

7. نام فرمان باید از کاراکتر بعدی تشکیل شود (اگر کاراکتر نباشد
حروف الفبا)، یا کاراکتر بعدی و هر کاراکتر الفبایی بعدی (اگر
نویسه حروف الفبا است)، به استثنای موارد زیر:

آ. دستوراتی که از هر پیشوندی از کاراکترهای نام فرمان تشکیل شده است حذف کردن,
بلافاصله پس از هر یک از شخصیت ها "من", 'پ', '+', '-'، یا '#' باید باشد
تعبیر به الف حذف کردن دستور و به دنبال آن a ، به دنبال شخصیت ها
که بخشی از پیشوند نبودند حذف کردن فرمان حداکثر تعداد
کاراکترها باید با نام فرمان مطابقت داده شوند حذف کردن؛ مثلا، "دل" باید
به عنوان رفتار نشود "د" به دنبال آن پرچم l.

ب دستوراتی که از شخصیت تشکیل شده است 'k'، به دنبال شخصیتی که می تواند باشد
به عنوان نام یک علامت استفاده می شود، باید معادل دستور علامت و به دنبال آن a باشد
و به دنبال آن شخصیتی که به دنبال آن بود 'k'.

ج دستوراتی که از شخصیت تشکیل شده است 's'، به دنبال شخصیت هایی که می توانند باشند
به عنوان گزینه های معتبر برای s دستور، باید معادل s
دستور، بدون هیچ الگو یا مقادیر جایگزینی، و به دنبال آن a ،
به دنبال شخصیت های بعد از 's'.

8. نام فرمان باید با نام دستورات احتمالی و یک فرمان مطابقت داده شود
نامی که حاوی یک پیشوند منطبق با کاراکترهای مشخص شده توسط کاربر باشد، باید باشد
دستور اجرا شده در مورد دستوراتی که کاراکترهای مشخص شده توسط کاربر
ممکن است مبهم باشد، دستور اجرا شده باید به صورت زیر باشد:

┌───┬────────┬┬───┬-
aضمیمه کردن ││nبعد ││tt
cتغییر دادن ││pچاپ ││uخنثی کردن
chتغییر دادن ││prچاپ ││unخنثی کردن
eویرایش کنید ││rخواندن ││vv
mحرکت ││reخواندن ││wنوشتن
maعلامت ││ss ││ │ │
└───┴────────┴┴───┴────
پسوندهای پیاده سازی با نام هایی که باعث ابهامات مشابه می شوند، بررسی نمی شوند
برای یک تطابق تا زمانی که همه تطابقات ممکن برای دستورات مشخص شده توسط POSIX.1-2008 داشته باشند
بررسی شده است.

9. اگر دستور a ! دستور، یا اگر دستور a باشد خواندن دستور به دنبال آن صفر
یا بیشتر شخصیت ها و الف !، یا اگر دستور a باشد نوشتن دستور به دنبال آن
یکی یا بیشتر شخصیت ها و الف !، بقیه دستور باید شامل همه باشد
کاراکترها تا یک غیر -فرار کرد . در باید باشد
دور انداخته شده و هر کاراکتر بعدی باید به صورت جداگانه تجزیه شود ex فرمان

10. در غیر این صورت اگر دستور an باشد ویرایش کنید, ex، یا بعد فرمان، یا الف بصری فرمان در حالی که
در حالت باز یا بصری، قسمت بعدی دستور باید به صورت زیر تجزیه شود:

آ. هر '!' کاراکتر بلافاصله پس از دستور باید نادیده گرفته شود و بخشی شود
از فرمان

ب هر پیشرو کاراکترها باید نادیده گرفته شوند و بخشی از فرمان باشند.

ج اگر کاراکتر بعدی a باشد '+'، کاراکترها تا اولین غیر -فرار کرد
یا غیر -فرار کرد باید نادیده گرفته شود و بخشی از
فرمان

د بقیه دستور باید با مراحل مشخص شده در بند تعیین شود
12.

11. در غیر این صورت اگر دستور الف باشد جهانی, باز کن, s، یا v فرمان، قسمت بعدی از
دستور باید به صورت زیر تجزیه شود:

آ. هر پیشرو کاراکترها باید نادیده گرفته شوند و بخشی از دستور باشند.

ب اگر کاراکتر بعدی حروف عددی نیست، دو نقل قول، ،
، یا شخصیت:

من. کاراکتر بعدی باید به عنوان جداکننده دستور استفاده شود.

ii اگر دستور a باشد جهانی, باز کن، یا v دستور، کاراکترها تا اولین
غیر- -فرار کرد ، یا اول غیر جداکننده فرار
شخصیت، باید نادیده گرفته شود و بخشی از فرمان باشد.

III. اگر دستور یک است s دستور، کاراکترها تا اولین
غیر- -فرار کرد ، یا دوم غیر -فرار کرد
کاراکتر جداکننده، باید نادیده گرفته شود و بخشی از فرمان باشد.

ج اگر دستور a باشد جهانی or v دستور، کاراکترها تا اولین
غیر- -فرار کرد باید نادیده گرفته شود و بخشی از فرمان باشد.

د در غیر این صورت، بقیه دستور باید با مراحل مشخص شده در تعیین شود
بند 12.

12. در غیر این صورت:

آ. اگر دستور a بود نقشه, نقشه برداری, مختصر، یا غیر اختصاری فرمان، کاراکترها
تا اولین غیر -V فرار کرد ، ، یا دو
کاراکتر نقل قول باید نادیده گرفته شود و بخشی از دستور باشد.

ب در غیر این صورت، کاراکترها تا اولین غیر -فرار کرد ،
, یا کاراکتر دو نقل قول باید نادیده گرفته شود و بخشی از آن باشد
فرمان

ج اگر دستور یک بود ضمیمه کردن, تغییر دادن، یا درج فرمان و مرحله 12.b. پایان یافت
در یک شخصیت، هر شخصیت بعدی، تا شخصیت بعدی
غیر- -فرار کرد باید به عنوان متن ورودی دستور استفاده شود.

د اگر فرمان با یک کاراکتر مضاعف به پایان رسید، تمام کاراکترهای بعدی،
تا غیر بعدی -فرار کرد ، باید دور ریخته شود.

ه. خاتمه دهنده یا شخصیت باید دور ریخته شود و هر
کاراکترهای بعدی باید به صورت جداگانه تجزیه شوند ex فرمان

آرگومان های فرمان باید همانطور که در خلاصه و شرح هر کدام توضیح داده شده است تجزیه شوند
فرد ex فرمان این تجزیه نباید باشد -حساس، به جز !
آرگومان، که باید بدون دخالت از نام فرمان پیروی کند شخصیت ها، و
جایی که در غیر این صورت مبهم خواهد بود. مثلا، تعداد دفعات مشاهده و پرچم استدلال لازم نیست
-جدا شده چون "d22p" مبهم نیست، اما پرونده استدلال به ex بعد
دستور باید با یک یا چند جدا شود شخصیت ها. هر در فرماندهی
استدلال برای مختصر, غیر اختصاری, نقشهو نقشه برداری دستورات می تواند باشد -V-
فرار کرد که در این صورت نباید به عنوان جداکننده آرگومان استفاده شود. هر
در آرگومان فرمان برای هر دستور دیگری می تواند باشد -فرار کرد، در این صورت
که نباید به عنوان جداکننده آرگومان استفاده شود.

آرگومان های درون فرمان برای مختصر, غیر اختصاری, نقشهو نقشه برداری دستورات، هر
شخصیت می تواند باشد -V فرار کرد. با تمام این شخصیت های فراری برخورد می شود
به معنای واقعی کلمه و معنای خاصی ندارد. آرگومان های درون فرمان برای همه آرگومان های دیگر ex
دستوراتی که عبارات منظم یا رشته های جایگزین نیستند، هر کاراکتری که می تواند باشد
در غیر این صورت معنای خاصی می تواند داشته باشد -فرار کرد. شخصیت های فراری باید باشند
به معنای واقعی کلمه، بدون معنی خاص به عنوان شخصیت های گسترش پوسته یا '!', '%'و
'#' شخصیت های توسعه دیدن منظم عبارات in ex و جایگزینی رشته in ex برای
شرح آرگومان های فرمان که عبارت های منظم یا رشته های جایگزین هستند.

غیر- -فرار کرد '%' شخصیت هایی که در پرونده استدلال به هر ex فرمان باید
با نام مسیر فعلی جایگزین شود. بدون فرار '#' کاراکترها باید با
نام مسیر جایگزین اگر خطا باشد '%' or '#' کاراکترها بدون فرار به نظر می رسند
آرگومان و مقادیر متناظر آنها تنظیم نشده است.

غیر- -فرار کرد '!' کاراکترهای موجود در آرگومان های هر دو ex ! دستور یا
حالت باز و بصری ! فرمان، یا در آرگومان های به ex خواندن فرمان، جایی که
اول غیر بعد از نام دستور a است '!' شخصیت، یا در استدلال به
ex نوشتن دستوری که در آن نام دستور با یک یا چند دنبال می شود شخصیت ها و
اولین غیر بعد از نام دستور a است '!' کاراکتر، باید با
آرگومان های آخرین از این سه دستور همانطور که بعد از همه ظاهر نشدند
'%', '#'و '!' کاراکترها جایگزین شدند اگر خطا باشد '!' کاراکتر
بدون فرار در یکی از این دستورات ظاهر می شود و قبلاً یکی از آنها اجرا نشده است
از این دستورات

اگر در حین تجزیه یا اجرای یک خطایی رخ دهد ex فرمان:

* یک پیام اطلاعاتی در این زمینه باید نوشته شود. اجرای ex فرمان
متوقف می شود و مکان نما (مثلاً خط و ستون فعلی) نباید باشد
بیشتر اصلاح شده است.

* اگر ex فرمان حاصل از گسترش نقشه، همه کاراکترهای آن نقشه است
انبساط باید دور ریخته شود، مگر در مواردی که توسط این سازمان مشخص شده باشد نقشه فرمان

* در غیر این صورت، اگر ex فرمان حاصل از پردازش یک EXINIT محیط
متغیر، الف exrc فایل، الف : منبع فرمان، الف گزینه یا الف +فرمان مشخص شده به یک
ex ویرایش کنید, ex, بعد، یا بصری دستور، هیچ فرمان دیگری از منبع
دستورات اجرا شود

* در غیر این صورت، اگر ex فرمان حاصل از اجرای یک بافر یا a جهانی or v
دستور، هیچ فرمان دیگری ناشی از اجرای بافر یا جهانی or v
دستور اجرا شود

* در غیر این صورت، اگر ex فرمان توسط a خاتمه داده نشد ، همه کاراکترها تا
و از جمله غیر بعدی -فرار کرد باید دور ریخته شود.

ورودی ویرایش in ex
نماد زیر در این بخش و بخش های بعدی برای تعیین دستور استفاده می شود
اقدامات:

کلمه در محلی POSIX، یک کلمه از حداکثر دنباله ای از حروف، ارقام تشکیل شده است.
و زیرخط، که در هر دو انتها با نویسه هایی غیر از حروف مشخص شده است،
ارقام، یا زیرخط، یا با شروع یا انتهای یک خط یا بافر ویرایش.

هنگام پذیرش کاراکترهای ورودی از کاربر، در هر دو ex حالت فرمان یا ex ورودی متن
حالت ، ex باید پردازش ورودی حالت متعارف را، همانطور که در واسط های سیستم تعریف شده است، فعال کند
جلد POSIX.1-2008.

اگر در ex حالت ورودی متن:

1. اگر عدد گزینه ویرایش تنظیم شده است، ex باید برای ورودی با استفاده از شماره خط که
در صورت وارد کردن خط، در قالب مشخص شده برای خط، به آن اختصاص داده می شود ex
عدد فرمان

2. اگر خود توند گزینه ویرایش تنظیم شده است، ex باید برای استفاده از ورودی درخواست کند خود توند
شخصیت ها، همانطور که توسط the خود توند گزینه ویرایش خود توند شخصیت ها باید
شماره خط را در صورت وجود دنبال کنید.

اگر در ex حالت فرمان:

1. اگر سریع گزینه ویرایش تنظیم شده است، ورودی باید برای استفاده از یک تک درخواست شود ':'
شخصیت؛ در غیر این صورت، هیچ درخواستی وجود نخواهد داشت.

کاراکترهای ورودی در بخش‌های بعدی باید تأثیرات زیر را بر روی داشته باشند
خط ورودی

طومار
خلاصه:
اوف

توضیحات را ببینید استی اوف شخصیت در استی.

اگر در ex حالت فرمان:

اگر اوف کاراکتر اولین نویسه ای است که در خط وارد می شود، خط باید باشد
به گونه ای ارزیابی می شود که گویی حاوی دو کاراکتر است: الف -D و a .

در غیر این صورت ، اوف شخصیت نباید معنای خاصی داشته باشد.

اگر در ex حالت ورودی متن:

اگر مکان نما از یک پیروی کند خود توند شخصیت، خود توند شخصیت ها در
خط باید طوری اصلاح شود که بخشی از کاراکتر ورودی متن بعدی باشد
در اولین ستون در سطر بعد از ستون قبلی نمایش داده می شود عرض شیفت گزینه ویرایش
مرز ستون، و کاربر باید دوباره برای ورودی برای همان خط درخواست شود.

در غیر این صورت، اگر مکان نما از a پیروی کند '0'، که به دنبال خود توند شخصیت ، و
la '0' کاراکتر ورودی متن قبلی، the '0' و همه خود توند
کاراکترهای خط باید کنار گذاشته شوند و از کاربر دوباره خواسته شود
ورودی برای همان خط

در غیر این صورت، اگر مکان نما از a پیروی کند '^'، که به دنبال خود توند شخصیت ، و
la '^' کاراکتر ورودی متن قبلی، the '^' و همه خود توند
کاراکترهای خط باید کنار گذاشته شوند و از کاربر دوباره خواسته شود
ورودی برای همان خط علاوه بر این خود توند سطح برای خط ورودی بعدی
باید از همان خطی مشتق شود که از آن خود توند سطح برای جریان
خط ورودی استخراج شد.

در غیر این صورت، اگر وجود ندارد خود توند یا کاراکترهای ورودی متن در خط، the اوف
شخصیت باید کنار گذاشته شود.

در غیر این صورت ، اوف شخصیت نباید معنای خاصی داشته باشد.


خلاصه:

-جی

اگر در ex حالت فرمان:

باعث شود خط فرمان تجزیه شود. -J باید به نقشه برداری شود
به این منظور.

اگر در ex حالت ورودی متن:

خط فعلی را خاتمه دهید. اگر هیچ شخصیت دیگری وجود نداشته باشد خود توند
کاراکترهای روی خط، همه کاراکترهای روی خط باید کنار گذاشته شوند.

درخواست برای ورودی متن در یک خط جدید پس از خط فعلی. اگر خود توند ویرایش کنید
گزینه تنظیم شده است، تعداد مناسبی از خود توند کاراکترها باید به صورت الف اضافه شوند
پیشوند خط همانطور که توسط the توضیح داده شده است ex خود توند گزینه ویرایش


خلاصه:


اجازه ورود بعدی را بدهید یا -J به عنوان یک شخصیت تحت اللفظی، حذف
هر معنای خاصی که ممکن است برای ویرایشگر در حالت ورودی متن داشته باشد. در
زمانی که خط فرمان تجزیه می شود یا حفظ می شود، کاراکتر باید حفظ و ارزیابی شود
زمانی که متن ورودی بخشی از بافر ویرایش می شود، گنجانده می شود.

- V
خلاصه:
-V

اجازه ورود هر کاراکتر بعدی را به عنوان یک نویسه تحت اللفظی، حذف نویسه های خاص، بدهید
به این معنی که ممکن است در حالت ورودی متن به ویرایشگر نیاز داشته باشد. در - کاراکتر V
قبل از اینکه خط فرمان تجزیه شود یا متن ورودی بخشی از آن شود، باید کنار گذاشته شود
ویرایش بافر

اگر عملکرد "بعدی تحت اللفظی" توسط سیستم زیربنایی انجام شود، انجام می شود
پیاده سازی تعریف شده که آیا یک کاراکتر غیر از -V این عملکرد را انجام می دهد.

- دبلیو
خلاصه:
-دبلیو

را دور بریزید -W و کلمه قبل از آن در خط ورودی، از جمله هر
کاراکترهای بعد از کلمه و قبل از - دبلیو اگر کلمه
عملکرد erase" توسط سیستم زیربنایی انجام می شود، به صورت پیاده سازی تعریف شده است
چه شخصیتی غیر از -W این عملکرد را انجام می دهد.

فرمان توضیحات in ex
از نمادهای زیر در این بخش برای نمایش اصلاح کننده های دستور استفاده می شود. بعضی از
این اصلاح کننده ها را می توان حذف کرد، در این صورت باید از پیش فرض های مشخص شده استفاده شود.

1addr یک آدرس تک خطی که به هر یک از اشکال توضیح داده شده در آن داده می شود خطاب به in ex;
پیش فرض باید خط فعلی باشد (".") مگر اینکه خلاف آن مشخص شده باشد.

اگر آدرس خط صفر باشد، باید خطا باشد، مگر اینکه در غیر این صورت مشخص شده باشد
توضیحات دستور زیر

اگر بافر ویرایش خالی باشد و آدرس با دستور دیگری مشخص شود
نسبت به =, ضمیمه کردن, درج, باز کن, قرار دادن, خواندن، یا بصری، یا آدرس صفر نیست،
این یک خطا خواهد بود.

2addr دو آدرس که محدوده ای از خطوط را مشخص می کند. اگر هیچ آدرسی وجود ندارد
مشخص شده، پیش فرض برای 2addr باید فقط خط فعلی باشد (".،.")، مگر اینکه
در غیر این صورت در توضیحات دستور زیر مشخص شده است. اگر یک آدرس باشد
مشخص شده، 2addr فقط آن خط را مشخص می کند، مگر اینکه در
توضیحات دستور زیر

اگر آدرس اول بزرگتر از آدرس دوم باشد خطا خواهد بود.

اگر بافر ویرایش خالی باشد و دو آدرس با یک دستور مشخص شده باشند
غیر از !, نوشتن, wq، یا خروج دستورات، یا هر یک از آدرس ها صفر نیست، آن است
خطا خواهد بود

تعداد دفعات مشاهده یک عدد اعشاری مثبت اگر تعداد دفعات مشاهده مشخص شده است، باید معادل باشد
مشخص کردن یک آدرس اضافی برای دستور، مگر اینکه توسط
توضیحات دستور زیر آدرس اضافی باید برابر باشد
آخرین آدرس مشخص شده برای فرمان (به طور صریح یا به طور پیش فرض) به اضافه
تعداد دفعات مشاهده−1.

اگر این منجر به آدرسی بزرگتر از خط آخر ویرایش شود
بافر، باید اصلاح شود تا با آخرین خط بافر ویرایش برابری کند.

پرچم ها یک یا چند شخصیت '+', '-', '#', 'پ'، یا "من" (البته). پرچم
شخصیت ها می توانند باشند -جدا شده و به هر ترتیب یا ترکیبی. در
کاراکتر '#', 'پ'و "من" باعث می شود خطوط در قالب نوشته شوند
مشخص شده توسط چاپ فرمان با مشخص شده پرچم ها.

خطوطی که قرار است نوشته شود به شرح زیر است:

1. تمام خطوط بافر ویرایش نوشته شده در طول اجرای ex &, ~, فهرست,
عدد, باز کن, چاپ, s, بصریو z دستورات باید همانطور که مشخص شده نوشته شود
by پرچم ها.

2. پس از اتمام یک ex فرمان با پرچم به عنوان آرگومان، the
خط فعلی باید همانطور که توسط مشخص شده نوشته شود پرچم ها، مگر اینکه خط فعلی باشد
آخرین خطی بود که توسط دستور نوشته شد.

شخصیت ها '+' و '-' باعث می شود مقدار خط فعلی بعد از
اجرای ex دستوری که باید توسط آدرس افست همانطور که در توضیح داده شده تنظیم شود
خطاب به in ex. این تنظیم باید قبل از خط فعلی انجام شود
نوشته شده در 2. بالا.

پیش فرض برای پرچم ها هیچ کدام نخواهد بود

بافر یکی از تعدادی از مناطق نامگذاری شده برای نگهداری متن. بافرهای نامگذاری شده مشخص شده اند
توسط کاراکترهای الفبایی محل POSIX. یکی نیز وجود خواهد داشت
بافر "بی نام". هنگامی که هیچ بافری برای دستورات ویرایشگر که از a استفاده می کنند مشخص نشده است
بافر، بافر بدون نام باید استفاده شود. دستوراتی که متن را در بافرها ذخیره می کند
متن را همانطور که قبل از اعمال فرمان بود ذخیره می کند و ذخیره می کند
متنی که در ابتدا در فایل وجود دارد قبل از اینکه متنی که بعداً در فایل ایجاد شود،
صرف نظر از اینکه منطقه متن چگونه مشخص شده است. دستوراتی که متن را در آن ذخیره می کند
بافرها باید متن را در بافر بی نام و همچنین موارد مشخص شده ذخیره کنند
بافر شده است.

In ex دستورات، نام بافر به خودی خود به عنوان نام مشخص می شود. در باز یا
دستورات حالت بصری قبل از نام با یک نقل قول دوگانه ("") شخصیت.

اگر نام بافر مشخص شده یک کاراکتر بزرگ و محتوای بافر باشد
باید اصلاح شوند، بافر به جای بودن باید به آن اضافه شود
رونویسی شده است. اگر بافر در حال تغییر نیست، نام بافر را در آن مشخص کنید
حروف کوچک و بزرگ باید نتایج یکسانی داشته باشند.

همچنین باید بافرهایی با اعداد 1 تا 9 نامگذاری شوند. در حالت باز و بصری
حالت، اگر ناحیه ای از متن شامل کاراکترهای بیش از یک خط باشد
در حال تغییر توسط vi c or d دستورات، کاراکتر حرکت مرتبط با
la c or d دستورات مشخص می کند که متن بافر باید در حالت خط یا در حالت خط باشد
دستورات %, `, /, ?, (, ), N, n, {، یا } برای تعریف ناحیه ای از متن برای
la c or d دستورات، محتویات بافرهای 1 تا 8 باید به داخل منتقل شوند
بافر با مقدار عددی بزرگتر بعدی، محتویات بافر 9 نامگذاری شده است
باید دور ریخته شود و ناحیه متن باید در بافر 1 کپی شود
باید علاوه بر کپی کردن متن در یک بافر مشخص شده توسط کاربر یا بدون نام باشد
بافر یا هر دو بافرهای عددی را می توان به عنوان بافر منبع برای باز مشخص کرد
و دستورات حالت بصری. با این حال، تعیین یک بافر عددی به عنوان نوشتن
هدف یک فرمان حالت باز یا بصری باید نتایج نامشخصی داشته باشد.

متن هر بافر باید این ویژگی را داشته باشد که در هر یک از خطوط یا
حالت کاراکتر افزودن متن به بافر غیر خالی باید حالت را مطابقت دهد
ویژگی متن ضمیمه شده الحاق متن به بافر باید
باعث ایجاد حداقل یک خط اضافی در بافر می شود. تمام متن
ذخیره شده در بافر توسط ex دستورات باید در حالت خط باشند. در ex دستور می دهد که
استفاده از بافرها به عنوان منبع متن به صورت جداگانه مشخص می کند که چگونه بافرهای متفاوت هستند
حالت ها رسیدگی می شود. هر دستور حالت باز یا بصری که از بافر برای هر کدام استفاده می کند
منظور به صورت جداگانه حالت متن ذخیره شده در بافر را مشخص می کند و
نحوه مدیریت بافرهای حالت های مختلف

پرونده متن دستوری که برای استخراج نام مسیر استفاده می شود. پیش فرض باید جریان باشد
نام مسیر، همانطور که قبلاً تعریف شد، در این صورت، اگر هنوز نام مسیر فعلی وجود نداشته باشد
ثابت شده است که باید یک خطا باشد، مگر در مواردی که به طور خاص در آن ذکر شده است
شرح دستورات فردی که در ادامه آمده است. اگر متن دستور حاوی هر کدام باشد
از شخصیت ها '~', '{', '[', '*', "؟", "$", ""، نقل قول، نقل قول، تک نقل قول،
و ، باید در معرض فرآیند "گسترش پوسته" قرار گیرد،
به شرح زیر؛ اگر بیش از یک نام مسیر و فرمان به دست آید
تنها یک مورد را انتظار دارد، این یک خطا خواهد بود.

فرآیند گسترش پوسته در ویرایشگر به صورت زیر انجام می شود. در ex
ابزار باید دو آرگومان را به برنامه ارسال کند که توسط گزینه shell edit نامگذاری شده است.
اول باید باشد و دومی باید رشته باشد "پژواک" و فرمان
متن به عنوان یک آرگومان واحد خروجی استاندارد و خطای استاندارد آن
دستور باید جایگزین متن فرمان شود.

! کاراکتری که می تواند به نام فرمان اضافه شود تا عملکرد آن را تغییر دهد، به عنوان
جزئیات در توضیحات دستورات فردی. به استثنای ex
خواندن, نوشتنو ! دستورات، '!' کاراکتر فقط باید به عنوان یک اصلاح کننده عمل کند اگر
وجود ندارد کاراکترهای بین آن و نام فرمان.

به یاد داشته باشید جستجو کردن جهت
La vi دستورات N و n شروع به جستجو در جهت جلو یا عقب در
بافر ویرایش بر اساس جهت جستجوی به خاطر سپرده شده، که در ابتدا است
تنظیم نشده است و توسط ex جهانی, v, sو برچسب دستورات و vi / و ?
دستورات

مخفف
خلاصه:
اب[مختصر کردن][lhs rhs]

If lhs و rhs مشخص نشده اند، لیست فعلی اختصارات را بنویسید و کاری انجام ندهید
بیشتر است.

پیاده سازی ها ممکن است مجموعه کاراکترهای پذیرفته شده را محدود کنند lhs or rhs، غیر از آن
کاراکترهای قابل چاپ و کاراکترها نباید محدود شوند. اضافی
محدودیت ها باید اجرا شود.

در هر دو lhs و rhs، هر شخصیتی ممکن است با a فرار کند -V، در این صورت
کاراکتر نباید برای تعیین حدود استفاده شود lhs از جانب rhs، و فرار -V باید باشد
دور انداخته شد

در حالت ورودی متن باز و تصویری، اگر غیر کلمه یا شخصیتی که فراری نیست
توسط a - کاراکتر V بعد از یک کاراکتر کلمه وارد می شود، باید برای a بررسی شود
مجموعه ای از شخصیت های تطبیق lhs، در ورودی متنی که طی این دستور وارد می شود. اگر هست
پیدا شد، اثر باید به گونه ای باشد که گویی rhs به جای وارد شد lhs.

مجموعه کاراکترهایی که بررسی می شوند به صورت زیر تعریف می شوند:

1. اگر هیچ کاراکتری قبل از کلمه و غیر کلمه یا درج نشده باشد شخصیت ها
که چک را آغاز کرد، مجموعه کاراکترها باید از کلمه کاراکتر تشکیل شود.

2. اگر کاراکتر قبل از کلمه و غیر کلمه یا شخصیت هایی که
چک یک کاراکتر کلمه است، مجموعه ای از کاراکترها باید شامل
نویسه‌هایی که بلافاصله قبل از نویسه‌های محرک که کلمه هستند درج می‌شوند
کاراکترها، به علاوه کاراکتر کلمه محرک.

3. اگر کاراکتر قبل از کلمه و غیر کلمه یا شخصیت هایی که
چک یک کاراکتر کلمه نیست، مجموعه ای از کاراکترها باید از
کاراکترهایی که قبل از کاراکترهای محرک که هیچکدام نیستند درج شده اند
کاراکترها و کاراکترهای کلمه، به علاوه کاراکتر کلمه محرک.

مشخص نیست که آیا lhs آرگومان وارد شده برای ex مختصر و غیر اختصاری
دستورات به این شکل جایگزین می شوند. صرف نظر از اینکه تعویض صورت می گیرد یا نه،
اثر فرمان باید به گونه ای باشد که گویی جایگزینی رخ نداده است.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

ضمیمه کردن
خلاصه:
[1addr] a[اضافه کردن][!]

وارد ex حالت ورودی متن؛ متن ورودی باید بعد از خط مشخص شده قرار گیرد. اگر خط
صفر مشخص شده است، متن باید در ابتدای بافر ویرایش قرار گیرد.

این فرمان باید تحت تأثیر قرار گیرد عدد و خود توند گزینه های ویرایش؛ دنبال کردن
نام فرمان با '!' باعث خواهد شد خود توند تنظیمات گزینه را ویرایش کنید تا تغییر دهید
فقط مدت این دستور

جاری خط: روی آخرین خط ورودی تنظیم کنید. اگر هیچ خطی وارد نشد، روی مقدار مشخص شده تنظیم کنید
خط، یا به خط اول بافر ویرایش اگر خط صفر مشخص شده بود، یا صفر اگر
بافر ویرایش خالی است.

جاری ستون: تنظیم روی غیر .

استدلال
خلاصه:
آر[gs]

لیست آرگومان فعلی را با ورودی فهرست آرگومان فعلی، در صورت وجود، بین آن بنویسید '['
و ']' کاراکتر باشد.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

تغییر دادن
خلاصه:
[2addr] c[هانت][!][تعداد دفعات مشاهده]

وارد ex حالت ورودی متن؛ متن ورودی باید جایگزین خطوط مشخص شده شود. مشخص شده
خطوط باید در بافر بدون نام کپی شوند، که باید به یک بافر حالت خط تبدیل شود.

این فرمان باید تحت تأثیر قرار گیرد عدد و خود توند گزینه های ویرایش؛ دنبال کردن
نام فرمان با '!' باعث خواهد شد خود توند تنظیمات گزینه را ویرایش کنید تا تغییر دهید
فقط مدت این دستور

جاری خط: روی آخرین خط ورودی تنظیم کنید. اگر هیچ خطی وارد نشد، روی خط قبلی تنظیم کنید
آدرس اول یا به خط اول بافر ویرایش اگر هیچ خطی در قبل وجود نداشته باشد
آدرس اول یا در صورت خالی بودن بافر ویرایش به صفر می رسد.

جاری ستون: تنظیم روی غیر .

تغییر دادن فهرست راهنما
خلاصه:
chd[ir][!][فهرست راهنما]
cd[!][فهرست راهنما]

دایرکتوری کاری فعلی را به تغییر دهید فهرست راهنما.

اگر نه فهرست راهنما آرگومان مشخص شده است و صفحه اصلی متغیر محیطی روی یک غیر تنظیم شده است
مقدار پوچ و غیر خالی، فهرست راهنما باید به طور پیش فرض به مقدار نامگذاری شده در صفحه اصلی
متغیر محیطی. اگر صفحه اصلی متغیر محیطی خالی است یا تعریف نشده است
مقدار پیش فرض فهرست راهنما پیاده سازی تعریف شده است.

اگر نه '!' به نام فرمان اضافه می شود و از آن زمان بافر ویرایش اصلاح شده است
آخرین نوشتن کامل، و نام مسیر فعلی با a شروع نمی شود '/'، خواهد بود
یک خطا.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

نسخه
خلاصه:
[2addr] co[py] 1addr [پرچم ها]
[2addr] t 1addr [پرچم ها]

خطوط مشخص شده را بعد از خط مقصد مشخص شده کپی کنید. خط صفر مشخص می کند که
خطوط باید در ابتدای بافر ویرایش قرار گیرند.

جاری خط: روی آخرین خط کپی شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

حذف
خلاصه:
[2addr] d[حذف کردن][بافر][تعداد دفعات مشاهده][پرچم ها]

خطوط مشخص شده را در یک بافر حذف کنید (پیش‌فرض به بافر بی‌نام می‌رود)، که باید
تبدیل به یک بافر حالت خطی شود.

پرچم ها می توانند بلافاصله از نام فرمان پیروی کنند. دیدن فرمان لاین تجزیه in ex.

جاری خط: روی خط بعد از خطوط حذف شده یا آخرین خط در ویرایش تنظیم کنید
بافر اگر آن خط از انتهای بافر ویرایش گذشته باشد یا اگر بافر ویرایش باشد صفر شود
خالی.

جاری ستون: تنظیم روی غیر .

ویرایش
خلاصه:
e[گفت][!][+فرمان][پرونده]
ex[!][+فرمان][پرونده]

اگر نه '!' به نام فرمان اضافه می شود و از آن زمان بافر ویرایش اصلاح شده است
آخرین نوشتن کامل، باید یک خطا باشد.

If پرونده مشخص شده است، محتوای فعلی بافر ویرایش را با جریان فعلی جایگزین کنید
مطالب از پروندهو نام مسیر فعلی را روی آن تنظیم کنید پرونده. اگر پرونده مشخص نشده است، جایگزین کنید
محتویات فعلی بافر ویرایش با محتویات فعلی فایل نامگذاری شده توسط
نام مسیر فعلی اگر به هر دلیلی نمی توان به محتوای فعلی فایل دسترسی داشت،
بافر ویرایش باید خالی باشد.

La +فرمان گزینه باید باشد -محدود شده شخصیت های درون +فرمان می توان
با قبل از آنها با الف فرار کنید شخصیت. در +فرمان باید باشد
به عنوان یک ex بلافاصله پس از اینکه محتویات بافر ویرایش قرار گرفت دستور دهید
جایگزین شده و خط و ستون فعلی تنظیم شده است.

اگر بافر ویرایش خالی است:

جاری خط: روی 0 تنظیم کنید.

جاری ستون: روی 1 تنظیم کنید.

در غیر این صورت، اگر در حین اجرا اجرا شود ex حالت فرمان یا اگر +فرمان آرگومان مشخص شده است:

جاری خط: روی آخرین خط بافر ویرایش تنظیم کنید.

جاری ستون: تنظیم روی غیر .

در غیر این صورت ، اگر پرونده حذف شده است یا به نام مسیر فعلی منجر می شود:

جاری خط: روی خط اول بافر ویرایش تنظیم کنید.

جاری ستون: تنظیم روی غیر .

در غیر این صورت ، اگر پرونده مانند آخرین فایل ویرایش شده است، خط و ستون باید تنظیم شود
به شرح زیر است؛ اگر فایل قبلا ویرایش شده باشد، خط و ستون ممکن است به صورت زیر تنظیم شوند:

جاری خط: روی آخرین مقداری که در آخرین ویرایش آن فایل نگه داشته شده است، تنظیم کنید. اگر این مقدار باشد
یک خط معتبر در بافر ویرایش جدید نیست، روی خط اول بافر ویرایش تنظیم کنید.

جاری ستون: اگر خط فعلی روی آخرین مقداری تنظیم شده باشد که در زمان آخرین فایل موجود بود
ویرایش شده، روی آخرین مقداری که در آخرین ویرایش فایل نگه داشته شده است تنظیم کنید. در غیر این صورت، یا اگر
آخرین مقدار یک ستون معتبر در بافر ویرایش جدید نیست، تنظیم شده بر روی غیر .

در غیر این صورت:

جاری خط: روی خط اول بافر ویرایش تنظیم کنید.

جاری ستون: تنظیم روی غیر .

پرونده
خلاصه:
f[با][پرونده]

اگر یک پرونده آرگومان مشخص شده است، نام مسیر جایگزین باید روی جریان تنظیم شود
pathname، و نام مسیر فعلی باید روی تنظیم شود پرونده.

یک پیام اطلاع رسانی بنویسید. اگر فایل دارای یک نام مسیر فعلی باشد، باید شامل شود
در این پیام؛ در غیر این صورت، پیام باید نشان دهد که نام مسیر فعلی وجود ندارد.
اگر بافر ویرایش حاوی خطوط باشد، شماره خط فعلی و تعداد خطوط موجود در آن
بافر ویرایش باید در این پیام گنجانده شود. در غیر این صورت، پیام باید آن را نشان دهد
بافر ویرایش خالی است. اگر بافر ویرایش از آخرین بار تکمیل شده تغییر کرده باشد
بنویسید، این واقعیت باید در این پیام گنجانده شود. اگر فقط خواندنی گزینه ویرایش تنظیم شده است،
این واقعیت باید در این پیام گنجانده شود. پیام ممکن است حاوی موارد نامشخص دیگری باشد
اطلاعات.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

جهانی
خلاصه:
[2addr] g[لوبال] /الگو/ [دستورات]
[2addr] v /الگو/ [دستورات]

اختیاری '!' شخصیت بعد از جهانی دستور باید مانند اجرای دستور باشد v
فرمان

If الگو خالی است (مثلا "//") یا مشخص نشده است، آخرین عبارت منظم استفاده شده است
در دستور ویرایشگر باید به عنوان استفاده شود الگو. الگو را می توان توسط
کاراکترها (نشان داده شده در خلاصه داستان)، و همچنین هر غیرالفبایی یا غیر
غیر از ، ، ، یا دو نقل قول.

اگر هیچ خطی مشخص نشده باشد، خطوط باید به طور پیش فرض برای کل فایل باشند.

La جهانی و v دستورات از نظر منطقی عملیات دو پاسی هستند. ابتدا خطوط داخل را علامت بزنید
خطوط مشخص شده که برای آنها خط به استثنای پایانه مسابقات
(جهانی) یا مطابقت ندارد (v or جهانی!) الگوی مشخص شده دوم، اجرا کنید ex
دستورات داده شده توسط دستورات، با خط فعلی (".") روی هر خط مشخص شده تنظیم کنید. اگر یک
در طول این فرآیند خطایی رخ می دهد، یا محتوای بافر ویرایش جایگزین می شود (برای
به عنوان مثال، توسط ex :ویرایش فرمان) باید یک پیام خطا نوشته شود و دیگر دستوری وجود نداشته باشد
حاصل از اجرای این دستور پردازش می شود.

چندین ex دستورات را می توان با وارد کردن چند دستور در یک خط مشخص کرد
آ با فرار از هر خط، آنها را محدود کنید با یک
.

اگر هیچ دستوری مشخص نشده باشد:

1. اگر در ex حالت فرمان، باید به گونه ای باشد که چاپ فرمان مشخص شد.

2. در غیر این صورت هیچ دستوری اجرا نمی شود.

برای ضمیمه کردن, تغییر دادنو درج دستورات، متن ورودی باید به عنوان بخشی از
فرمان و خاتمه در صورتی که دستور به لیست پایان دهد می توان آن را حذف کرد
دستورات در باز کن و بصری دستورات را می توان به عنوان یکی از دستورات مشخص کرد که در آن
در صورتی که هر خط علامت گذاری شده باعث می شود ویرایشگر وارد حالت باز یا بصری شود. اگر باز باشد یا
حالت بصری با استفاده از vi Q دستور، خط فعلی باید به بعدی تنظیم شود
خط علامت‌گذاری شده، و حالت باز یا بصری دوباره وارد می‌شود، تا زمانی که لیست خطوط علامت‌گذاری شده باشد
خسته.

La جهانی, vو خنثی کردن دستورات را نمی توان در آن استفاده کرد دستورات. خطوط مشخص شده ممکن است حذف شوند
توسط دستورات اجرا شده برای خطوطی که زودتر از خطوط علامت گذاری شده در فایل رخ می دهند. که در
در این حالت، هیچ فرمانی برای خطوط حذف شده اجرا نمی شود.

اگر جهت جستجوی به خاطر سپرده تنظیم نشده باشد، جهانی و v دستورات باید آن را تنظیم کنند
رو به جلو.

La چاپ خودکار و خود توند گزینه های ویرایش باید برای مدت زمان متوقف شوند g or
v فرمان

جاری خط: اگر هیچ فرمانی اجرا نشد، روی آخرین خط علامت گذاری شده تنظیم کنید. در غیر این صورت، به عنوان
برای اجرا شده مشخص شده است ex دستورات

جاری ستون: اگر هیچ دستوری اجرا نشد، روی غیر ; در غیر این صورت، همانطور که مشخص شده است
برای فرد ex دستورات

قرار دادن
خلاصه:
[1addr] i[قرار دادن][!]

وارد ex حالت ورودی متن؛ متن ورودی باید قبل از خط مشخص شده قرار گیرد. اگر
خط صفر یا 1 است، متن باید در ابتدای بافر ویرایش قرار گیرد.

این فرمان باید تحت تأثیر قرار گیرد عدد و خود توند گزینه های ویرایش؛ دنبال کردن
نام فرمان با '!' باعث خواهد شد خود توند تنظیمات گزینه را ویرایش کنید تا تغییر دهید
فقط مدت این دستور

جاری خط: روی آخرین خط ورودی تنظیم کنید. اگر هیچ خطی وارد نشد، روی خط قبلی تنظیم کنید
خط مشخص شده، یا در صورت عدم وجود خط، به خط اول بافر ویرایش
قبل از خط مشخص شده، یا در صورت خالی بودن بافر ویرایش صفر.

جاری ستون: تنظیم روی غیر .

پیوستن
خلاصه:
[2addr] j[اوین][!][تعداد دفعات مشاهده][پرچم ها]

If تعداد دفعات مشاهده مشخص شده است:

اگر هیچ آدرسی مشخص نشده بود، پیوستن فرمان باید طوری رفتار کند که انگار 2addr بود
خط فعلی و خط فعلی به علاوه تعداد دفعات مشاهده (.،. + تعداد دفعات مشاهده).

اگر یک آدرس مشخص شده بود، پیوستن فرمان باید طوری رفتار کند که انگار 2addr بود
آدرس مشخص شده و آدرس مشخص شده پلاس تعداد دفعات مشاهده (افزونه,افزونه + تعداد دفعات مشاهده).

اگر دو آدرس مشخص می شد، پیوستن فرمان باید به گونه ای رفتار کند که گویی یک اضافی است
آدرس، برابر با آخرین آدرس به علاوه تعداد دفعات مشاهده −1 (addr1,addr2,addr2 + تعداد دفعات مشاهده −1) ،
مشخص شد.

اگر این منجر به آدرس دوم بزرگتر از خط آخر ویرایش شود
بافر، باید تصحیح شود که برابر با آخرین خط بافر ویرایش باشد.

اگر نه تعداد دفعات مشاهده مشخص شده است:

اگر هیچ آدرسی مشخص نشده بود، پیوستن فرمان باید طوری رفتار کند که انگار 2addr بود
خط فعلی و خط بعدی (.،. +1).

اگر یک آدرس مشخص شده بود، پیوستن فرمان باید طوری رفتار کند که انگار 2addr بود
آدرس مشخص شده و خط بعدی (افزونه,افزونه + 1).

متن را از خطوط مشخص شده با هم به یک خط ملحق کنید که جایگزین می شود
خطوط مشخص شده

اگر یک '!' کاراکتر به نام فرمان، the اضافه می شود پیوستن بدون خواهد بود
تغییر هر خط، مستقل از محل فعلی.

در غیر این صورت، در محلی POSIX، خط فعلی را روی اولین خط از خطوط مشخص شده تنظیم کنید.
و سپس برای هر خط بعدی به صورت زیر عمل کنید:

1. پیشرو را دور بریزید کاراکترهای خطی که باید ملحق شوند.

2. اگر خطی که باید به آن بپیوندید اکنون خالی است، آن را حذف کنید و از مراحل 3 تا 5 رد شوید.

3. اگر خط فعلی به a ختم شود ، یا اولین کاراکتر خطی که باید ملحق شود
هست یک ')' شخصیت، بدون تغییر بیشتر به خطوط بپیوندید.

4. اگر آخرین کاراکتر خط فعلی a باشد "."، خطوط را با دو بپیوندید
شخصیت های بین آنها

5. در غیر این صورت، خطوط را با یک تک بپیوندید بین آنها.

جاری خط: روی اولین خط مشخص شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

فهرست
خلاصه:
[2addr] l[است][تعداد دفعات مشاهده][پرچم ها]

این دستور باید معادل ex فرمان:

[2addr] p[طناب][تعداد دفعات مشاهده] l[پرچم ها]

دیدن چاپ.

نقشه
خلاصه:
نقشه[!][lhs rhs]

If lhs و rhs مشخص نشده اند:

1 اگر '!' مشخص شده است، لیست فعلی نقشه های حالت ورودی متن را بنویسید.

2. در غیر این صورت، لیست فعلی نقشه های حالت فرمان را بنویسید.

3. دیگر هیچ کاری نکنید.

پیاده سازی ها ممکن است مجموعه کاراکترهای پذیرفته شده را محدود کنند lhs or rhs، غیر از آن
کاراکترهای قابل چاپ و کاراکترها نباید محدود شوند. اضافی
محدودیت ها باید اجرا شود. در هر دو lhs و rhs، هر شخصیتی می تواند باشد
با الف فرار کرد ‐V، در این صورت از کاراکتر برای تعیین حدود استفاده نمی شود lhs
از جانب rhs، و فرار -V باید دور ریخته شود.

اگر شخصیت '!' به ضمیمه شده است نقشه نام فرمان، نقشه برداری باید موثر باشد
در حالت باز یا ورودی متن بصری به جای باز کن or بصری حالت فرمان این اجازه می دهد
lhs برای داشتن دو متفاوت نقشه تعاریف در همان زمان: یکی برای حالت فرمان و یکی
برای حالت ورودی متن

برای نگاشت حالت فرمان:

هنگامی که lhs به عنوان هر بخشی از a وارد می شود vi فرمان در حالت باز یا بصری (اما نه
به عنوان بخشی از استدلال های فرمان)، عمل باید به گونه ای باشد که گویی
مربوط به rhs وارد شده بود

اگر هر کاراکتری در دستور، به غیر از اولین، با استفاده از a فرار شود
کاراکتر -V، آن کاراکتر نباید بخشی از مطابقت با an باشد lhs.

مشخص نیست که آیا پیاده سازی ها باید پشتیبانی کنند یا خیر نقشه دستور می دهد که در آن lhs
طول بیش از یک کاراکتر است که در آن اولین کاراکتر از lhs is
قابل چاپ

If lhs شامل بیش از یک کاراکتر و کاراکتر اول است '#'، به دنبال
دنباله ای از ارقام مربوط به یک کلید تابع شماره گذاری شده، سپس زمانی که این
کلید تابع تایپ می شود که باید به آن نگاشت شود rhs. نویسه هایی غیر از ارقام
به دنبال '#' شخصیت همچنین نشان دهنده کلید تابعی است که توسط کاراکترها نامگذاری شده است
در lhs پس از '#' و ممکن است به نقشه برداری شود rhs. مشخص نیست چگونه
کلیدهای عملکردی نامگذاری شده اند یا اینکه چه کلیدهای عملکردی پشتیبانی می شوند.

برای نگاشت حالت ورودی متن:

هنگامی که lhs به عنوان هر قسمت از متن وارد شده در ورودی متن باز یا تصویری وارد می شود
حالت ها، عمل باید به گونه ای باشد که گویی متناظر است rhs وارد شده بود

اگر هر کاراکتری در متن ورودی با استفاده از a فرار شود - کاراکتر V، که
شخصیت نباید بخشی از تطابق با یک باشد lhs.

مشخص نیست که آیا lhs متن وارد شده برای بعدی نقشه or نقشه برداری دستورات
جایگزین شده با rhs متن برای اهداف نمایش صفحه؛ صرف نظر از
آیا نمایشگر به گونه ای ظاهر می شود یا نه rhs متن وارد شد،
اثر فرمان باید به گونه ای باشد که lhs متن وارد شد

اگر فقط بخشی از lhs وارد شده است، مشخص نیست ویرایشگر چه مدت منتظر خواهد ماند
قبل از اینکه نویسه‌های وارد شده را به‌عنوان تلقی کنیم، کاراکترهای اضافی، احتمالاً تطبیق دارند
مطابقت ندارد lhs.

La rhs کاراکترها خود باید در معرض نقشه برداری مجدد قرار گیرند، مگر اینکه توسط
la بازنگری گزینه ویرایش، با این تفاوت که اگر کاراکترها در lhs به عنوان کاراکترهای پیشوند در
rhs، این کاراکترها نباید دوباره نقشه برداری شوند.

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

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

علامت
خلاصه:
[1addr] ma[rk] شخصیت
[1addr] k شخصیت

اجراها باید حمایت کنند شخصیت مقادیر یک حرف کوچک POSIX
محل و کاراکترهای نقل قول و تک نقل قول. پشتیبانی از شخصیت های دیگر است
پیاده سازی تعریف شده است.

در صورت اجرای vi m دستور، علامت مشخص شده را روی خط جاری و بر اساس 1 تنظیم کنید
نویسه شماره گذاری شده توسط ستون فعلی، در صورت وجود؛ در غیر این صورت، موقعیت ستون 1.

در غیر این صورت، علامت مشخص شده را روی خط مشخص شده و ابتدا بر اساس 1 شماره گذاری کنید
غیر- غیر- در خط، در صورت وجود؛ در غیر این صورت، آخرین غیر در
خط، در صورت وجود؛ در غیر این صورت، موقعیت ستون 1.

علامت باید با خط همراه باقی بماند تا زمانی که علامت تنظیم مجدد شود یا خط تنظیم شود
حذف شده. اگر خط حذف شده توسط خط بعدی بازیابی شود خنثی کردن دستور، هر علامت قبلی
مرتبط با خط، که بازنشانی نشده است، نیز باید بازیابی شود. هر گونه استفاده از
علامتی که با یک خط فعلی در بافر ویرایش مرتبط نیست باید یک خطا باشد.

نشانه ها ` و ' باید همانطور که قبلاً توضیح داده شد، بلافاصله قبل از موارد زیر تنظیم شود
وقایع در ویرایشگر رخ می دهد:

1. استفاده از "$" عنوان ex نشانی

2. استفاده از عدد اعشاری مثبت به عنوان یک ex نشانی

3. استفاده از دستور جستجو به عنوان یک ex نشانی

4. استفاده از مرجع علامت به عنوان یک ex نشانی

5. استفاده از دستورات حالت باز و بصری زیر: -]، %, (, ), [, ], {,
}

6. استفاده از دستورات حالت باز و بصری زیر: ', G, H, L, M, z اگر
خط فعلی در نتیجه دستور تغییر خواهد کرد

7. استفاده از دستورات حالت باز و بصری: /, ?, N, `, n اگر خط فعلی یا
ستون در نتیجه دستور تغییر خواهد کرد

8. استفاده از ex دستورات حالت: z, خنثی کردن, جهانی, v

برای قوانین 1.، 2.، 3.، و 4.، ` و ' در صورتی که ex فرمان است
تجزیه و تحلیل شده توسط قانون 6.a مشخص شده است. که در فرمان لاین تجزیه in ex.

برای قوانین 5.، 6.، و 7.، ` و ' اگر از دستورات به عنوان استفاده می شود، علامت ها تنظیم نمی شوند
دستورات حرکتی در حالت باز و بصری.

برای قوانین 1.، 2.، 3.، 4.، 5.، 6.، 7.، و 8. ` و ' در صورتی که
فرمان شکست می خورد

La ` و ' علائم باید همانطور که قبلا توضیح داده شد، هر بار که محتوای ویرایش تنظیم شده است
بافر جایگزین می شود (از جمله ویرایش بافر اولیه)، اگر باز یا بصری باشد
حالت، یا اگر در ex حالت و بافر ویرایش قبل از هر دستور یا حرکتی خالی نیست
(از جمله دستورات یا حرکات مشخص شده توسط or -t گزینه ها یا +فرمان
آرگومان) در بافر ویرایش اجرا می شوند. اگر در حالت باز یا بصری باشد، علائم باید باشد
طوری تنظیم کنید که در حال اجرای vi m فرمان؛ در غیر این صورت، گویی در حال اجرای ex علامت فرمان

هنگام تغییر از ex حالت برای باز کردن یا حالت بصری، اگر ` و ' علائم قبلاً وجود ندارد
مجموعه ، ` و ' علامت ها باید همانطور که قبلا توضیح داده شد تنظیم شوند.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

حرکت
خلاصه:
[2addr] m[پیام های جدید] 1addr [پرچم ها]

خطوط مشخص شده را بعد از خط مقصد مشخص شده حرکت دهید. مقصد خط صفر
مشخص می کند که خطوط باید در ابتدای بافر ویرایش قرار گیرند. خواهد بود
اگر خط مقصد در محدوده خطوطی باشد که باید جابجا شوند، یک خطا.

جاری خط: روی آخرین خطوط جابجا شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

بعدی
خلاصه:
n[EXT][!][+فرمان][پرونده ...]

اگر نه '!' به نام فرمان اضافه می شود و از آن زمان بافر ویرایش اصلاح شده است
آخرین نوشتن کامل، باید یک خطا باشد، مگر اینکه فایل با موفقیت به عنوان نوشته شود
مشخص شده توسط خودکار نوشتن گزینه.

اگر یک یا چند فایل مشخص شده باشد:

1. لیست آرگومان را روی نام فایل های مشخص شده تنظیم کنید.

2. مرجع لیست آرگومان فعلی را به عنوان اولین ورودی در لیست آرگومان تنظیم کنید.

3. نام مسیر فعلی را روی اولین نام فایل مشخص شده تنظیم کنید.

در غیر این صورت:

1. اگر نام فایل دیگری در لیست آرگومان بعد از آن وجود نداشته باشد، خطا خواهد بود
نام فایل در حال حاضر ارجاع شده است.

2. نام مسیر فعلی و مرجع فهرست آرگومان فعلی را به نام فایل بعد از آن تنظیم کنید
نام فایلی که در حال حاضر در لیست آرگومان ارجاع داده شده است.

محتویات بافر ویرایش را با محتوای فایلی که با جریان نامگذاری شده است جایگزین کنید
نام مسیر اگر به هر دلیلی نمی توان به محتوای فایل دسترسی پیدا کرد، بافر ویرایش
خالی خواهد بود

این فرمان باید تحت تأثیر قرار گیرد خودکار نوشتن و هر نویسنده گزینه های ویرایش

La +فرمان گزینه باید باشد -محدود شده می توان از شخصیت ها فرار کرد
قبل از آنها با a شخصیت. در +فرمان باید به عنوان یک تفسیر شود ex
دستور بلافاصله پس از جایگزینی محتویات بافر ویرایش و
خط و ستون فعلی تنظیم شده است.

جاری خط: همانطور که برای ویرایش کنید فرمان

جاری ستون: همانطور که برای ویرایش کنید فرمان

شماره
خلاصه:
[2addr] nu[امبر][تعداد دفعات مشاهده][پرچم ها]
[2addr] #[تعداد دفعات مشاهده][پرچم ها]

این دستورات باید معادل ex فرمان:

[2addr] p[طناب][تعداد دفعات مشاهده] #[پرچم ها]

دیدن چاپ.

باز کن
خلاصه:
[1addr] o[قلم] /الگو/ [پرچم ها]

این دستور نیازی به پشتیبانی از پایانه های حالت بلوک یا پایانه های ناکافی ندارد
توانایی ها. اگر ورودی استاندارد، خروجی استاندارد یا خطای استاندارد ترمینال نباشد
دستگاه ها، نتایج نامشخص است.

وارد حالت باز شوید.

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

جاری خط: روی خط مشخص شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

حفظ
خلاصه:
قبل از[خدمت]

بافر ویرایش را به شکلی ذخیره کنید که بعداً با استفاده از آن قابل بازیابی باشد -r گزینه یا توسط
با استفاده از ex بهبود پیدا کن فرمان پس از اینکه فایل حفظ شد، یک پیام ایمیل ارسال می شود
برای کاربر ارسال می شود. این پیام باید با فراخوانی قابل خواندن باشد ایمیل x سودمندی در
پیام باید شامل نام فایل، زمان نگهداری و یک ex فرمان
که می تواند برای بازیابی فایل استفاده شود. اطلاعات اضافی ممکن است در نامه گنجانده شود
پیام

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

چاپ
خلاصه:
[2addr] p[طناب][تعداد دفعات مشاهده][پرچم ها]

خطوط نشان داده شده را بنویسید. اگر تعداد ستون‌ها روی آن باشد، رفتار نامشخص است
نمایش کمتر از تعداد ستون های مورد نیاز برای نوشتن هر کاراکتر در آن است
خطوط در حال نوشتن

کاراکترهای غیر قابل چاپ، به جز ، باید به عنوان پیاده سازی تعریف شده نوشته شود
دنباله های چند شخصیتی

اگر # پرچم مشخص شده است یا عدد گزینه ویرایش تنظیم شده است، هر خط باید قبل از آن باشد
با شماره خط آن در قالب زیر:

"% 6d ", <خط عدد>

اگر l پرچم مشخص شده است یا فهرست گزینه ویرایش تنظیم شده است:

1. کاراکترهای فهرست شده در جلد تعاریف پایه POSIX.1-2008، جدول 5-1,
در رفتن دنباله و مرتبط است اعمال باید به عنوان فرار مربوطه نوشته شود
توالی.

2. کاراکترهای غیرقابل چاپ که در جلد تعاریف پایه POSIX.1-2008 نیستند، جدول
5-1, در رفتن دنباله و مرتبط است اعمال باید به صورت هشت رقمی سه رقمی نوشته شود
شماره (با یک قبلی ) برای هر بایت در کاراکتر (مهمترین
ابتدا بایت).

3. انتهای هر خط باید با علامت علامت گذاری شود "$"، و تحت اللفظی "$" شخصیت های درون
خط باید با حرف قبل نوشته شود .

خطوط طولانی باید تا شوند. طولی که در آن تا شدن اتفاق می افتد نامشخص است، اما باید
با توجه به تعداد ستون های ترمینال برای ترمینال خروجی مناسب باشد.

اگر یک خط تا شده است، و l پرچم مشخص نشده است و فهرست گزینه ویرایش تنظیم نشده است،
مشخص نیست که آیا یک کاراکتر چند ستونی در موقعیت تاشو از هم جدا شده است یا خیر.
نباید دور ریخته شود.

جاری خط: روی آخرین خط نوشته شده تنظیم کنید.

جاری ستون: اگر خط فعلی بدون تغییر باشد، بدون تغییر. در غیر این صورت، روی غیر .

قرار دادن
خلاصه:
[1addr] pu[t][بافر]

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

جاری خط: روی آخرین خط وارد شده به بافر ویرایش تنظیم کنید.

جاری ستون: تنظیم روی غیر .

ترک
خلاصه:
q[خب][!]

اگر نه '!' به نام فرمان اضافه می شود:

1. اگر بافر ویرایش از آخرین نوشتن کامل تغییر کرده باشد، باید یک باشد
خطا.

2. اگر پس از نام فایلی که در حال حاضر به آن ارجاع داده شده است، در لیست آرگومان نام فایل وجود دارد،
و آخرین فرمان a نبود ترک, wq, خروج، یا ZZ (نگاه کنید به خروج) فرمان، باید یک باشد
خطا.

در غیر این صورت جلسه ویرایش را خاتمه دهید.

خواندن
خلاصه:
[1addr] r[EAD][!][پرونده]

If '!' اولین غیر نیست برای دنبال کردن نام فرمان، یک کپی از مشخص شده است
فایل باید بعد از خط مشخص شده به بافر ویرایش اضافه شود. خط صفر را مشخص می کند
که کپی باید در ابتدای بافر ویرایش قرار گیرد. تعداد خطوط و
بایت های خوانده شده باید نوشته شوند. اگر نه پرونده نامگذاری شده است، نام مسیر فعلی باید باشد
پیش فرض اگر نام مسیر فعلی وجود ندارد، پس پرونده به نام مسیر فعلی تبدیل می شود. اگر
هیچ نام مسیر فعلی یا وجود ندارد پرونده عملوند، باید یک خطا باشد. مشخص کردن الف پرونده که
از نوع منظم نیست باید نتایج نامشخصی داشته باشد.

در غیر این صورت ، اگر پرونده مقدم است '!'، بقیه خط بعد از '!' باید '%',
'#'و '!' کاراکترها همانطور که در توضیح داده شد گسترش یافتند فرمان لاین تجزیه in ex.

La ex سپس ابزار باید دو آرگومان را به برنامه ای که توسط ویرایش پوسته نامگذاری شده است ارسال کند
گزینه؛ اول باید باشد و دومی باید استدلال های بسط یافته به خواندن
دستور به عنوان یک آرگومان واحد ورودی استاندارد برنامه باید روی مقدار تنظیم شود
ورودی استاندارد از ex برنامه زمانی که فراخوانی شد خطای استاندارد و استاندارد
خروجی برنامه باید بعد از خط مشخص شده به بافر ویرایش اضافه شود.

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

معنی خاص از '!' پس از خواندن فرمان را می توان با فرار لغو کرد
آن را با یک شخصیت.

جاری خط: اگر هیچ خطی به بافر ویرایش اضافه نشود، بدون تغییر. در غیر این صورت، اگر در باز است
یا حالت بصری، روی اولین خط وارد شده به بافر ویرایش تنظیم کنید. در غیر این صورت، تنظیم کنید
آخرین خط وارد شده به بافر ویرایش.

جاری ستون: تنظیم روی غیر .

بهبود یافتن
خلاصه:
rec[روی][!] پرونده

اگر نه '!' به نام فرمان اضافه می شود و از آن زمان بافر ویرایش اصلاح شده است
آخرین نوشتن کامل، باید یک خطا باشد.

اگر نه پرونده عملوند مشخص می شود، سپس از نام مسیر فعلی استفاده می شود. اگر وجود ندارد
نام مسیر فعلی یا پرونده عملوند، باید یک خطا باشد.

اگر قبلاً هیچ اطلاعات بازیابی در مورد آن ذخیره نشده است پروندهاز بهبود پیدا کن فرمان باید
یکسان رفتار کنید ویرایش کنید دستور، و یک پیام اطلاعاتی به این منظور باید
نوشته شود.

در غیر این صورت، نام مسیر فعلی را روی آن تنظیم کنید پروندهو محتوای فعلی ویرایش را جایگزین کنید
بافر با محتویات بازیابی شده پرونده. اگر چندین نمونه از فایل وجود داشته باشد
برای بازیابی، آخرین ذخیره شده باید بازیابی شود، و اطلاعاتی
پیامی مبنی بر وجود نسخه های قبلی فایل قابل بازیابی باید باشد
نوشته شده است. ویرایشگر باید طوری رفتار کند که انگار محتویات بافر ویرایش قبلاً وجود داشته است
اصلاح شده.

جاری پرونده: همانطور که برای ویرایش کنید فرمان

جاری ستون: همانطور که برای ویرایش کنید فرمان

باز پیچی
خلاصه:
rew[را انتخاب نمایید][!]

اگر نه '!' به نام فرمان اضافه می شود و از آن زمان بافر ویرایش اصلاح شده است
آخرین نوشتن کامل، باید یک خطا باشد، مگر اینکه فایل با موفقیت به عنوان نوشته شود
مشخص شده توسط خودکار نوشتن گزینه.

اگر لیست آرگومان خالی باشد، باید خطا باشد.

مرجع فهرست آرگومان فعلی و نام مسیر فعلی باید روی اول تنظیم شود
نام فایل در لیست آرگومان

محتویات بافر ویرایش را با محتوای فایلی که با جریان نامگذاری شده است جایگزین کنید
نام مسیر اگر به هر دلیلی نمی توان به محتوای فایل دسترسی پیدا کرد، بافر ویرایش
خالی خواهد بود

این فرمان باید تحت تأثیر قرار گیرد خودکار نوشتن و هر نویسنده گزینه های ویرایش

جاری خط: همانطور که برای ویرایش کنید فرمان

جاری ستون: همانطور که برای ویرایش کنید فرمان

تنظیم
خلاصه:
ببین[t][انتخاب[=[ارزش]] ...][نهانتخاب ...][انتخاب؟ ...][تمام]

هنگامی که هیچ آرگومان مشخص نشده است، مقدار the را بنویسید مدت گزینه ویرایش و آن گزینه ها
که مقادیر آن از تنظیمات پیش فرض تغییر کرده است. وقتی استدلال تمام is
مشخص شده، تمام مقادیر گزینه را بنویسید.

دادن نام گزینه و به دنبال آن کاراکتر "؟" باعث ارزش فعلی آن می شود
گزینه ای برای نوشته شدن را "؟" را می توان با صفر یا بیشتر از نام گزینه جدا کرد
شخصیت ها. در "؟" فقط برای گزینه های با ارزش بولی ضروری است. بولی
گزینه ها را می توان با فرم مقادیر داد تنظیم انتخاب برای روشن کردن آنها یا تنظیم نهانتخاب به نوبه خود
آنها را خاموش کنید. گزینه های رشته و عددی را می توان با فرم اختصاص داد تنظیم انتخاب=ارزش. هرکی
کاراکترهای رشته‌ها را می‌توان همانطور که قبل از هر کدام قرار داد گنجاند با یک
فرار کردن . بیش از یک گزینه را می توان با یک دستور مجموعه واحد تنظیم یا فهرست کرد
با تعیین چندین آرگومان که هر کدام با یک یا چند آرگومان از آرگومان بعدی جدا می شوند
کاراکتر باشد.

دیدن ویرایش گزینه in ex برای جزئیات در مورد گزینه های خاص.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

صدف
خلاصه:
ش[مقیاس طول]

برنامه ای که در آن نامگذاری شده است را فراخوانی کنید صدف گزینه ویرایش با آرگومان واحد i (در ارتباط بودن
حالت). ویرایش باید با خروج برنامه از سر گرفته شود.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

منبع
خلاصه:
بنابراین[اصرار] پرونده

بخوانید و اجرا کنید ex دستورات از پرونده. خطوط موجود در فایل که خطوط خالی هستند باید باشند
نادیده گرفته شد

جاری خط: همانطور که برای فرد مشخص شده است ex دستورات

جاری ستون: همانطور که برای فرد مشخص شده است ex دستورات

جایگزین
خلاصه:
[2addr] s[انستیتو][/الگو/تکرار/[گزینه های][تعداد دفعات مشاهده][پرچم ها]]
[2addr] &[گزینه های][تعداد دفعات مشاهده][پرچم ها]]
[2addr] ~[گزینه های][تعداد دفعات مشاهده][پرچم ها]]

نمونه اول الگو را جایگزین کنید الگو توسط رشته تکرار روی هر مشخص شده
خط (دیدن منظم عبارات in ex و جایگزینی رشته in ex.) هر غیر الفبایی،
غیر- جدا کننده غیر از ، '|'، می توان از دو نقل قول استفاده کرد
بجای '/'. از کاراکترها می توان برای فرار از مرزها استفاده کرد،
شخصیت ها و دیگر شخصیت های خاص.

جداکننده انتهایی را می توان حذف کرد الگو و یا از تکرار در پایان فرمان
خط اگر هر دو الگو و تکرار مشخص نشده اند یا خالی هستند (به عنوان مثال، "//"
آخر s دستور باید تکرار شود اگر فقط الگو مشخص نشده است یا خالی است، آخرین
عبارت منظم مورد استفاده در ویرایشگر باید به عنوان الگو استفاده شود. اگر فقط تکرار نیست
مشخص شده یا خالی است، الگو باید با چیزی جایگزین شود. اگر کل
الگوی جایگزینی است '%'، آخرین الگوی جایگزینی به یک s دستور استفاده شود.

ورود a که در تکرار (که نیاز به فرار دارد که در ex حالت
و یک فرار -V در حالت باز یا vi mode) باید خط را در آن نقطه تقسیم کند،
ایجاد یک خط جدید در بافر ویرایش در باید دور ریخته شود.

If گزینه های نامه را شامل می شود 'g' (جهانی)، همه نمونه های غیر همپوشانی الگو
در خط باید جایگزین شود.

If گزینه های نامه را شامل می شود 'ج' (تایید، سپس قبل از هر تعویض خط باید
نوشته شود؛ خط نوشته شده باید همه تعویض های قبلی را منعکس کند. در مورد زیر
خط، کاراکترها باید در زیر کاراکترهای خطی نوشته شوند
قبل از الگو جایگزین شود، و '^' کاراکترهای نوشته شده در زیر کاراکترها
شامل در الگو جایگزین شود. در ex ابزار باید منتظر پاسخ از
کاربر. پاسخ مثبت باید باعث شود که تعویض انجام شود، در حالی که هر پاسخ دیگری
ورودی نباید جایگزین شود. پاسخ مثبت باید شامل یک خط باشد
با پاسخ مثبت (همانطور که توسط محل فعلی تعریف شده است) در ابتدای
خط این خط باید به همان روشی که در آن نوشته شده است، در معرض ویرایش قرار گیرد ex خط فرمان.

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

اگر جهت جستجوی به خاطر سپرده تنظیم نشده باشد، s فرمان باید آن را به سمت جلو تنظیم کند.

در خلاصه دوم، & دستور باید تعویض قبلی را تکرار کند، گویی که &
دستور با:

s/الگو/تکرار/

جایی که الگو و تکرار همانطور که در قبلی مشخص شده است s, &، یا ~ فرمان

در خلاصه سوم، ~ دستور باید تعویض قبلی را تکرار کند، گویی که '~'
جایگزین شدند:

s/الگو/تکرار/

جایی که الگو باید آخرین عبارت منظم مشخص شده برای ویرایشگر باشد، و تکرار باید
از تعویض قبلی باشد (از جمله & و ~) فرمان.

این دستورات باید تحت تأثیر قرار گیرند LC_MESSAGES متغیر محیطی.

جاری خط: روی آخرین خطی که جایگزینی در آن رخ داده است، یا بدون تغییر در صورت عدم تغییر تنظیم کنید
تعویض رخ داد

جاری ستون: تنظیم روی غیر .

معلق
خلاصه:
سو[خرج کردن][!]
st[op][!]

اجازه دهید کنترل به فرآیند فراخوانی بازگردد. ex خود را به حالت تعلیق در می آورد که گویی دارد
سیگنال SIGTSTP را دریافت کرد. تعلیق تنها در صورتی رخ می دهد که کنترل شغل در آن فعال باشد
پوسته فراخوانی (به توضیحات مراجعه کنید تنظیم -m).

این دستورات باید تحت تأثیر قرار گیرند خودکار نوشتن و هر نویسنده گزینه های ویرایش

در حال حاضر مشکوک شخصیت (نگاه کنید به استی) باید معادل باشد تعلیق فرمان

برچسب
خلاصه:
تا[g][!] برچسب زدن

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

La برچسب فرمان باید جستجو کند برچسب زدن در فایل های برچسبی که توسط برچسب ویرایش کنید
گزینه، به ترتیبی که مشخص شده اند، تا زمانی که به آن اشاره شود برچسب زدن یافت می شود. فایل ها
باید از ابتدا تا انتها جستجو شود. اگر هیچ مرجعی یافت نشد، خطا است
و یک پیغام خطا در این مورد نوشته شود. اگر مرجع یافت نشد، یا اگر
هنگام پردازش فایلی که در آن اشاره شده است خطایی رخ می دهد برچسب گزینه ویرایش، باید یک باشد
خطا، و در اولین وقوع چنین خطایی یک پیام خطا نوشته می شود.

در غیر این صورت، اگر فایل برچسب حاوی یک الگو باشد، الگو باید به عنوان یک الگو در نظر گرفته شود
عبارت مورد استفاده در ویرایشگر؛ به عنوان مثال، برای اهداف s فرمان

اگر برچسب زدن در فایلی با نامی متفاوت از نام مسیر فعلی قرار دارد، آن را تنظیم کنید
نام مسیر فعلی به نام آن فایل، و محتوای بافر ویرایش را جایگزین کنید
با محتویات آن فایل در این صورت اگر خیر '!' به نام فرمان اضافه می شود،
و بافر ویرایش از آخرین نوشتن کامل تغییر کرده است، باید یک خطا باشد،
مگر اینکه فایل با موفقیت نوشته شده باشد خودکار نوشتن گزینه.

این فرمان باید تحت تأثیر قرار گیرد خودکار نوشتن, برچسب, Taglengthو هر نویسنده ویرایش کنید
گزینه.

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

اگر فایل تگ ها حاوی یک الگو بود، روی اولین رخداد الگو در آن تنظیم کنید
فایل. اگر هیچ الگوی منطبقی یافت نشد، یک پیام خطا باید نوشته شود و جریان فعلی
خط باید همانطور که برای ویرایش کنید فرمان

جاری ستون: اگر فایل برچسب حاوی یک مرجع شماره خط و آن شماره خط باشد
بزرگتر از آخرین خط در بافر ویرایش نبود، یا اگر فایل تگ ها حاوی الف بود
الگو و آن الگو پیدا شد، روی غیر . در غیر این صورت، به عنوان مشخص شده برای
la ویرایش کنید فرمان

بی اختصار
خلاصه:
una[مختصر] lhs

If lhs یک ورودی در لیست فعلی اختصارات نیست (نگاه کنید به مخفف) خواهد بود
یک خطا. در غیر این صورت حذف کنید lhs از لیست اختصارات

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

خنثی کردن
خلاصه:
u[n آیا]

تغییرات ایجاد شده توسط آخرین فرمانی که محتوای ویرایش را تغییر داده است، معکوس کنید
بافر، از جمله خنثی کردن. برای این منظور ، جهانی, v, باز کنو بصری دستورات و
دستورات حاصل از اجرای بافر و بسط کاراکترهای نگاشت شده در نظر گرفته می شوند
دستورات واحد

اگر هیچ اقدامی که قابل لغو باشد قبل از خنثی کردن دستور، باید یک خطا باشد.

اگر خنثی کردن فرمان خطوطی را که علامت گذاری شده بودند بازیابی می کند، علامت نیز باید بازیابی شود
مگر اینکه پس از حذف خطوط بازنشانی شده باشد.

جاری خط:

1. اگر خطوطی به فایل اضافه یا تغییر داده شده است، روی اولین خط اضافه یا تغییر یافته تنظیم کنید.

2. در صورت وجود خط قبل از حذف اولین خط را تنظیم کنید.

3. اگر بافر ویرایش خالی نیست، روی 1 تنظیم کنید.

4. روی صفر تنظیم کنید.

جاری ستون: تنظیم روی غیر .

برداشتن نقشه
خلاصه:
unm[ap][!] lhs

If '!' به نام فرمان اضافه می شود و if lhs یک ورودی در لیست متن نیست
تعاریف نقشه حالت ورودی، باید یک خطا باشد. در غیر این صورت حذف کنید lhs از لیست
تعاریف نقشه حالت ورودی متن

اگر نه '!' به نام فرمان اضافه می شود و if lhs یک ورودی در لیست نیست
تعاریف نقشه حالت فرمان، باید یک خطا باشد. در غیر این صورت حذف کنید lhs از لیست
تعاریف نقشه حالت فرمان

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

نسخه
خلاصه:
ve[جوشکاری]

پیامی حاوی اطلاعات نسخه برای ویرایشگر بنویسید. قالب پیام
نامشخص است

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

بصری
خلاصه:
[1addr] vi[سه بعدی][نوع][تعداد دفعات مشاهده][پرچم ها]

If ex در حال حاضر در حالت باز یا بصری، خلاصه و رفتار دستور بصری است
همان خواهد بود ویرایش کنید دستور، همانطور که توسط ویرایش.

در غیر این صورت، این دستور نیازی به پشتیبانی در پایانه های حالت بلوک یا پایانه های با
قابلیت های ناکافی اگر ورودی استاندارد، خروجی استاندارد یا خطای استاندارد نباشد
دستگاه های ترمینال، نتایج نامشخص است.

If تعداد دفعات مشاهده مشخص شده است، مقدار پنجره گزینه ویرایش باید روی تعداد دفعات مشاهده (مانند
توصیف شده در پنجره) اگر '^' نوع کاراکتر نیز مشخص شد پنجره ویرایش کنید
گزینه باید قبل از استفاده توسط کاراکتر نوع تنظیم شود.

وارد حالت بصری شوید. اگر نوع مشخص نشده است، به این صورت است که الف نوع of '+' بود
مشخص شده. در نوع اثرات زیر را ایجاد خواهد کرد:

+ ابتدای خط مشخص شده را در بالای صفحه نمایش قرار دهید.

- انتهای خط مشخص شده را در پایین نمایشگر قرار دهید.

. ابتدای خط مشخص شده را در وسط صفحه نمایش قرار دهید.

^ اگر خط مشخص شده کمتر یا مساوی با مقدار باشد پنجره گزینه ویرایش،
خط را روی 1 قرار دهید؛ در غیر این صورت، خط را با مقدار the کاهش دهید پنجره ویرایش کنید
گزینه منهای 1. ابتدای این خط را نزدیک به پایین قرار دهید
خطوط تا حد امکان نمایش داده می شود، در حالی که همچنان مقدار the را نمایش می دهد پنجره ویرایش کنید
گزینه تعداد خطوط

جاری خط: روی خط مشخص شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

نوشتن
خلاصه:
[2addr] w[مراسم][!][>>][پرونده]
[2addr] w[مراسم][!][پرونده]
[2addr] wq[!][>>][پرونده]

اگر هیچ خطی مشخص نشده باشد، خطوط باید به طور پیش فرض برای کل فایل باشند.

دستور wq معادل a خواهد بود نوشتن دستور به دنبال آن a ترک فرمان؛ wq!
معادل خواهد بود نوشتن! و پس از آن ترک. در هر دو مورد، اگر نوشتن فرمان
شکست می خورد ، ترک نباید تلاش کرد.

اگر نام دستور با یک یا چند مورد دنبال نشود شخصیت ها، یا پرونده نیست
قبل از آن الف '!' شخصیت، نوشتن باید به یک فایل باشد.

1. اگر >> آرگومان مشخص شده است، و فایل از قبل وجود دارد، خطوط باید باشند
به جای جایگزینی محتویات آن به فایل اضافه شد. اگر >> استدلال است
مشخص شده است، و فایل از قبل وجود ندارد، مشخص نیست که آیا نوشتن
به گونه ای پیش خواهد رفت که گویی >> آرگومان مشخص نشده بود یا اینکه نوشتن با شکست مواجه خواهد شد.

2. اگر فقط خواندنی گزینه ویرایش تنظیم شده است (نگاه کنید به فقط خواندنینوشتن شکست خواهد خورد.

3 اگر پرونده مشخص شده است، و نام مسیر فعلی نیست، و فایل وجود دارد، the نوشتن
شکست خواهد خورد.

4 اگر پرونده مشخص نشده است، باید از نام مسیر فعلی استفاده شود. اگر جریان نداشته باشد
نام مسیر، نوشتن فرمان شکست خواهد خورد

5. اگر از نام مسیر فعلی استفاده شده باشد، و نام مسیر فعلی توسط آن تغییر کرده باشد پرونده
or خواندن دستورات، و فایل وجود دارد، نوشتن شکست خواهد خورد. اگر نوشتن is
موفق، بعدی نوشتنs نباید به این دلیل از کار بیفتد (مگر اینکه جریان فعلی
نام مسیر دوباره تغییر می کند).

6. اگر کل بافر ویرایش نوشته نمی شود و فایلی که باید نوشته شود وجود داشته باشد،
نوشتن شکست خواهد خورد.

برای قوانین 1.، 2.، 3.، و 5.، نوشتن را می توان با اضافه کردن کاراکتر مجبور کرد '!' به
نام فرمان

برای قوانین 2.، 3.، و 5.، نوشتن را می توان با تنظیم مجبور کرد هر نویسنده گزینه ویرایش

آزمایش‌های اضافی تعریف‌شده توسط پیاده‌سازی ممکن است باعث ایجاد این مشکل شوند نوشتن شکست خوردن

اگر بافر ویرایش خالی باشد، یک فایل بدون محتوای نوشته می شود.

یک پیام اطلاعاتی باید با ذکر تعداد خطوط و بایت های نوشته شده نوشته شود.

در غیر این صورت، اگر دستور با یک یا چند مورد دنبال شود کاراکترها، و فایل است
قبل از '!'، بقیه خط بعد از '!' باید '%', '#'و '!'
کاراکترها همانطور که در توضیح داده شد گسترش یافتند فرمان لاین تجزیه in ex.

La ex سپس ابزار باید دو آرگومان را به برنامه ارسال کند که توسط the نامگذاری شده است صدف ویرایش کنید
گزینه؛ اول باید باشد و دومی باید استدلال های بسط یافته به نوشتن
دستور به عنوان یک آرگومان واحد خطوط مشخص شده باید روی ورودی استاندارد نوشته شوند
از فرمان خطای استاندارد و خروجی استاندارد برنامه، در صورت وجود، باید باشد
همانطور که برای چاپ فرمان اگر آخرین کاراکتر در آن خروجی a نباشد
، آ باید در انتهای خروجی نوشته شود.

معنی خاص از '!' پس از نوشتن فرمان را می توان با فرار لغو کرد
آن را با یک شخصیت.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

نوشتن و خروج
خلاصه:
[2addr] x[it][!][پرونده]

اگر بافر ویرایش از آخرین بار تکمیل نشده است نوشتن, خروج باید باشد
معادل ترک فرمان، یا اگر a '!' به نام فرمان، به اضافه می شود ترک!.

در غیر این صورت، خروج معادل خواهد بود wq فرمان، یا اگر a '!' به ضمیمه شده است
نام فرمان، به wq!.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

یانک
خلاصه:
[2addr] ya[nk][بافر][تعداد دفعات مشاهده]

خطوط مشخص شده را در بافر مشخص شده (به طور پیش فرض، بافر بدون نام) کپی کنید
باید به یک بافر حالت خطی تبدیل شود.

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

تنظیم کردن پنجره
خلاصه:
[1addr] z[!][نوع ...][تعداد دفعات مشاهده][پرچم ها]

اگر خطی مشخص نشده باشد، خط فعلی باید پیش فرض باشد. اگر نوع به عنوان حذف شده است
خوب، مقدار خط فعلی ابتدا باید 1 افزایش یابد. در صورت افزایش جریان
خط باعث بزرگتر شدن آن از آخرین خط در بافر ویرایش می شود، باید یک باشد
خطا.

اگر وجود دارد شخصیت های بین نوع استدلال و موارد قبل z نام فرمان
یا اختیاری '!' شخصیت، باید یک خطا باشد.

If تعداد دفعات مشاهده مشخص شده است، مقدار پنجره گزینه ویرایش باید روی تعداد دفعات مشاهده (مانند
توصیف شده در پنجره) اگر تعداد دفعات مشاهده حذف شده است، به طور پیش فرض باید 2 برابر مقدار آن باشد
حرکت گزینه ویرایش، یا اگر ! مشخص شد، تعداد خطوط نمایشگر منهای 1.

If نوع حذف شده است، پس تعداد دفعات مشاهده خطوطی که با خط مشخص شده شروع می شوند باید نوشته شوند.
در غیر این صورت، تعداد دفعات مشاهده خطوطی که با خط مشخص شده توسط نوع استدلال باید باشد
نوشته شده است.

La نوع آرگومان باید خطوط نوشته شده را تغییر دهد. مقادیر ممکن از نوع مناطق
به شرح زیر است:

- خط مشخص شده باید با مقدار زیر کاهش یابد:

(((عدد of ``-'' شخصیت ها) x تعداد دفعات مشاهده) -1)

اگر محاسبه به عددی کمتر از 1 منجر شود، خطا خواهد بود. نوشتن
خطوط از بافر ویرایش، که از مقدار جدید خط شروع می شود، تا تعداد دفعات مشاهده خطوط یا
آخرین خط در بافر ویرایش نوشته شده است.

+ خط مشخص شده باید با مقدار زیر افزایش یابد:

(((عدد of "+" شخصیت ها) 1) x تعداد دفعات مشاهده) +1

اگر محاسبه به عددی بزرگتر از خط آخر در ویرایش منجر شود
بافر، باید یک خطا باشد. خطوطی را از بافر ویرایش بنویسید، از جدید شروع کنید
ارزش خط، تا تعداد دفعات مشاهده خطوط یا آخرین خط در بافر ویرایش بوده است
نوشته شده است.

=،. اگر بیش از یک مجرد "." or '=' مشخص شده است، باید خطا باشد. به شرح زیر
اقداماتی انجام شود:

1 اگر تعداد دفعات مشاهده صفر است، چیزی نباید نوشته شود.

2. تعداد زیادی از را بنویسید N خطوط قبل از خط فعلی در بافر ویرایش به عنوان
وجود داشته باشد. اگر تعداد دفعات مشاهده or '!' مشخص شد، N باید باشد:

(تعداد دفعات مشاهده −1) /2

در غیر این صورت، N باید باشد:

(تعداد دفعات مشاهده 3) /2

If N عددی کوچکتر از 3 است، هیچ خطی نباید نوشته شود.

3 اگر '=' به عنوان کاراکتر نوع مشخص شد، یک خط متشکل از
تعداد ستون های نمایشگر تقسیم بر دو یا 40 کمتر است '-'
کاراکتر باشد.

4. خط فعلی را بنویسید.

5. مرحله 3 را تکرار کنید.

6. تعداد زیادی از را بنویسید N خطوط بعد از خط فعلی در بافر ویرایش وجود دارد.
N باید مانند مرحله 2 تعریف شود N عددی کوچکتر از 3 است، هیچ خطی نباید باشد
نوشته شده است. اگر تعداد دفعات مشاهده کمتر از 3 باشد، هیچ خطی نباید نوشته شود.

^ خط مشخص شده باید با مقدار زیر کاهش یابد:

(((عدد of ``^'' شخصیت ها) + 1) x تعداد دفعات مشاهده) -1

اگر محاسبه به عددی کمتر از 1 منجر شود، خطا خواهد بود. نوشتن
خطوط از بافر ویرایش، که از مقدار جدید خط شروع می شود، تا تعداد دفعات مشاهده خطوط یا
آخرین خط در بافر ویرایش نوشته شده است.

جاری خط: روی آخرین خط نوشته شده تنظیم کنید، مگر اینکه نوع آن باشد =، در این صورت، روی را تنظیم کنید
خط مشخص شده

جاری ستون: تنظیم روی غیر .

در رفتن
خلاصه:
! فرمان
[افزونه]! فرمان

محتویات خط بعد از '!' باید '%', '#'و '!' شخصیت ها گسترش یافتند
همانطور که در توضیح داده شده است فرمان لاین تجزیه in ex. اگر بسط باعث ایجاد متن خط شود
برای تغییر، باید دوباره نمایش داده شود، قبل از یک تک '!' شخصیت.

La ex ابزار باید برنامه ای را که توسط صدف گزینه ویرایش دو تا بگذرد
آرگومان های برنامه؛ اول باید باشد و دومی منبسط است
استدلال به ! دستور به عنوان یک آرگومان واحد

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

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

اگر در ex حالت، تک '!' وقتی برنامه کامل شد کاراکتر باید نوشته شود.

این فرمان باید تحت تأثیر قرار گیرد صدف و هشدار دادن گزینه های ویرایش اگر هیچ خطی وجود ندارد
مشخص شده، این دستور باید تحت تاثیر قرار گیرد خودکار نوشتن و هر نویسنده گزینه های ویرایش اگر
خطوط مشخص شده است، این دستور باید تحت تاثیر قرار گیرد چاپ خودکار گزینه ویرایش

جاری خط:

1. اگر هیچ خطی مشخص نشده باشد، بدون تغییر.

2. در غیر این صورت، اگر خطی خوانده شد، روی آخرین خط خوانده شده تنظیم کنید.

3. در غیر این صورت، خط قبل از اولین خط از خطوط مشخص شده، اگر آن خط را تنظیم کنید
وجود دارد

4. در غیر این صورت، اگر بافر ویرایش خالی نیست، خط اول بافر ویرایش را تنظیم کنید.

5. در غیر این صورت، صفر را تنظیم کنید.

جاری ستون: اگر هیچ خطی مشخص نشده باشد، بدون تغییر. در غیر این صورت، روی غیر .

تغییر ترک کرد
خلاصه:
[2addr] <[<...][تعداد دفعات مشاهده][پرچم ها]

خطوط مشخص شده را به ابتدای خط تغییر دهید. تعداد موقعیت های ستونی که باید باشد
shifted باید تعداد کاراکترهای دستوری برابر با مقدار باشد عرض شیفت ویرایش کنید
گزینه. فقط پیشرو کاراکترها باید حذف یا به کاراکترهای دیگر تغییر کنند
شخصیت ها در حال تغییر؛ سایر شخصیت ها تحت تأثیر قرار نخواهند گرفت.

خطوطی که باید جابجا شوند باید در بافر بی نام کپی شوند، که به یک خط تبدیل می شود.
بافر حالت

این فرمان باید تحت تأثیر قرار گیرد چاپ خودکار گزینه ویرایش

جاری خط: روی آخرین خط در خطوط مشخص شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

تغییر درست
خلاصه:
[2addr] >[> ...][تعداد دفعات مشاهده][پرچم ها]

خطوط مشخص شده را از ابتدای خط دور کنید. تعداد موقعیت های ستون
برای جابجایی باید تعداد کاراکترهای فرمان ضربدر مقدار باشد عرض شیفت
گزینه ویرایش تغییر باید با افزودن انجام شود کاراکترها به عنوان پیشوند
خط یا تغییر پیشرو شخصیت ها را به دیگران تبدیل کنید شخصیت ها. خطوط خالی
تغییر نخواهد کرد.

خطوطی که باید جابجا شوند باید در بافر بی نام کپی شوند، که به یک خط تبدیل می شود.
بافر حالت

این فرمان باید تحت تأثیر قرار گیرد چاپ خودکار گزینه ویرایش

جاری خط: روی آخرین خط در خطوط مشخص شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

-D
خلاصه:
-دی

بعدی را بنویسید n خطوط، جایی که n حداقل مقادیر از است حرکت گزینه ویرایش و
تعداد خطوط بعد از خط فعلی در بافر ویرایش. اگر خط فعلی است
آخرین خط بافر ویرایش باید یک خطا باشد.

جاری خط: روی آخرین خط نوشته شده تنظیم کنید.

جاری ستون: تنظیم روی غیر .

نوشتن لاین شماره
خلاصه:
[1addr] = [پرچم ها]

If خط مشخص نشده است، به طور پیش فرض باید به آخرین خط در بافر ویرایش برسد. نوشتن
شماره خط خط مشخص شده

جاری خط: بدون تغییر

جاری ستون: بدون تغییر

اجرا کردن
خلاصه:
[2addr] @ بافر
[2addr] * بافر

اگر هیچ بافری مشخص نشده باشد یا به صورت مشخص شده باشد '@' or '*'آخرین بافر اجرا شده باید باشد
استفاده شده. اگر هیچ بافر قبلی اجرا نشده باشد، یک خطا خواهد بود.

برای هر خط مشخص شده توسط آدرس ها، خط فعلی را تنظیم کنید (".") به موارد مشخص شده
خط، و محتوای نامگذاری شده را اجرا کنید بافر (همانطور که در آن زمان بودند @ فرمان
اعدام شد) به عنوان ex دستورات برای هر خط از یک بافر حالت خطی، و همه به جز آخرین
خط یک بافر حالت کاراکتر، the ex تجزیه کننده فرمان باید طوری رفتار کند که گویی خط وجود دارد
خاتمه یافته توسط a .

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

جاری خط: همانطور که برای فرد مشخص شده است ex دستورات

جاری ستون: همانطور که برای فرد مشخص شده است ex دستورات

منظم عبارات in ex
La ex ابزار باید از عبارات منظمی پشتیبانی کند که ابرمجموعه ای از منظم اصلی هستند
عبارات شرح داده شده در جلد تعاریف پایه POSIX.1-2008، بخش 9.3, اساسی
منظم عبارات. یک عبارت منظم تهی ("//") معادل آخرین خواهد بود
با بیان منظم مواجه شد.

عبارات منظم را می توان در آدرس ها برای تعیین خطوط و در برخی دستورات (برای
به عنوان مثال، جایگزین فرمان)، برای تعیین بخش هایی از یک خط که باید جایگزین شوند.

ساختارهای زیر را می توان برای تقویت عبارات با قاعده اصلی استفاده کرد:

\< شروع a را مطابقت دهید کلمه. (به تعریف مراجعه کنید کلمه در آغاز
فرمان توضیحات in ex.)

\> پایان a را مطابقت دهید کلمه.

~ قسمت جایگزینی آخرین را مطابقت دهید جایگزین فرمان را ('~')
شخصیت را می توان در یک عبارت منظم فرار کرد تا با آن به یک شخصیت عادی تبدیل شود
معنی خاصی نداره را باید دور ریخته شود.

وقتی گزینه ویرایشگر شعبده بازي تنظیم نشده است، تنها کاراکترها با معانی خاص باید
be '^' در ابتدای یک الگو، "$" در انتهای یک الگو، و . در
کاراکتر ".", '*', '['و '~' باید به عنوان نویسه های معمولی رفتار شود، مگر اینکه قبلاً وجود داشته باشد
توسط a ; زمانی که قبل از a معنای خاص خود را باز خواهند یافت،
یا در مورد ، به صورت مجرد رسیدگی شود . شخصیت ها
استفاده شده برای فرار از شخصیت های دیگر باید دور انداخته شود.

جایگزینی رشته in ex
شخصیت '&' ('\&' اگر گزینه ویرایشگر است شعبده بازي تنظیم نشده است) در رشته جایگزین
باید برای متن مطابق با الگوی جایگزین شود. شخصیت '~' ('\~' if
شعبده بازي تنظیم نشده است) باید با قسمت جایگزین قبلی جایگزین شود جایگزین
فرمان تسلسل و توالی '\n'، که در آن n یک عدد صحیح است، باید با متن مطابقت شده جایگزین شود
توسط عبارت back-reference مربوطه. اگر مربوطه به عقب مرجع
بیان مطابقت ندارد، سپس کاراکترها '\n' باید با رشته خالی جایگزین شود.

رشته ها '\l', '\u', '\L'و '\U' می توان از آن برای تغییر حالت عناصر در استفاده کرد
رشته جایگزین (با استفاده از '\&' or "\"رقم) نماد. رشته '\l' ('\u') باید
باعث می شود کاراکتر زیر به حروف کوچک (بزرگ) تبدیل شود. رشته '\L'
('\U') باعث می شود همه کاراکترهای بعدی به حروف کوچک تبدیل شوند
(بزرگ) همانطور که با جایگزینی تا رشته درج می شوند '\e' or '\E'، و یا
انتهای رشته جایگزین، مواجه می شود.

در غیر این صورت، هر شخصیتی که از a باید به عنوان تحت اللفظی رفتار شود
شخصیت و فرار باید دور ریخته شود.

نمونه ای از تبدیل مورد با s دستور به شرح زیر است:

:p
La گربه SAT on la حصیر
:s/\<.at\>/\u&/gp
La گربه شنبه on la حصیر
:s/S\(.*\)M/S\U\1\eM/p
La گربه SAT ON L' حصیر

ویرایش گزینه in ex
La ex ابزار تعدادی گزینه دارد که رفتار آن را تغییر می دهد. این گزینه ها دارند
تنظیمات پیش فرض، که می توان با استفاده از تنظیم فرمان

گزینه ها Boolean هستند مگر اینکه طور دیگری مشخص شده باشد.

خود توند، ai
[پیش‌فرض تنظیم نشده]

If خود توند تنظیم شده است، هر خط در حالت ورودی باید تورفتگی داشته باشد (با استفاده از ابتدا به تعداد
کاراکترهایی که ممکن است، همانطور که توسط گزینه ویرایشگر تعیین می شود Tabstop، و سپس استفاده کنید
کاراکترها) برای تراز کردن با یک خط دیگر، به شرح زیر:

1. اگر در حالت باز یا بصری باشد و ورودی متن بخشی از دستور خط گرا باشد (نگاه کنید به
توضیحات گسترده در vi، با ستون اول تراز کنید.

2. در غیر این صورت، اگر در حالت باز یا بصری باشد، تورفتگی برای هر خط باید به صورت تنظیم شود
به شرح زیر است:

آ. اگر قبلاً خطی به عنوان بخشی از این دستور درج شده باشد، باید روی مقدار تنظیم شود
تورفتگی آخرین خط درج شده به طور پیش فرض یا همانطور که برای آن مشخص شده است
را کاراکتر -D در ورودی حالت دستورات in vi.

ب در غیر این صورت، باید روی تورفتگی خط فعلی قبلی تنظیم شود، اگر
هر در غیر این صورت، به ستون اول.

3. برای ex a, iو c دستورات، تورفتگی برای هر خط باید به صورت زیر تنظیم شود:

آ. اگر قبلاً خطی به عنوان بخشی از این دستور درج شده باشد، باید روی مقدار تنظیم شود
تورفتگی آخرین خط درج شده به طور پیش فرض یا همانطور که برای آن مشخص شده است
la اوف شخصیت در طومار.

ب در غیر این صورت، اگر فرمان است ex a دستور، باید روی خط تنظیم شود
در صورت وجود، پس از آن اضافه می شود. در غیر این صورت به ستون اول.

ج در غیر این صورت، اگر فرمان است ex i دستور، باید روی خط تنظیم شود
قبلاً درج شده است، در صورت وجود؛ در غیر این صورت به ستون اول.

د در غیر این صورت، اگر فرمان است ex c دستور، باید روی تورفتگی تنظیم شود
از خط جایگزین شد

چاپ خودکار، ap
[پیش‌فرض تنظیم]

If چاپ خودکار تنظیم شده است، خط فعلی باید بعد از هر نوشته شود ex دستوری که تغییر می دهد
محتویات بافر ویرایش فعلی و بعد از هر کدام برچسب دستوری که برای آن تگ
الگوی جستجو پیدا شد یا شماره خط برچسب معتبر بود، مگر اینکه:

1. دستور در حالت باز یا بصری اجرا شد.

2. دستور به عنوان بخشی از a اجرا شد جهانی or v دستور یا @ اجرای بافر

3. فرمان به شکل بود خواندن دستوری که یک فایل را در بافر ویرایش می خواند.

4. فرمان بود ضمیمه کردن, تغییر دادن، یا درج فرمان

5. فرمان توسط a خاتمه داده نشد .

6. خط فعلی باید توسط یک پرچم مشخص شده به دستور نوشته شود. مثلا،
حذف کردن # باید خط جاری را همانطور که برای اصلاح کننده پرچم مشخص شده است بنویسد حذف کردن
فرمان، و نه آنطور که توسط چاپ خودکار گزینه ویرایش

نوشتن خودکار، aw
[پیش‌فرض تنظیم نشده]

If خودکار نوشتن تنظیم شده است، و بافر ویرایش از آخرین بار به طور کامل تغییر کرده است
در هر فایلی نوشته می شود، محتویات بافر ویرایش باید به گونه ای نوشته شود ex نوشتن
دستور بدون آرگومان مشخص شده بود، قبل از هر فرمان تحت تأثیر
خودکار نوشتن گزینه ویرایش اجرا می شود. الحاق شخصیت '!' به نام دستور هر کدام
از ex دستورات به جز '!' از نوشتن جلوگیری می کند اگر نوشتن ناموفق باشد، باید یک
خطا و دستور اجرا نمی شود.

زیبا کردن، bf
[پیش‌فرض تنظیم نشده]

If زیبا کردن تنظیم شده است، همه کاراکترهای غیر قابل چاپ، غیر از ، ، و
feed> کاراکترها، باید از متن خوانده شده از فایل ها حذف شوند.

فهرست راهنما، دیر
[پیش‌فرض پیاده سازی تعریف شده است]

مقدار این گزینه دایرکتوری را مشخص می کند که بافر ویرایشگر در آن قرار دارد
قرار داده شده. اگر این فهرست توسط کاربر قابل نوشتن نباشد، ویرایشگر باید خارج شود.

سازگار با ویرایش، ed
[پیش‌فرض تنظیم نشده]

باعث وجود g و c پسوندهای دستورات جایگزین برای به خاطر سپردن، و
با تکرار پسوندها تغییر می کند.

زنگ های خطا، eb
[پیش‌فرض تنظیم نشده]

اگر ویراستار در ex حالت، و ترمینال از حالت برجسته پشتیبانی نمی کند (مانند
ویدیوی معکوس)، و زنگ های خطا تنظیم شده است، پیام های خطا باید قبل از هشدار به
پایانه.

exrc
[پیش‌فرض تنظیم نشده]

If exrc تنظیم شده است ، ex به هر کدام دسترسی خواهد داشت exrc فایل در دایرکتوری فعلی، همانطور که در توضیح داده شده است
دهی اولیه in ex و vi. اگر exrc تنظیم نشده است، ex هر کدام را نادیده خواهد گرفت exrc فایل در
دایرکتوری فعلی در حین مقداردهی اولیه، مگر اینکه دایرکتوری فعلی با نام گذاری باشد
صفحه اصلی متغیر محیطی.

نادیده گرفتن، ic
[پیش‌فرض تنظیم نشده]

If نادیده گرفتن تنظیم شده است، کاراکترهایی که دارای حروف بزرگ و کوچک هستند باید
آیا این بازنمایی ها برای اهداف بیان منظم معادل در نظر گرفته می شوند
مقایسه

La نادیده گرفتن گزینه ویرایش باید بر تمام عبارات منظم به خاطر سپرده شده تأثیر بگذارد. مثلا،
از بین بردن نادیده گرفتن گزینه ویرایش باید باعث بعدی شود vi n فرمان برای جستجو
آخرین عبارت با قاعده پایه به روشی حساس به حروف کوچک و بزرگ.

فهرست
[پیش‌فرض تنظیم نشده]

If فهرست تنظیم شده است، خطوط بافر نوشته شده در حین را ویرایش کنید ex حالت فرمان باید به صورت نوشته شود
مشخص شده برای چاپ فرمان با l پرچم مشخص شده است. در حالت باز یا بصری، هر کدام
خط بافر ویرایش باید همانطور که برای آن مشخص شده است نمایش داده شود ex چاپ فرمان با l پرچم
مشخص شده. در حالت ورودی متن باز یا تصویری، زمانی که مکان نما روی هیچ کدام قرار نمی گیرد
کاراکتر در خط، آن را باید بر روی "$" علامت گذاری انتهای خط

شعبده بازي
[پیش‌فرض تنظیم]

If شعبده بازي تنظیم شده است، تعبیر کاراکترها را در عبارات منظم تغییر دهید و
رشته های جایگزین جایگزین (نگاه کنید به منظم عبارات in ex و جایگزینی رشته in
ex).

مس
[پیش‌فرض تنظیم]

If مس تنظیم شده است، اجازه استفاده دیگران از نوشتن or صحبت دستورات برای نوشتن
ترمینال باید در حالت باز یا بصری روشن شود. فرمان سطح پوسته مس
n بر هر تنظیمی ارجحیت دارد ex مس گزینه؛ یعنی اگر مس y بود
قبل از شروع ویرایشگر (یا در حالت فرار پوسته)، مانند:

:!پیام y

la مس گزینه در ex باید پیام های دریافتی را سرکوب کند، اما مس گزینه نباید
اگر پیام های دریافتی را فعال کنید مس n صادر شد

عدد، nu
[پیش‌فرض تنظیم نشده]

If عدد تنظیم شده است، خطوط بافر نوشته شده در حین را ویرایش کنید ex حالت فرمان باید با نوشته شود
شماره خطوط، در قالب مشخص شده توسط چاپ فرمان با # پرچم مشخص شده است. که در
ex در حالت ورودی متن، قبل از هر خط باید شماره خطی که در آن خواهد داشت قرار گیرد
فایل.

در حالت باز یا بصری، هر خط بافر ویرایش باید با یک خط قبل نمایش داده شود
شماره، در قالب مشخص شده توسط ex چاپ فرمان با # پرچم مشخص شده است. این
شماره خط نباید بخشی از خط برای اهداف ارزیابی در نظر گرفته شود
ستون فعلی؛ یعنی موقعیت ستون 1 باید اولین موقعیت ستون بعد از
قالب مشخص شده توسط چاپ فرمان

پاراگراف ها، برای
[پیش‌فرض در محل POSIX IPLPPPQPP LIpplpipbp]

La پاراگراف گزینه ویرایش باید مرزهای پاراگراف اضافی را برای باز و تعیین کند
دستورات حالت بصری در پاراگراف گزینه ویرایش را می توان روی یک رشته کاراکتر تنظیم کرد
متشکل از صفر یا چند جفت کاراکتر. تنظیم آن بر روی یک فرد خطا خواهد بود
تعداد کاراکترها

سریع
[پیش‌فرض تنظیم]

If سریع تنظیم شده است ، ex ورودی حالت فرمان باید با a درخواست شود (':') چه زمانی
تنظیم نشده، هیچ درخواستی نباید نوشته شود.

فقط خواندنی
[پیش‌فرض دیدن متن]

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

* گزینه خط فرمان -R مشخص شد.

* انجام اقداماتی معادل دسترسی() تابع با زیر فراخوانی می شود
آرگومان ها نشان می دهد که فایل فاقد مجوز نوشتن است:

1. نام مسیر فعلی به عنوان استفاده می شود مسیر بحث و جدل.

2. ثابت W_OK به عنوان استفاده می شود آمود بحث و جدل.

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

رسم مجدد
[پیش‌فرض تنظیم نشده]

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

بازنگری
[پیش‌فرض تنظیم]

If بازنگری تنظیم شده است، ترجمه نقشه باید اجازه دهد تا نقشه هایی که بر اساس نقشه های دیگر تعریف شده اند.
ترجمه باید تا حصول محصول نهایی ادامه یابد. اگر تنظیم نشده باشد، فقط یک مرحله است
ترجمه انجام شود

گزارش
[پیش‌فرض 5]

ارزش این گزارش گزینه ویرایش مشخص می کند که چه تعداد از خطوط اضافه شده، کپی،
حذف یا تغییر در بافر ویرایش باعث می شود یک پیام اطلاعاتی نوشته شود
به کاربر. شرایط زیر باعث ایجاد یک پیام اطلاعاتی می شود. پیام
باید شامل تعداد خطوط اضافه شده، کپی شده، حذف شده یا اصلاح شده باشد، اما غیر از این است
نامشخص

* یک ex or vi دستور ویرایشگر، غیر از باز کن, خنثی کردن، یا بصری، که حداقل اصلاح می کند
ارزش گزارش تعداد خطوط گزینه را ویرایش کنید که بخشی از an نیست ex
جهانی or v فرمان، یا ex or vi اجرای بافر، باید باعث اطلاعات شود
پیام نوشته شود

* یک ex یانک or vi y or Y دستور، که حداقل مقدار the را کپی می کند گزارش ویرایش کنید
گزینه به اضافه 1 تعداد خطوط، و که بخشی از یک نیست ex جهانی or v فرمان، یا
ex or vi اجرای بافر، باید باعث نوشتن یک پیام اطلاعاتی شود.

* یک ex جهانی, v, باز کن, خنثی کردن، یا بصری دستور یا ex or vi اجرای بافر، که اضافه می کند
یا در مجموع حداقل مقدار را حذف می کند گزارش ویرایش گزینه تعداد خطوط،
و که بخشی از یک نیست ex جهانی or v فرمان، یا ex or vi اجرای بافر،
باعث می شود که یک پیام اطلاعاتی نوشته شود. (مثلاً اگر 3 خط بود
اضافه شد و 8 خط در طول یک حذف شد ex بصری دستور، 5 عدد مقایسه خواهد شد
در برابر گزارش پس از تکمیل دستور، گزینه ویرایش را انجام دهید.)

طومار، SCR
[پیش‌فرض (تعداد خطوط در نمایشگر -1)/2]

مقدار حرکت گزینه ویرایش باید تعداد خطوط پیمایش شده را تعیین کند ex
-D و z دستورات برای vi -D و -U دستور می دهد، باید باشد
تعداد اولیه خطوط برای پیمایش در صورت عدم وجود قبلی -D یا فرمان -U
اعدام شده است.

بخش
[پیش‌فرض در محل POSIX NHSHH HUnhsh]

La بخش گزینه ویرایش باید مرزهای بخش اضافی را برای باز و تعیین کند
دستورات حالت بصری در بخش گزینه ویرایش را می توان به یک رشته کاراکتر متشکل از
از صفر یا چند جفت کاراکتر؛ تنظیم آن به تعداد فرد خطا خواهد بود
کاراکتر باشد.

پوسته، sh
[پیش‌فرض از متغیر محیطی پوسته]

مقدار این گزینه باید یک رشته باشد. پیش فرض باید از پوسته
متغیر محیطی. اگر پوسته متغیر محیطی تهی یا خالی است sh (نگاه کنید به sh)
ابزار باید پیش فرض باشد.

عرض شیفت، sw
[پیش‌فرض 8]

مقدار این گزینه باید عرض در ستون های سطح تورفتگی مورد استفاده را نشان دهد
در حین فرورفتگی خودکار و با دستورات shift (< و >).

مسابقه نمایشی، sm
[پیش‌فرض تنظیم نشده]

عملکردی که برای نمایش نمایشی لازم نیست گزینه ویرایش در بلوک پشتیبانی شود-
پایانه های حالت یا پایانه هایی با قابلیت های ناکافی.

If نمایش نمایشی تنظیم می شود، در حالت باز یا بصری، زمانی که a ')' or '}' در صورت تطابق تایپ شده است
'(' or '{' در حال حاضر بر روی صفحه نمایش قابل مشاهده است، مطابقت '(' or '{' باید پرچم گذاری شود
حرکت مکان نما به مکان خود برای مدت زمان نامشخصی.

حالت نمایشی
[پیش‌فرض تنظیم نشده]

If حالت نمایشی در حالت باز یا بصری، حالت فعلی که ویرایشگر در آن قرار دارد تنظیم می شود
در آخرین خط نمایشگر نمایش داده شود. حالت فرمان و حالت ورودی متن باید باشد
متمایز شده؛ سایر حالت های نامشخص و اطلاعات تعریف شده توسط پیاده سازی ممکن است باشد
نمایش داده.

آهسته باز کردن
[پیش‌فرض تنظیم نشده]

If آهسته باز کردن در حالت باز و ورودی متن بصری تنظیم می شود، ویرایشگر نباید به روز شود
بخش‌هایی از نمایشگر غیر از ستون‌های خط نمایشگر که کاراکترها را نمایش می‌دهند
وارد شده توسط کاربر (نگاه کنید به ورودی حالت دستورات in vi).

Tabstop ts
[پیش‌فرض 8]

مقدار این گزینه ویرایش باید مرز ستون استفاده شده توسط a را مشخص کند در
نمایش (نگاه کنید به چاپ خودکار, ap و ورودی حالت دستورات in vi).

طول، tl
[صفر پیش فرض]

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

برچسب ها
[پیش‌فرض دیدن متن]

مقدار این گزینه ویرایش باید یک رشته باشد نام مسیر فایل ها محدود شده است
استفاده شده توسط برچسب فرمان مقدار پیش فرض نامشخص است.

مدت
[پیش‌فرض از متغیر محیطی مدت]

مقدار این گزینه ویرایش باید یک رشته باشد. پیش فرض باید از مدت
متغیر در محیط اگر مدت متغیر محیطی خالی یا تهی است
پیش فرض نامشخص است. ویرایشگر باید از مقدار این گزینه ویرایش برای تعیین استفاده کند
نوع دستگاه نمایشگر

اگر کاربر پس از آن مقدار گزینه ویرایش عبارت را تغییر دهد، نتایج مشخص نیستند
مقداردهی اولیه ویرایشگر

مختصر
[پیش‌فرض تنظیم نشده]

If مختصر تنظیم شده است، پیام های خطا ممکن است کمتر پرمخاطب باشند. با این حال، به جز این هشدار،
پیام های خطا نامشخص هستند علاوه بر این، همه پیام های خطا نیاز به تغییر ندارند
تنظیمات مختلف این گزینه

هشدار دادن
[پیش‌فرض تنظیم]

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

پنجره
[پیش‌فرض دیدن متن]

مقداری که در حالت باز و بصری استفاده می شود -باند دستورات -F، و، در
حالت بصری، برای تعیین تعداد خطوط نمایش داده شده هنگام رنگ آمیزی مجدد صفحه نمایش.

اگر -w گزینه خط فرمان مشخص نشده است، مقدار پیش فرض باید بر روی تنظیم شود
ارزش LINES متغیر محیطی. اگر LINES متغیر محیطی خالی است یا
null، پیش فرض باید تعداد خطوط نمایشگر منهای 1 باشد.

تنظیم پنجره گزینه را به صفر یا به مقداری بیشتر از تعداد خطوط در ویرایش کنید
نمایشگر منهای 1 (به طور صریح یا بر اساس -w گزینه یا LINES محیط
متغیر) باید باعث شود پنجره گزینه ویرایش به تعداد خطوط در تنظیم شود
نمایش منهای 1

نرخ باود خط ترمینال ممکن است پیش فرض را در یک پیاده سازی تعریف شده تغییر دهد
شیوه.

حاشیه بسته بندی، wm
[پیش‌فرض 0]

اگر مقدار این گزینه ویرایش صفر باشد، تاثیری نخواهد داشت.

اگر در محلی POSIX نباشد، اثر این گزینه ویرایش به صورت پیاده سازی تعریف شده است.

در غیر این صورت، باید تعدادی ستون را از حاشیه انتهایی پایانه مشخص کند.

در حالت های ورودی متن باز و بصری، برای هر کاراکتری که هر بخشی از
کاراکتر در ستونی نمایش داده می شود که کمتر از wrapmargin ستون از انتهای
در حاشیه خط نمایش، ویرایشگر باید به صورت زیر رفتار کند:

1. اگر شخصیت محرک این رویداد a ، آن و همه بلافاصله قبل از آن
کاراکترهای موجود در خط فعلی که در طول اجرای جریان وارد می شوند
دستور ورودی متن، باید کنار گذاشته شود، و ویرایشگر باید طوری رفتار کند که گویی کاربر چنین رفتاری داشته است
یک تک وارد شد بجای. علاوه بر این، اگر کاراکتر بعدی وارد شده توسط کاربر باشد
آ ، باید دور انداخته شود.

2. در غیر این صورت، اگر یک یا چند وجود داشته باشد کاراکترها در خط فعلی بلافاصله
قبل از آخرین گروه غیر درج شده کاراکترهایی که در طول وارد شدند
اجرای دستور ورودی متن فعلی، شخصیت ها باید باشند
طوری جایگزین می شود که گویی کاربر تکی را وارد کرده است بجای.

اگر خود توند گزینه ویرایش تنظیم می شود و رویدادهای شرح داده شده در 1. یا 2. انجام می شوند.
هر کاراکترهای موجود در یا بعد از مکان نما در خط فعلی باید کنار گذاشته شوند.

حاشیه پایانی باید توسط سیستم تعیین شود یا توسط کاربر لغو شود
شرح داده شده برای ستون ها در بخش متغیرهای محیطی و جلد تعاریف پایه
از POSIX.1-2008، فصل 8, محیط متغیر.

wrapscan ws
[پیش‌فرض تنظیم]

If wrapscan تنظیم شده است، جستجو می کند (the ex / or ? آدرس ها یا حالت باز و بصری /, ?, N,
و n دستورات) باید در ابتدا یا انتهای بافر ویرایش بپیچند. وقتی تنظیم نشده باشد،
جستجوها باید در ابتدا یا انتهای بافر ویرایش متوقف شوند.

هر نویسنده، wa
[پیش‌فرض تنظیم نشده]

If هر نویسنده تنظیم شده است، برخی از بررسی ها در هنگام اجرای آن انجام می شود ex نوشتن دستورات
همانطور که در گزینه ویرایشگر توضیح داده شده است، باید مهار شود خودکار نوشتن.

خروج وضعیت


مقادیر خروجی زیر باید برگردانده شوند:

0 تکمیل با موفقیت

>0 خطایی روی داد.

آثار OF خطاها


هنگامی که با خطا مواجه می شوید و ورودی استاندارد یک فایل دستگاه ترمینال نیست، ex
نباید فایل را بنویسد یا به حالت دستور یا ورودی متن برگردد و با آن خاتمه یابد
وضعیت خروج غیر صفر

در غیر این صورت، هنگامی که یک خطای غیرقابل جبران مواجه می شود، معادل SIGHUP خواهد بود.
رویداد ناهمزمان

در غیر این صورت، زمانی که خطایی رخ می دهد، ویرایشگر باید همانطور که در آن مشخص شده است رفتار کند فرمان
لاین تجزیه in ex.

La پیروی بخش هستند آموزنده

کاربرد طریقه استفاده


اگر سیگنال SIGSEGV دریافت شود در حالی که ex در حال ذخیره یک فایل است، ممکن است فایل نباشد
با موفقیت ذخیره شد.

La بعد دستور می تواند بیش از یک فایل را بپذیرد، بنابراین استفاده هایی مانند:

بعد ls [abc]*`

معتبر است؛ برای آن معتبر نخواهد بود ویرایش کنید or خواندن دستورات، برای مثال، زیرا آنها
فقط یک فایل انتظار می رود و نتایج نامشخصی رخ می دهد.

مثال ها


ندارد.

منطقی


La ex/vi مشخصات بر اساس عملکرد تاریخی موجود در 4 BSD و سیستم است
V پیاده سازی از ex و vi.

A منحصر سردبیر (هر دو تاریخی قرمز ابزار و تغییرات در ex) بود
در نظر گرفته شد و برای درج رد شد. هیچ کدام از گزینه ها آن سطح امنیتی را ارائه نکردند
کاربران ممکن است انتظار داشته باشند.

به رسمیت شناخته شده است که ex حالت بصری و ویژگی های مرتبط دشوار خواهد بود، اگر نه
غیرممکن است، به طور رضایت بخش بر روی یک ترمینال حالت بلوک، یا یک ترمینال بدون
هر شکلی از آدرس دهی مکان نما؛ بنابراین، وجود چنین ویژگی‌هایی الزامی نیست
باید در تمام پایانه ها کار کند. با این حال، هدف این است که یک ex پیاده سازی
باید مجموعه کاملی از قابلیت‌ها را در تمام پایانه‌هایی که قادر به پشتیبانی از آنها هستند، ارائه دهد.

گزینه
La جایگزین برای +فرمان توسط الهام گرفته از -e گزینه ای از SED. از نظر تاریخی، همه
چنین دستوراتی (نگاه کنید به ویرایش کنید و بعد همچنین) از آخرین خط ویرایش اجرا شدند
بافر این به این معنی بود که مثلاً "+/الگو" شکست خواهد خورد مگر اینکه wrapscan انتخاب
تنظیم شد. POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد. در +فرمان گزینه است
دیگر توسط POSIX.1-2008 مشخص نشده است، اما ممکن است در برخی از پیاده سازی ها وجود داشته باشد.
از لحاظ تاریخی، برخی از پیاده‌سازی‌ها محدودیت‌هایی را ایجاد می‌کردند ex دستوراتی که می توانند به عنوان بخشی فهرست شوند
از آرگومان های خط فرمان برای ثبات، POSIX.1-2008 اینها را مجاز نمی‌داند
محدودیت های.

در پیاده سازی های تاریخی ویرایشگر، گزینه (و فقط خواندنی گزینه ویرایش)
فقط از بازنویسی فایل ها جلوگیری کرد. اضافه کردن به فایل ها هنوز مجاز بود، نقشه برداری
آزادانه به csh نوکلوببر متغیر. با این حال، برخی از پیاده سازی ها دنبال نشده اند
این معنایی، و فقط خواندنی اجازه ضمیمه را نیز نمی دهد. POSIX.1-2008 به دنبال آن است
تمرین اخیر، با این باور که معنای آشکارتر و شهودی آن است فقط خواندنی.

La -s گزینه تمام بازخوردهای تعاملی کاربر را سرکوب می کند و برای ویرایش اسکریپت ها مفید است
در مشاغل دسته ای فهرست اثرات خاص، عمل تاریخی است. نوع ترمینال
«ناتوانی در پشتیبانی از حالت‌های باز و بصری» در طول تاریخ «گنگ» نامیده می‌شود.

La -t گزینه مورد نیاز بود زیرا برچسب ها ابزار در POSIX.1-2008 ظاهر می شود و
گزینه در تمام پیاده سازی های تاریخی موجود است ex.

از لحاظ تاریخی ، ex و vi آب و برق پذیرفته شده الف -x گزینه ای که رمزگذاری را بر اساس آن انجام می داد
الگوریتم موجود در تاریخچه کریپت سودمندی در -x گزینه ای برای رمزگذاری، و
مرتبط است کریپت ابزار، حذف شدند زیرا الگوریتم مورد استفاده قابل تعیین نبود و
قوانین کنترل صادرات برخی از کشورها، صادرات رمزنگاری را دشوار می کند
فن آوری. علاوه بر این، از لحاظ تاریخی سطح امنیتی مورد نیاز کاربران را فراهم نکرده است
ممکن است انتظار داشته باشد

استاندارد ورودی
شرط پایان فایل معادل کاراکتر پایان فایل نیست. پایان مشترک
کاراکتر فایل، -D، از نظر تاریخی یک ex فرمان

حداکثر طول خط در پیاده سازی های تاریخی وجود نداشت ex. به طور خاص، به عنوان آن
به صورت تکه‌ای تجزیه شد، آدرس‌ها حداکثر طول متفاوتی نسبت به نام فایل‌ها داشتند.
علاوه بر این، حداکثر اندازه بافر خط به عنوان BUFSIZ اعلام شد که طول های متفاوتی داشت
در سیستم های مختلف این نسخه مقدار {LINE_MAX} را برای تحمیل یک مقدار معقول انتخاب کرد
محدودیت در استفاده قابل حمل از ex و برای کمک به نویسندگان مجموعه آزمایشی در توسعه آنها
تست های واقع بینانه ای که این حد را اعمال می کنند.

ورودی فایل ها
این تصمیم صریح توسط توسعه دهندگان استاندارد بود که الف به هر کدام اضافه شود
فایل فاقد یکی اعتقاد بر این بود که این ویژگی از ex و vi توسط کاربران در
به منظور ایجاد فایل های متنی بدون دنباله قابل حمل تر به رسمیت شناخته شده است که
این به یک گزینه یا پسوند مشخص شده توسط کاربر برای پیاده سازی هایی که اجازه می دهد نیاز دارد ex
و vi برای ویرایش فایل‌هایی از نوع دیگری غیر از متن، در صورتی که این فایل‌ها به‌طور دیگری مشخص نشده باشند
سیستم. توافق شد که توانایی ویرایش فایل های دلخواه می تواند مفید باشد،
اما الزامی در نظر گرفته نشد که یک ex or vi اجرا مورد نیاز است
برای رسیدگی به فایل های غیر از فایل های متنی.

پاراگراف در بخش INPUT FILES، "به طور پیش فرض، ..." برای بستن یک
مشکل امنیتی طولانی مدت در ex و vi; که از "مدل" یا "مدل"
گزینه ویرایش این ویژگی به هر خطی در پنج خط اول یا آخر فایل اجازه می دهد
حاوی رشته ها "سابق:" or "vi:" (و ظاهراً "ei:" or "vx:") خط بودن
حاوی دستورات ویرایشگر و ex تمام متن را تا متن بعدی تفسیر می کند ':' یا
به عنوان یک فرمان به عنوان مثال، عواقب استفاده از یک کاربر ناآگاه را در نظر بگیرید ex or
vi به عنوان ویرایشگر هنگام پاسخ به یک پیام ایمیل که در آن خطی مانند:

سابق:! rm -rf :

در خطوط امضا ظاهر شد. توسعه دهندگان استاندارد به شدت معتقد بودند که یک ویرایشگر
به طور پیش فرض نباید هیچ خطی از یک فایل را تفسیر کند. از فروشندگان اکیداً خواسته می شود که حذف کنند
این ویژگی از پیاده سازی آنها از ex و vi.

ناهمگام رویدادها
هدف از عبارت «نوشتن کامل» این است که کل بافر ویرایش نوشته شود
به ذخیره سازی پایدار یادداشت در مورد فایل های موقت برای پیاده سازی هایی در نظر گرفته شده است که
از فایل‌های موقت برای پشتیبان‌سازی بافرهای ویرایش بدون نام توسط کاربر استفاده کنید.

از لحاظ تاریخی، SIGQUIT توسط نادیده گرفته شد ex، اما معادل بود Q دستور در بصری
حالت؛ یعنی از حالت بصری خارج شد و وارد شد ex حالت POSIX.1-2008 اجازه می دهد، اما می دهد
نیازی به این رفتار نیست از لحاظ تاریخی، SIGINT اغلب توسط vi کاربران برای خاتمه
حالت ورودی متن ( -C اغلب ساده تر از آن است ). برخی از پیاده سازی ها
of vi به ترمینال در مورد این رویداد هشدار داد، و برخی از آن خبر ندادند. POSIX.1-2008 به آن نیاز دارد
SIGINT یکسان رفتار می کند و ترمینال هشدار داده نشود.

از نظر تاریخی، تعلیق ex ویرایشگر در حالت ورودی متن مشابه SIGINT بود
خطوط تکمیل شده حفظ شدند، اما هر خط جزئی کنار گذاشته شد و ویرایشگر به آن بازگشت
حالت فرمان POSIX.1-2008 در مورد این موضوع ساکت است. اجراها تشویق می شوند
در صورت امکان از رویه تاریخی پیروی کنید.

از لحاظ تاریخی ، vi ویرایشگر SIGTSTP را به عنوان یک رویداد ناهمزمان تلقی نکرد و همینطور بود
بنابراین تعلیق ویرایشگر در حالت ورودی متن بصری غیرممکن است. دو عمده وجود دارد
دلایل این امر اولین مورد این است که SIGTSTP یک سیگنال پخش در سیستم‌های یونیکس است
زنجیره ای از رویدادها که در آن پوسته execبرنامه ای است که پس از آن execs vi معمولاً ایجاد می شود
اگر SIGTSTP به گروه فرآیند در تحویل داده شود، سردرگمی برای وضعیت ترمینال وجود دارد
روش پیش فرض دوم این بود که اکثر پیاده سازی های یونیکس نفرین بسته انجام داد
SIGTSTP را به صورت ایمن مدیریت نکنید و دریافت SIGTSTP در زمان نامناسب باعث ایجاد آنها می شود
خراب شدن. POSIX.1-2008 در مورد این موضوع ساکت است. پیاده سازی ها به درمان تشویق می شوند
تعلیق به عنوان یک رویداد ناهمزمان در صورت امکان.

از لحاظ تاریخی، تغییرات در بافر ویرایش قبل از اینکه SIGINT یک عملیات را قطع کند، انجام شده است
حفظ شدند؛ یعنی از صفر تا تمام خطوطی که باید اصلاح شوند ممکن است داشته باشند
تا زمان ورود SIGINT اصلاح شد. این تغییرات توسط سازمان نادیده گرفته نشد
ورود SIGINT POSIX.1-2008 این رفتار را مجاز می‌کند، با توجه به اینکه خنثی کردن فرمان است
لازم است بتوان این دستورات نیمه تکمیل شده را لغو کرد.

اقدامی که برای سیگنال هایی غیر از SIGINT، SIGCONT، SIGHUP و SIGTERM انجام می شود
نامشخص زیرا برخی از پیاده سازی ها تلاش می کنند بافر ویرایش را در یک حالت مفید ذخیره کنند
هنگامی که سیگنال های دیگر دریافت می شود.

استاندارد خطا
برای ex/vi، پیام های تشخیصی پیام هایی هستند که در نتیجه تلاش ناموفق گزارش می شوند
استناد کردن ex or viمانند گزینه های نامعتبر یا منابع ناکافی یا غیرعادی
شرط خاتمه پیام های تشخیصی را نباید با پیام های خطا اشتباه گرفت
ایجاد شده توسط دستورات نامناسب یا غیرقانونی کاربر.

دهی اولیه in ex و vi
اگر یک ex دستور (غیر از cd, چدیر، یا منبع) یک آرگومان نام فایل دارد، یکی یا هر دو
نام مسیر جایگزین و فعلی تنظیم خواهد شد. به طور غیر رسمی، آنها به شرح زیر تنظیم می شوند:

1. اگر ex دستوری است که جایگزین محتویات بافر ویرایش و آن می شود
موفق شود، نام مسیر فعلی به آرگومان filename (اول
آرگومان نام فایل در مورد بعد فرمان) و نام مسیر جایگزین خواهد بود
در صورت وجود نام مسیر فعلی قبلی را تنظیم کنید.

2. در مورد فایل خواندن/نوشتن فرم های خواندن و نوشتن دستورات، در صورت وجود
بدون نام مسیر فعلی، نام مسیر فعلی روی آرگومان نام فایل تنظیم می شود.

3. در غیر این صورت، نام مسیر جایگزین روی آرگومان filename تنظیم می شود.

به عنوان مثال، :ویرایش فو و :بازیابی فو، در صورت موفقیت آمیز بودن، نام مسیر فعلی را تنظیم کنید، و
اگر نام مسیر فعلی قبلی وجود داشت، نام مسیر جایگزین. دستورات :نوشتن,
! فرمانو :ویرایش نام مسیر فعلی یا جایگزین را تنظیم نکنید. اگر :ویرایش فو
دستور به دلایلی شکست می خورد، نام مسیر جایگزین تنظیم می شود. در خواندن و
نوشتن دستورات نام مسیر جایگزین را بر روی خود تنظیم می کنند پرونده استدلال، مگر اینکه جریان
pathname تنظیم نشده است، در این صورت نام مسیر فعلی را روی خود تنظیم می کنند پرونده استدلال
نام مسیر جایگزین از نظر تاریخی توسط سازمان تنظیم نشده است : منبع فرمان POSIX.1-2008
مستلزم انطباق با رویه تاریخی است. پیاده سازی هایی که دستوراتی را اضافه می کنند
نام فایل ها به عنوان آرگومان تشویق می شوند تا نام مسیر جایگزین را همانطور که در اینجا توضیح داده شده است تنظیم کنند.

تاریخی، ex و vi خواندن exrc فایل در $ HOME دایرکتوری دو بار، اگر ویرایشگر
در اعدام شد $ HOME فهرست راهنما. POSIX.1-2008 این رفتار را ممنوع می کند.

از لحاظ تاریخی، 4 BSD ex و vi خواندن $ HOME و محلی exrc فایل ها اگر متعلق به آنها بود
توسط شناسه واقعی کاربر، یا منبع بدون توجه به موارد دیگر، گزینه تنظیم شد
ملاحظات این یک مشکل امنیتی بود زیرا امکان قرار دادن یونیکس معمولی وجود دارد
دستورات سیستم در داخل a exrc فایل. POSIX.1-2008 مشخص نمی کند منبع گزینه،
و پیاده سازی های تاریخی برای حذف آن تشویق می شوند.

La exrc فایل ها باید متعلق به شناسه واقعی کاربر باشد و توسط هیچ کس دیگری قابل نوشتن نباشد
از مالک استثنای امتیازات مناسب برای اجازه دادن به کاربران در نظر گرفته شده است
امتیازات ویژه ای را به دست آورید، اما به استفاده از آن ادامه دهید exrc فایل های موجود در فهرست های اصلی آنها

System V نسخه 3.2 و بالاتر vi implements این گزینه را اضافه کرد [نه] exrc. رفتار
آن محلی است exrc اگر فایل ها فقط خواندنی هستند exrc گزینه تنظیم شده است. پیش فرض برای
exrc گزینه خاموش بود، بنابراین به طور پیش فرض، محلی است exrc فایل ها خوانده نشد مشکل این بود
در نظر گرفته شده برای حل این بود که System V به کاربران اجازه می‌داد فایل‌ها را ارائه کنند، بنابراین وجود ندارد
امکان تست مالکیت یا قابلیت نوشتن برای اطمینان از ایمن بودن فایل. این هنوز یک است
مشکل امنیتی در سیستم هایی که کاربران می توانند فایل ها را ارائه دهند، اما هیچ چیز وجود ندارد
اضافی که POSIX.1-2008 می تواند انجام دهد. استثناء تعریف شده در پیاده سازی در نظر گرفته شده است
اجازه می دهد گروه ها محلی داشته باشند exrc فایل هایی که توسط کاربران به اشتراک گذاشته می شوند، با ایجاد کاربران شبه
برای مالکیت فایل های مشترک

POSIX.1-2008 به کل سیستم اشاره ای نمی کند ex و vi فایل های راه اندازی در حالی که آنها وجود دارند
چندین پیاده سازی از ex و vi، در هیچ اجرائی وجود ندارند
عمل تاریخی در نظر گرفته شده توسط POSIX.1-2008. پیاده سازی هایی که چنین فایل هایی دارند
فقط در صورتی که متعلق به شناسه کاربری واقعی یا یک کاربر مناسب باشد (برای
به عنوان مثال، ریشه در سیستم های یونیکس) و اگر توسط هیچ کاربری غیر از آنها قابل نوشتن نباشد
مالک فایل‌های راه‌اندازی در سراسر سیستم باید قبل از خواندن خوانده شوند EXINIT متغیر ، $HOME/.exrc,
یا محلی exrc فایل ها مورد ارزیابی قرار می گیرند.

از نظر تاریخی، هر ex دستور را می توان در وارد کرد EXINIT متغیر یا exrc فایل،
اگرچه مواردی که به طور کلی نیاز دارند که بافر ویرایش قبلاً حاوی خطوط متن باشد
باعث کاهش پیاده سازی های تاریخی ویرایشگر شد هسته. POSIX.1-2008 به آن نیاز دارد
هر ex فرمان در EXINIT متغیر و exrc فایل ها، برای سادگی
مشخصات و سازگاری، اگرچه بسیاری از آنها بدیهی است که در بسیاری از آنها شکست خواهند خورد
شرایط.

مقداردهی اولیه محتویات بافر ویرایش از عبارت «اثر باید» استفاده می کند
be'' با توجه به مختلف ex دستورات هدف از این عبارت این است که ویرایش بافر
محتویات بارگذاری شده در مرحله اولیه از بین نرود. یعنی بارگذاری ویرایش
بافر باید شکست بخورد اگر exrc فایل در محتویات یک فایل خوانده شد و نشد
سپس بافر ویرایش را بنویسید. هدف اضافی این عبارت مشخص کردن آن است
خط و ستون جریان اولیه همانطور که برای فرد مشخص شده است تنظیم می شود ex دستورات

از لحاظ تاریخی ، -t گزینه به گونه ای رفتار می کند که گویی جستجوی برچسب a است +فرمان; یعنی بود
از آخرین خط فایل مشخص شده توسط تگ اجرا می شود. این منجر به جستجو شد
اگر الگو یک الگوی جستجوی رو به جلو بود و wrapscan گزینه ویرایش نبود
تنظیم. POSIX.1-2008 این رفتار را مجاز نمی‌داند و نیاز به جستجوی برچسب دارد
الگو بر روی کل فایل اجرا شود، و اگر یافت نشد، خط فعلی تنظیم شود
به یک مکان معقول تر در فایل.

از لحاظ تاریخی، بافر خالی ویرایش زمانی برای ویرایش ارائه می‌شد که یک فایل توسط آن مشخص نشده بود
کاربر بی نام بود این توسط POSIX.1-2008 مجاز است. با این حال، پیاده سازی ها هستند
تشویق به ارائه یک نام فایل موقت برای این بافر به کاربران می شود زیرا به آنها اجازه می دهد
استفاده از ex دستوراتی که از نام مسیر فعلی در جلسات ویرایش موقت استفاده می کنند.

از لحاظ تاریخی، فایل با استفاده از -t گزینه بخشی از استدلال فعلی نبود
فهرست این عمل توسط POSIX.1-2008 مجاز است. با این حال، اجراها تشویق می شوند
برای گنجاندن نام آن در لیست آرگومان فعلی برای سازگاری.

از لحاظ تاریخی ، فرمان معمولاً تا زمانی که فایلی از قبل وجود داشته باشد اجرا نمی‌شود
ویرایش شد. POSIX.1-2008 به انطباق با این رویه تاریخی نیاز دارد. فرمان می دهد که
می تواند باعث شود دستوری که باید اجرا شود شامل ex دستورات ویرایش کنید, بعد, بهبود پیدا کن,
باز پیچیو برچسب، و vi دستورات -^ و -]. از نظر تاریخی، خواندن الف
فایل در بافر ویرایش باعث نشد دستوری که باید اجرا شود (حتی اگر ممکن است
نام مسیر فعلی) را تنظیم کنید، با این استثنا که باعث شد دستور به بودن
اجرا می شود اگر: ویرایشگر در آن بود ex حالت، بافر ویرایش بدون نام مسیر فعلی، ویرایش
بافر خالی بود و هیچ دستور خواندنی هنوز انجام نشده بود. برای قوام و
سادگی مشخصات، POSIX.1-2008 این رفتار را مجاز نمی‌داند.

از لحاظ تاریخی ، -r اگر بازیابی وجود نداشت، گزینه مشابه یک جلسه ویرایش عادی بود
اطلاعات موجود برای فایل این به کاربران اجازه داد تا وارد شوند:

vi -r *.c

و هر فایلی که قابل بازیابی بود را بازیابی کنید. در برخی از پیاده سازی ها، بازیابی بود
فقط روی اولین فایل نامگذاری شده تلاش کرد و فایل وارد استدلال نشد
فهرست؛ در برخی دیگر، بازیابی برای هر فایل نامگذاری شده انجام شد. علاوه بر این، برخی از تاریخی
اجراها نادیده گرفته شدند -r if -t مشخص شده بود یا از خط فرمان پشتیبانی نمی کرد پرونده
استدلال با -t گزینه. برای سازگاری و سادگی مشخصات،
POSIX.1-2008 این موارد خاص را مجاز نمی‌داند و نیاز به بازیابی دارد
اولین باری که هر فایل ویرایش می شود

تاریخی، vi مقداردهی اولیه شد ` و ' نشانه ها، اما ex کار را نکرد. این بدان معنی بود که اگر
اولین فرمان در ex حالت بود بصری یا اگر ex دستور ابتدا اجرا شد (به عنوان مثال،
vi + 10 پرونده), vi بدون مقداردهی اولیه علائم وارد شد. چون استاندارد
توسعه دهندگان بر این باور بودند که علائم به طور کلی مفید هستند و برای سازگاری و سادگی
از مشخصات، POSIX.1-2008 مستلزم آن است که اگر در حالت باز یا باز هستند، همیشه مقداردهی اولیه شوند
حالت بصری، یا اگر در ex حالت و بافر ویرایش خالی نیست. مقداردهی اولیه آن در ex
حالت اگر بافر ویرایش خالی باشد، عمل تاریخی است. با این حال، همیشه بوده است
امکان تنظیم (و استفاده) علائم در بافرهای خالی ویرایش در ویرایش حالت باز و بصری
جلسات

خطاب به
تاریخی، ex و vi فرم های آدرس دهی اضافی را پذیرفت '\/' و '\؟'. آنها بودند
معادل "//" و "؟؟"، به ترتیب. آنها بیشتر توسط POSIX.1-2008 مورد نیاز نیستند
زیرا هیچ کس نمی تواند به خاطر بیاورد که آیا آنها تا به حال کار متفاوتی از نظر تاریخی انجام داده اند یا خیر.

تاریخی، ex و vi آدرس صفر را برای چندین دستور مجاز و مجاز است
la % آدرس در فایل های خالی برای دیگران. برای ثبات، POSIX.1-2008 نیاز به پشتیبانی دارد
برای اولی در چند دستور که منطقی است، و در غیر این صورت آن را مجاز نمی داند. که در
علاوه بر این، زیرا POSIX.1-2008 به آن نیاز دارد % از نظر منطقی معادل باشد "1,$"، این است
همچنین در جایی که منطقی است پشتیبانی می شود و در غیر این صورت مجاز نیست.

از لحاظ تاریخی ، % آدرس را نمی توان با آدرس های بیشتر دنبال کرد. برای ثبات
و سادگی مشخصات، POSIX.1-2008 مستلزم آن است که آدرس های اضافی وجود داشته باشد
پشتیبانی.

همه موارد زیر معتبر است آدرس:

+++ سه خط بعد از خط فعلی.

/re/− یک خط قبل از وقوع بعدی re.

−2 دو خط قبل از خط فعلی.

3 −−−− 2 خط یک (به آدرس منفی میانی توجه کنید).

1 2 3 خط شش.

هر تعداد آدرس را می توان به دستورهایی که آدرس می گیرند ارائه کرد. مثلا،
"1,2,3,4,5p" خطوط 4 و 5 را چاپ می کند، زیرا دو بیشترین تعداد معتبر آدرس است
پذیرفته شده توسط چاپ فرمان این، در ترکیب با حائل، جداکننده،
به کاربران اجازه می دهد تا دستوراتی را بر اساس الگوهای مرتب شده در فایل ایجاد کنند. به عنوان مثال
فرمان 3;/foo/;+2چاپ اولین خط بعد از خط 3 که حاوی الگو است نمایش داده می شود
فو، به علاوه دو خط بعدی. توجه داشته باشید که آدرس 3; قبل از بودن باید ارزیابی شود
دور انداخته شد زیرا منشا جستجو برای /foo/ دستور به این بستگی دارد.

از لحاظ تاریخی، می‌توان مقادیری را با قرار دادن آنها پس از یک یا چند آدرس به آدرس‌ها اضافه کرد
شخصیت ها؛ مثلا، 3 - 5p خط هفتم پرونده را نوشت و /foo/ 5
همان بود /foo/+5. با این حال، فقط مقادیر مطلق را می توان اضافه کرد. مثلا،
5 /foo/ یک خطا بود POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد. نشانی
افست ها به طور جداگانه از آدرس ها مشخص می شوند زیرا از نظر تاریخی می توانند چنین باشند
به دستورات جستجوی حالت بصری ارائه شده است.

از لحاظ تاریخی، هر آدرسی که از دست رفته بود به خط فعلی پیش‌فرض می‌شد. این درست بود برای
پیشرو و دنباله دار آدرس‌های محدود شده و برای دنبال کردن -محدود شده
آدرس ها. برای ثبات، POSIX.1-2008 به آن برای رهبری نیاز دارد آدرس ها به عنوان
خوب.

تاریخی، ex و vi پذیرفت '^' کاراکتر هم به عنوان آدرس و هم به عنوان افست پرچم
برای دستورات در هر دو مورد یکسان بود '-' شخصیت. POSIX.1-2008 ندارد
این رفتار را ایجاب یا ممنوع می کند.

از لحاظ تاریخی، پیشرفت‌ها در عبارات منظم پایه می‌توانند در آدرس‌دهی استفاده شوند.
به عنوان مثال، '~', '\<'و '\>'. POSIX.1-2008 به انطباق با تاریخ نیاز دارد
تمرین؛ یعنی استفاده از عبارت منظم ثابت باشد و منظم باشد
هرجا که از عبارات منظم استفاده می شود، از پیشرفت های بیان پشتیبانی می شود.

فرمان لاین تجزیه in ex
تاریخی ex تجزیه فرمان حتی پیچیده تر از آنچه در اینجا توضیح داده شد بود. POSIX.1-2008
به زیرمجموعه ای از تجزیه فرمان نیاز دارد که توسعه دهندگان استاندارد معتقد بودند چنین است
مستند شده و به طور معقولی می توان انتظار داشت که کاربران به صورت قابل حمل از آن استفاده کنند، و
که از نظر تاریخی بین اجراها سازگار بود. (عملکرد حذف شده است
در بهترین حالت مبهم است.) پیاده سازی های تاریخی به منظور مطابقت نیاز به تغییرات دارند
با POSIX.1-2008؛ با این حال، انتظار نمی رود کاربران متوجه هیچ یک از این تغییرات شوند. اکثر
از پیچیدگی در ex تجزیه برای رسیدگی به سه مورد خاتمه خاص است:

1. !, جهانی, v، و نسخه های فیلتر از خواندن و نوشتن دستورات محدود شده اند
توسط کاراکترها (می توانند حاوی شخصیت هایی که معمولا
لوله های پوسته ای).

2. ex, ویرایش کنید, بعدو بصری در حالت باز و بصری همه دستورات را می گیرند ex دستورات،
به صورت اختیاری حاوی شخصیت ها، به عنوان اولین استدلال آنها.

3. s فرمان یک عبارت منظم را به عنوان اولین آرگومان خود می گیرد و از آن استفاده می کند
محدود کردن کاراکترها برای محدود کردن دستور.

تاریخی، شخصیت ها در +فرمان استدلال از ex, ویرایش کنید, بعد,
viو بصری دستورات، و در الگو و جایگزینی بخشی از s فرمان، انجام داد
فرمان را محدود نکنید و در موارد فیلتر برای خواندن و نوشتن، و !, جهانی,
و v دستورات، آنها به هیچ وجه فرمان را محدود نمی کردند. به عنوان مثال موارد زیر
همه دستورات معتبر هستند:

:ویرایش +25 | s/abc/ABC/ file.c
:s/ | /PIPE/
:خواندن !املا % | ستون دار
:global/pattern/p | ل
:s/a/b/ | s/c/d | تنظیم

از نظر تاریخی، خالی یا خطوط را پر کرد exrc فایلها و منبعفایل های d (و همچنین
EXINIT متغیرها و ex اسکریپت های فرمان) به عنوان دستورات پیش فرض در نظر گرفته شدند. به این معنا که، چاپ
دستورات POSIX.1-2008 به طور خاص مستلزم آن است که هنگام مواجهه با آنها نادیده گرفته شوند
exrc و منبعفایل های d برای از بین بردن یک منبع رایج خطای کاربر جدید.

تاریخی، ex دستورات با چندین مجاور (یا خطوط عمودی جدا شده
به طرز عجیبی در هنگام اجرا از ex حالت مثلا دستور ||| <کالسکه-
return>، زمانی که مکان نما در خط 1 قرار داشت، خطوط 2، 3 و 5 فایل نمایش داده می شود. که در
علاوه بر این، فرمان | فقط خط را بعد از خط بعدی به جای نشان می دهد
دو خط بعدی اولی زمانی که از آن اجرا می شد منطقی تر کار می کرد vi حالت، و نمایش داده می شود
خطوط 2، 3، و 4. POSIX.1-2008 به vi رفتار - اخلاق؛ یعنی یک پیش فرض واحد
افزایش فرمان و شماره خط برای هر جداکننده دستور و دنباله
شخصیت های بعد جداکننده ها دور ریخته می شوند.

تاریخی، ex یک مورد اضافی مجاز است به عنوان یک شخصیت فرماندهی پیشرو؛ برای
مثال، :g/pattern/:p دستور معتبری بود POSIX.1-2008 این را تعمیم می دهد تا به آن نیاز داشته باشد
هر تعداد پیشرو شخصیت ها برهنه شوند

از لحاظ تاریخی، هر پیشوندی از حذف کردن فرمان را می توان بدون مداخله دنبال کرد
کاراکترها توسط یک کاراکتر پرچم زیرا در دستور d p, p به عنوان تعبیر می شود
بافر p. POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

از لحاظ تاریخی ، k فرمان را می توان با نام علامت بدون دخالت دنبال کرد
شخصیت ها. POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

از لحاظ تاریخی ، s فرمان را می توان بلافاصله با کاراکترهای پرچم و گزینه دنبال کرد.
به عنوان مثال، s/e/E/|s|sgc3p دستور معتبری بود با این حال، شخصیت های پرچم نمی توانستند بایستند
تنها؛ برای مثال دستورات sp و s l شکست خواهد خورد، در حالی که فرمان sgp و s gl
موفق خواهد شد (بدیهی است که '#' اگر کاراکتر پرچم به عنوان یک کاراکتر جداکننده استفاده می شد
از دستور پیروی کرد.) مسئله دیگر این بود که کاراکترهای گزینه باید قبل از پرچم قرار می گرفتند
کاراکترها حتی زمانی که دستور به طور کامل مشخص شده بود. برای مثال دستور s/e/E/pg
شکست خواهد خورد، در حالی که فرمان s/e/E/gp موفق خواهد شد POSIX.1-2008 نیاز به انطباق با
عمل تاریخی

از لحاظ تاریخی، اولین نام فرمانی که پیشوندی مطابق با ورودی کاربر داشت
فرمان اجرا شده بود. مثلا، ve, نسخهو به همه اجرا کردند نسخه فرمان
با این حال، دستورات در یک نظم خاص بود، به طوری که a تطبیق ضمیمه کردن، نه مختصر.
POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد. محدودیت در فرمان
ترتیب جستجو برای پیاده سازی های با پسوندها به این صورت است که از اضافه شدن دستوراتی مانند این موارد اجتناب شود
که پیشوندهای تاریخی به طور قابل حمل کار نمی کنند.

پیاده سازی های تاریخی از ex و vi چندگانه را به درستی مدیریت نکرد ex دستورات،
جدا شده به واسطه کاراکترهایی که از حالت بصری یا ویرایشگر وارد یا خارج شده اند.
از آنجا که پیاده سازی از vi وجود دارد که این حالت خرابی POSIX.1-2008 را نشان نمی دهد
اجازه نمی دهد

الزامی که نام دستورات الفبایی شامل تمام حروف الفبای زیر باشد
کاراکترها تا کاراکتر غیر الفبایی بعدی به این معنی است که نام دستورات الفبایی
معمولاً باید با یک یا چند کاراکتر غیر الفبایی از آرگومان هایشان جدا شوند
آ یا '!' کاراکتر، به جز مواردی که برای استثناها مشخص شده است حذف کردن, kو s
دستورات

از نظر تاریخی، اعدام مکرر ex به طور پیش فرض چاپ دستورات ( -D، اوف,
، ) هر کاراکتر درخواستی را پاک کرد و خطوط بعدی را نمایش داد
بدون پیمایش ترمینال؛ یعنی بلافاصله زیر هر خطی که قبلاً نمایش داده شده است.
این یک نمایش تمیزتر از خطوط موجود در فایل را برای کاربر فراهم کرد. POSIX.1-2008
به این رفتار نیاز ندارد زیرا ممکن است در برخی شرایط غیرممکن باشد. با این حال،
پیاده سازی ها به شدت تشویق می شوند تا در صورت امکان این معنایی را ارائه دهند.

از لحاظ تاریخی، این امکان وجود داشت که فایل ها را در وسط یک دستور تغییر دهید و آن را داشته باشید
بقیه دستور اجرا شده در فایل جدید؛ مثلا:

:ویرایش + 25 file.c | s/abc/ABC/ | 1

یک دستور معتبر بود، و جایگزینی در فایل تازه ویرایش شده انجام شد.
POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد. دستورات زیر هستند
نمونه هایی که تمرین می کنند ex تجزیه کننده:

از دست فوو | بار' > فایل 1; از دست "فو/بار" > فایل 2;
vi
:ویرایش +1 | s/|/PIPE/ | w file1 | e file2 | 1 | s/\//SLASH/ | wq

از لحاظ تاریخی، هیچ حفاظتی در اجرای ویرایشگر وجود نداشت که از آن اجتناب شود ex جهانی, v, @,
or * دستوراتی که بافرهای ویرایش را در حین اجرای دستورات مرتبط خود تغییر می دهند. زیرا
این تقریباً همیشه منجر به شکست فاجعه بار ویرایشگر می شود و
پیاده سازی هایی وجود دارند که این مشکلات را نشان می دهند، POSIX.1-2008 نیاز به تغییر دارد
بافر ویرایش در طول یک جهانی or v فرمان، یا در طول یک @ or * دستوری که برای آن وجود دارد
بیش از یک اجرا خواهد بود، یک خطا خواهد بود. پیاده سازی هایی که از چندگانه پشتیبانی می کنند
بافرهای ویرایش به طور همزمان قویاً تشویق می شوند که همان معناشناسی را در آنها اعمال کنند
سوئیچینگ بین بافرها نیز

La ex نقل قول دستور مورد نیاز POSIX.1-2008 یک ابرمجموعه از نقل قول در تاریخ است
پیاده سازی های ویرایشگر به عنوان مثال، از نظر تاریخی امکان فرار از الف وجود نداشت
در نام فایل؛ مثلا، :ویرایش فوو\\\ بار نام فایل های زیادی را گزارش می کند
برای دستور ویرایش وارد شده بود و هیچ روشی برای فرار از a وجود نداشت که در
اولین استدلال an ویرایش کنید, ex, بعد، یا بصری اصلا دستور بده POSIX.1-2008 گسترش می یابد
رویه تاریخی، مستلزم این است که رفتار نقل قول در همه موارد منسجم باشد ex
دستورات، به جز نقشه, نقشه برداری, مختصرو غیر اختصاری دستورات، که
از نظر تاریخی استفاده می شود -V به جای شخصیت ها برای نقل قول برای آن ها
چهار دستور، POSIX.1-2008 نیاز به انطباق با عملکرد تاریخی دارد.

بک اسلش نقل قول در ex غیر شهودی است -فرارها نادیده گرفته می شوند مگر اینکه آنها
فرار از یک شخصیت خاص؛ به عنوان مثال، هنگام اجرا پرونده بسط آرگومان،
رشته "\\%" برابر است با '\%'، نه "\جاری نام خانوادگی>". این می تواند گیج کننده باشد
کاربران به دلیل معمولا یکی از شخصیت هایی است که باعث گسترش پوسته می شود
انجام شود، و بنابراین قوانین نقل قول پوسته باید در نظر گرفته شوند.
عموماً کاراکترهای نقل قول تنها در صورتی مورد توجه قرار می گیرند که از یک کاراکتر خاص فرار کنند و
برای هر لایه تجزیه ای که کاراکتر مربوط به آن است، باید یک کاراکتر نقل قول ارائه شود
خاص به عنوان مثال دیگر، تنها یک تک لازم است برای '\l' دنباله
در الگوهای جایگزین جایگزین، زیرا شخصیت "من" برای هیچکدام خاص نیست
لایه تجزیه بالای آن

- V نقل قول در ex کمی با نقل قول بک اسلش متفاوت است. در چهار
دستور می دهد که در آن نقل قول -V اعمال می شود (مختصر, غیر اختصاری, نقشهو نقشه برداری) هر
شخصیت ممکن است توسط a فرار کند -V آیا معنای خاصی خواهد داشت یا نه.
POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

پیاده‌سازی‌های تاریخی ویرایشگر نیازی به جداکننده‌های درون کاراکتر نداشتند
کلاس هایی که باید فرار کرد. برای مثال دستور :s/[/]// روی رشته "xxx/yyyy" خواهد بود
حذف کنید '/' از رشته POSIX.1-2008 این عمل تاریخی را مجاز نمی داند
سازگاری و به دلیل اینکه با الزام به آن، بار زیادی را بر روی اجراها می گذارد
دانش عبارات منظم در تجزیه کننده ویرایشگر ساخته شود.

از نظر تاریخی، نقل شخصیت ها در ex دستورات به طور متناقض مدیریت شد. که در
اکثر موارد، کاراکتر همیشه دستور را خاتمه می داد، صرف نظر از هر کدام
شخصیت فرار قبلی، زیرا شخصیت ها فرار نکردند
شخصیت ها برای اکثر ex دستورات با این حال، برخی از ex دستورات (مثلا s, نقشهو
مخفف) مجاز است شخصیت هایی که باید فرار کرد (اگرچه در مورد نقشه
و مخفف، کاراکترهای -V به جای آن از آنها فرار کردند شخصیت ها).
این نه تنها در خط فرمان، بلکه در خط فرمان نیز صادق بود exrc و منبعd فایل ها مثلا،
فرمان:

نقشه = فو بار

موفق خواهد شد، اگرچه گاهی اوقات بدست آوردن آن دشوار بود -V و درج شده
گذشت به ex تجزیه کننده برای سازگاری و سادگی مشخصات،
POSIX.1-2008 مستلزم آن است که امکان فرار وجود داشته باشد شخصیت ها در ex دستورات در
در همه زمان ها، با استفاده از شخصیت ها برای اکثر ex دستورات و استفاده از - V
شخصیت ها برای نقشه و مخفف دستورات مثلا دستور
چاپفهرست لازم است به عنوان یک فرمان تجزیه شود چاپفهرست.
در حالی که این با رویه تاریخی متفاوت است، توسعه دهندگان POSIX.1-2008 آن را بعید می دانستند
که هر اسکریپت یا کاربر به رفتار تاریخی بستگی دارد.

از لحاظ تاریخی، یک خطا در یک فرمان مشخص شده با استفاده از گزینه باعث بقیه نشد
از دستوراتی که باید کنار گذاشته شوند POSIX.1-2008 این را برای سازگاری با
کلیدهای نقشه برداری شده، @, جهانی, منبعو v دستورات، EXINIT متغیر محیطی و
la exrc فایل های.

ورودی ویرایش in ex
یکی از کاربردهای متداول تاریخی ex ویرایشگر بیش از اتصالات شبکه کند است.
ویرایشگرهایی که در حالت متعارف اجرا می‌شوند، می‌توانند به ترافیک بسیار کمتری برای ورود و خروج و به مراتب کمتر نیاز داشته باشند
پردازش روشن، ماشین میزبان، و همچنین پشتیبانی آسان تر از پایانه های حالت بلوک.
به این دلایل، POSIX.1-2008 آن را ایجاب می کند ex با استفاده از ورودی حالت متعارف پیاده سازی شود
پردازش، همانطور که از نظر تاریخی انجام شده است.

POSIX.1-2008 به 4 کاراکتر ویرایش ورودی BSD تاریخی «پاک کردن کلمه» نیاز ندارد
یا "بعدی تحت اللفظی". به همین دلیل، نحوه رسیدگی به آنها مشخص نیست ex,
اگرچه آنها باید اثر لازم را داشته باشند. پیاده سازی هایی که آنها را پس از رفع
خط با استفاده از a به پایان رسیده است یا کاراکتر -M و پیاده سازی هایی که
تکیه بر پشتیبانی ترمینال زیربنایی سیستم برای این پردازش، هر دو مطابق هستند.
از پیاده‌سازی‌ها خواسته می‌شود در صورت استفاده از عملکرد سیستم زیربنایی استفاده کنند
برای سازگاری با سایر رابط های ورودی متن سیستم امکان پذیر است.

از نظر تاریخی، زمانی که اوف کاراکتر برای کاهش استفاده شد خود توند سطح ،
مکان نما برای نمایش انتهای جدید حرکت کرد خود توند شخصیت ها، اما حرکت نمی کند
مکان نما به یک خط جدید، و نه آن را پاک کرد - کاراکتر D از خط.
POSIX.1-2008 مشخص نمی کند که مکان نما در همان خط باقی بماند یا بقیه موارد
خط پاک می شود؛ با این حال، پیاده سازی ها برای ارائه بهترین ها به شدت تشویق می شوند
رابط کاربری ممکن؛ یعنی مکان نما باید در همان خط باقی بماند و هر کدام
کاراکتر -D روی خط باید پاک شود.

POSIX.1-2008 به نویسه ویرایش 4 ورودی BSD تاریخی "Reprint" نیاز ندارد،
به طور سنتی -R، که ورودی فعلی را از کاربر دوباره نمایش می دهد. برای این
دلیل، و به این دلیل که عملکرد را نمی توان پس از خط اجرا کرد
POSIX.1-2008 که توسط کاربر خاتمه یافته است، هیچ الزامی در مورد این عملکرد ندارد.
به شدت از پیاده سازی ها خواسته می شود تا این قابلیت تاریخی را در دسترس قرار دهند، اگر
امکان پذیر است.

تاریخی، -Q تابع بعدی تحت اللفظی را در انجام نداد ex، همانطور که در vi.
POSIX.1-2008 نیاز به انطباق با رویه تاریخی برای جلوگیری از شکستن تاریخ دارد ex
اسکریپت ها و exrc فایل های.

اوف
آیا اوف شخصیت بلافاصله تغییر می کند خود توند کاراکترها در اعلان است
نامشخص باقی بماند تا پیاده سازی ها بتوانند در حضور سیستم هایی که انجام می دهند مطابقت داشته باشند
از این قابلیت پشتیبانی نمی کند. پیاده سازی ها برای اصلاح خط و
در صورت امکان فوراً آن را دوباره نمایش دهید.

مشخصات دست زدن به اوف شخصیت با عملکرد تاریخی متفاوت است
فقط در آن اوف اگر کاراکترها از نویسه‌های معمولی در متن پیروی کنند، کنار گذاشته نمی‌شوند
ورودی از نظر تاریخی، آنها همیشه کنار گذاشته می شدند.

فرمان توضیحات in ex
از لحاظ تاریخی، چندین دستور (به عنوان مثال، جهانی, v, بصری, s, نوشتن, wq, یانک, !, <,
>, &و ~) در فایل های خالی قابل اجرا بودند (یعنی آدرس(های) پیش فرض 0 بودند) یا
آدرس های صریح مجاز 0 (به عنوان مثال، 0 یک آدرس معتبر بود، یا 0,0 یک آدرس معتبر بود
دامنه). آدرس های 0 یا اجرای دستور در یک فایل خالی، فقط برای آن معنا دارد
دستوراتی که متن جدیدی را به بافر ویرایش اضافه می‌کنند یا دستورات را می‌نویسند (زیرا ممکن است کاربران بخواهند
فایل های خالی بنویسید). POSIX.1-2008 به این رفتار برای چنین دستوراتی نیاز دارد و آن را غیرمجاز می کند
در غیر این صورت، برای سازگاری و سادگی مشخصات.

یک شمارش تا یک ex فرمان از نظر تاریخی تصحیح شده است که بزرگتر از آخرین نباشد
خط در یک فایل؛ به عنوان مثال، در یک فایل پنج خطی، دستور چاپ 1,6 شکست خواهد خورد، اما
فرمان 1 چاپ 300 موفق خواهد شد POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

از لحاظ تاریخی، استفاده از پرچم در ex دستورات ممکن است مبهم باشند. تاریخی عمومی
عمل همانطور که توسط POSIX.1-2008 شرح داده شده بود، اما موارد خاصی وجود داشت. برای
به عنوان مثال، فهرست, عددو چاپ دستورات نادیده گرفته شده به عقب برگشت آدرس. برای
مثال، 3p +++# خط 3 را نمایش می دهد و 3 خط فعلی پس از اجرا خواهد بود
از فرمان را باز کن و بصری دستورات هم افست های انتهایی و هم را نادیده می گیرند
پرچم های دنباله دار همچنین، پرچم های مشخص شده به باز کن و بصری دستورات بد عمل کردند
با فهرست گزینه ویرایش، و تنظیم و سپس لغو تنظیم آن در حین باز/بصری
جلسه باعث می شود vi برای توقف نمایش خطوط در قالب مشخص شده. برای ثبات
و سادگی مشخصات، POSIX.1-2008 هیچ یک از این استثناها را برای
قانون کلی

POSIX.1-2008 از این کلمه استفاده می کند کپی کنید در چندین مکان هنگام بحث در مورد بافرها. این نیست
به معنای اجرای

تاریخی، ex کاربران نمی توانند بافرهای عددی را به دلیل ابهام در این مورد مشخص کنند
باعث؛ برای مثال در دستور 3 حذف کردن 2، مشخص نیست که آیا 2 یک بافر است یا خیر
نام یا الف تعداد دفعات مشاهده. POSIX.1-2008 به طور پیش‌فرض نیازمند انطباق با رویه تاریخی است، اما
مانع از گسترش نیست.

از لحاظ تاریخی، محتویات بافر بی نام اغلب پس از دستورات کنار گذاشته می شد
که به صراحت بر آن تأثیری نداشت. به عنوان مثال، هنگام استفاده از ویرایش کنید دستور تعویض
فایل ها. برای سازگاری و سادگی مشخصات، POSIX.1-2008 این اجازه را نمی دهد
رفتار.

La ex ابزار از نظر تاریخی به بافرهای عددی دسترسی نداشت و علاوه بر این،
حذف خطوط در ex محتوای آنها را تغییر نداده است. به عنوان مثال، اگر پس از انجام حذف
in vi، کاربر به ex، یک حذف دیگر انجام داد و سپس به آن بازگشت viاز
محتویات بافرهای عددی تغییر نمی کرد. POSIX.1-2008 به انطباق نیاز دارد
به عمل تاریخی بافرهای عددی در ex ابزار به منظور
توصیف بافرها را به یک مکان در POSIX.1-2008 محدود کنید.

متاکاراکترهایی که باعث گسترش پوسته می شوند پرونده استدلال ها با تاریخی مطابقت دارند
تمرین کنید، همانطور که روش برای انجام گسترش پوسته انجام می شود. پیاده سازی هایی که مایل به ارائه هستند
کاربرانی که دارای انعطاف پذیری برای تغییر مجموعه متاکاراکترها هستند تشویق می شوند تا a
shellmeta گزینه ویرایش رشته

تاریخی، ex دستورات اجرا شده از vi زمانی که به شدت این کار را نکرد، صفحه را تازه کرد
نیاز به انجام این کار؛ مثلا، :!تاریخ > / dev / null به نوسازی صفحه نیاز ندارد زیرا
خروجی یونیکس تاریخ دستور فقط به یک خط از صفحه نیاز دارد.
POSIX.1-2008 مستلزم آن است که اگر صفحه بازنویسی شده باشد، بازخوانی شود، اما باعث می شود
هیچ الزامی در مورد چگونگی اجرای این تصمیم وجود ندارد.
پیاده سازی ها ممکن است بدون توجه به صفحه نمایش را درخواست کنند و آن را تازه کنند.

مخفف
رویه تاریخی این بود که کاراکترهایی که به عنوان بخشی از مخفف وارد می شدند
جایگزینی مشمول شد نقشه بسط، نمایش نمایشی گزینه ویرایش، بیشتر
بسط های اختصاری و غیره؛ یعنی به طور منطقی به ترمینال فشار داده شدند
صف ورودی، و جایگزین ساده ای نبودند. POSIX.1-2008 نیاز به انطباق با
عمل تاریخی رویه تاریخی این بود که هرگاه یک شخصیت غیرکلامی (که داشت
توسط a فرار نکرده است -V) بعد از یک کاراکتر کلمه وارد شد، vi بررسی خواهد کرد
اختصارات چک بر اساس نوع کاراکتر وارد شده قبل از کلمه بود
کاراکتر جفت کلمه/غیر کلمه که چک را آغاز کرده است. شخصیت کلمه از
جفت کلمه/غیر کلمه که چک را آغاز کرد و همه کاراکترها قبل از ماشه وارد شدند
جفتی که از آن نوع بودند به استثنای چک وارد چک شدند
کاراکترهایی که همیشه مخفف را محدود می کردند.

این بدان معنی است که برای کارکرد مخفف، lhs باید با یک کاراکتر کلمه تمام شود،
هیچ انتقالی از کلمه به کاراکترهای غیر کلمه وجود ندارد (یا معاون برعکس) غیر از
بین شخصیت های آخر و بعدی در lhs، و نمی تواند وجود داشته باشد
شخصیت ها در lhs. علاوه بر این، به دلیل قواعد نقل تاریخی، چنین بود
غیرممکن است که وارد یک کلمه تحت اللفظی شوید -V در lhs. POSIX.1-2008 به انطباق نیاز دارد
به عمل تاریخی پیاده‌سازی‌های تاریخی در هنگام اختصارات به کاربران اطلاع ندادند
که هرگز قابل استفاده نبود وارد شدند. پیاده سازی ها به شدت تشویق می شوند تا این کار را انجام دهند.

به عنوان مثال، اختصارات زیر کار خواهند کرد:

:ab (p جایگزین کردن
:ab p جایگزین کردن
:ab ((پ جایگزین کردن

اختصارات زیر کار نمی کنند:

:ab ( جایگزین کردن
:ab (صص جایگزین کردن

رویه تاریخی این است که کلمات در مورد vi خط فرمان کولون مشمول بودند
بسط مخفف، از جمله استدلال به مخفف (و جالب تر)
غیر مختصر فرمان زیرا پیاده سازی هایی هستند که بسط اختصاری را انجام نمی دهند
برای اولین آرگومان آن دستورها، این مجاز است، اما الزامی نیست
POSIX.1-2008. با این حال، دنباله زیر:

:ab فو بار
:ab فو پایگاه

منجر به اضافه شدن یک مخفف از "باز" برای رشته "بار" در تاریخی
ex/viو دنباله:

:ab foo1 بار
:ab foo2 بار
:غیر اختصاری foo2

مخفف را حذف کرد "foo1"، نه "foo2". این رفتارها مجاز نیست
POSIX.1-2008 زیرا آنها به وضوح انتظارات کاربر را نقض می کنند.

این رویه تاریخی بود که - V، نه ، شخصیت ها به این صورت تعبیر شوند
فرار از شخصیت های بعدی در مختصر فرمان POSIX.1-2008 نیاز دارد
انطباق با رویه تاریخی؛ با این حال، لازم به ذکر است که یک مخفف
حاوی الف هرگز کار نخواهد کرد.

ضمیمه کردن
از نظر تاریخی، هر متنی به دنبال الف جداکننده دستور بعد از یک ضمیمه کردن,
تغییر دادن، یا درج دستور بخشی از متن درج شد. به عنوان مثال، در دستور:

:g/pattern/append|stuff1

یک خط حاوی متن "موارد 1" به هر خط الگویی منطبق الحاق خواهد شد. آی تی
همچنین از نظر تاریخی برای وارد کردن معتبر بود:

:append|stuff1
چیز 2
.

و متن روی ex خط فرمان به همراه متن درج شده پس از آن اضافه می شود
آی تی. با این حال، یک اشکال تاریخی وجود داشت که کاربر باید دو پایانه را وارد می کرد
خطوط ( "." خطوط) برای پایان دادن به حالت ورودی متن در این مورد. POSIX.1-2008 نیاز دارد
انطباق با رویه تاریخی است، اما نیاز تاریخی به چندگانه را نمی پذیرد
خطوط پایان دهنده

تغییر دادن
به دلیل آن مراجعه کنید ضمیمه کردن فرمان تمرین تاریخی برای موقعیت یابی مکان نما پس از
دستور تغییر زمانی که متنی وارد نمی شود، همانطور که در POSIX.1-2008 توضیح داده شده است. با این حال، یکی
مشخص است که پیاده سازی System V به گونه ای اصلاح شده است که مکان نما در موقعیت قرار گیرد
در اولین آدرس مشخص شده، و نه در خط قبل از آدرس اول. POSIX.1-2008
این اصلاح را برای سازگاری مجاز نمی‌داند.

از لحاظ تاریخی ، تغییر دادن فرمان از آرگومان های بافر پشتیبانی نمی کند، اگرچه برخی از آنها
پیاده سازی اجازه می دهد تا مشخصات یک بافر اختیاری را مشخص کند. این رفتار هیچ کدام نیست
توسط POSIX.1-2008 مورد نیاز و یا غیر مجاز است.

تغییر دادن فهرست راهنما
یک پسوند رایج در ex پیاده سازی استفاده از عناصر الف است مسیر cd گزینه ویرایش به عنوان
دایرکتوری های پیشوند برای مسیر استدلال به چدیر که نام مسیرهای نسبی هستند و اینطور نیست
داشته باشد "." or ".." به عنوان اولین جزء آنها. عناصر در مسیر cd گزینه ویرایش هستند
-جدا از هم. مقدار اولیه از مسیر cd گزینه ویرایش مقدار پوسته است
CDPATH متغیر محیطی. این ویژگی در POSIX.1-2008 گنجانده نشده است زیرا این ویژگی را دارد
در هیچ یک از پیاده سازی های در نظر گرفته شده در عمل تاریخی وجود ندارد.

نسخه
پیاده سازی های تاریخی از ex کپی مجاز به خطوط داخل محدوده مشخص شده؛
به عنوان مثال، :2,5،3 کپیXNUMX دستور معتبری بود POSIX.1-2008 نیاز به انطباق با
عمل تاریخی

حذف
POSIX.1-2008 به پشتیبانی برای تجزیه تاریخی a نیاز دارد حذف کردن دستور به دنبال آن
پرچم ها، بدون هیچ دخالتی شخصیت ها. مثلا:

1dp خط اول را حذف می کند و خط دوم را چاپ می کند.

1delep در مورد 1dp.

1d خط اول را حذف می کند و آن را در بافر ذخیره می کند p.

1d p1l (Pee-one-ell.) خط اول را حذف می کند و آن را در بافر ذخیره می کند p، و لیست کردن خط
که دوم بود

ویرایش
از نظر تاریخی، هر ex دستور را می توان به عنوان یک وارد کرد +فرمان استدلال به ویرایش کنید فرمان ،
اگرچه برخی (مثلا درج و ضمیمه کردن) شناخته شده بودند که باعث سردرگمی تاریخی می شدند
پیاده سازی ها برای سازگاری و سادگی مشخصات، POSIX.1-2008 نیاز دارد
که هر دستوری به عنوان یک استدلال برای آن پشتیبانی شود ویرایش کنید فرمان

از لحاظ تاریخی، آرگومان فرمان با تنظیم خط فعلی روی خط آخر اجرا می شد
از پرونده، صرف نظر از اینکه ویرایش کنید دستور از حالت بصری اجرا شد یا خیر.
POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

از لحاظ تاریخی ، +فرمان مشخص شده به ویرایش کنید و بعد دستورات توسط
اولین ، و هیچ راهی برای نقل آنها وجود نداشت. برای ثبات، POSIX.1-2008 نیاز دارد
که معمول است ex نقل قول معکوس ارائه شود.

از نظر تاریخی، مشخص کردن +فرمان آرگومان دستور ویرایش به نام فایل نیاز دارد
نیز مشخص شود؛ مثلا، :ویرایش + 100 همیشه شکست می خورد برای قوام و
سادگی مشخصات، POSIX.1-2008 اجازه نمی دهد این استفاده برای آن شکست بخورد.
دلیل.

از لحاظ تاریخی، تنها موقعیت مکان نما آخرین فایل ویرایش شده توسط
ویرایشگر POSIX.1-2008 نیاز دارد که این مورد پشتیبانی شود. با این حال، پیاده سازی ها هستند
مجاز به یادآوری و بازیابی موقعیت مکان نما برای هر فایلی که قبلاً ویرایش شده است.

پرونده
نسخه های تاریخی از ex سردبیر پرونده فرمان یک خط فعلی و تعداد نمایش داده می شود
خطوط در بافر ویرایش 0 زمانی که فایل خالی بود، در حالی که vi دستور -G
یک خط فعلی و تعداد خطوط در بافر ویرایش 1 در همان نمایش داده می شود
وضعیت. POSIX.1-2008 این تناقض را مجاز نمی‌داند، درعوض به یک پیام نیاز دارد
نمایش داده می شود که نشان می دهد فایل خالی است.

جهانی
عملیات دو گذر از جهانی و v دستورات در نظر گرفته نشده است
اجرا، تنها نتیجه مورد نیاز عملیات است.

خط و ستون فعلی همانطور که برای فرد مشخص شده است تنظیم می شود ex دستورات این
نیاز تجمعی است. به این معنی که خط و ستون فعلی باید در تمام خطوط ردیابی شوند
دستورات اجرا شده توسط جهانی or v دستورات

قرار دادن
به دلیل آن مراجعه کنید ضمیمه کردن فرمان

تاریخی، درج نمی توان با آدرس صفر استفاده کرد. یعنی نه در زمان ویرایش
بافر خالی بود POSIX.1-2008 مستلزم آن است که این دستور با دستور سازگار باشد
ضمیمه کردن فرمان

پیوستن
اقدام از پیوستن دستور در رابطه با کاراکترهای خاص فقط برای آن تعریف شده است
محل POSIX زیرا مقدار صحیح فضای سفید پس از یک دوره متفاوت است. که در
ژاپنی هیچ یک مورد نیاز نیست، در زبان فرانسه فقط یک فضای واحد و غیره.

فهرست
خروجی تاریخی از فهرست فرمان به طور بالقوه مبهم بود. استاندارد
توسعه دهندگان معتقد بودند که تصحیح این موضوع مهمتر از پایبندی به تاریخ است
عمل کنید، و POSIX.1-2008 به خروجی بدون ابهام نیاز دارد.

نقشه
از لحاظ تاریخی، نقشه‌های حالت فرمان فقط برای نام‌های فرمان اعمال می‌شد. برای مثال، اگر
شخصیت 'ایکس' نقشه برداری شد 'y'، دستور fx را جستجو کرد 'ایکس' شخصیت، نه
'y' شخصیت. POSIX.1-2008 به این رفتار نیاز دارد. از لحاظ تاریخی، ورود -V به عنوان
اولین کاراکتر a vi دستور خطا بود چندین پیاده سازی گسترش یافته است
معناشناسی از vi به طوری که -V به این معنی است که کاراکتر دستور بعدی است
نقشه برداری نشده است. این توسط POSIX.1-2008 مجاز است، اما الزامی نیست. صرف نظر از استفاده از
‐V برای فرار از شخصیت دوم یا بعدی در یک دنباله از کاراکترها که ممکن است
مطابقت الف نقشه دستور، یا هر کاراکتری در حالت ورودی متن، تمرین تاریخی است و
کلیدهای وارد شده را از مطابقت با نقشه متوقف می کند. POSIX.1-2008 نیاز به انطباق با
عمل تاریخی

پیاده سازی های تاریخی مجاز به استفاده از ارقام به عنوان یک نقشه فرمان lhs، اما پس از آن
نقشه را نادیده گرفت POSIX.1-2008 مستلزم آن است که ارقام نگاشت شده نادیده گرفته نشوند.

اجرای تاریخی نقشه فرمان اجازه نداد نقشه دستوراتی که بودند
اگر نویسه اول قابل چاپ بود، بیش از یک کاراکتر طول دارد. این رفتار
توسط POSIX.1-2008 مجاز است، اما الزامی نیست.

از لحاظ تاریخی، شخصیت‌های نقشه‌برداری شده دوباره نقشه‌برداری می‌شدند مگر اینکه بازنگری گزینه ویرایش تنظیم نشد، یا
پیشوند کاراکترهای نگاشت شده با کاراکترهای نگاشت مطابقت داشت. به عنوان مثال، در
نقشه:

: نقشه ab آ ب پ ت

شخصیت ها "ab" همانطور که هست مورد استفاده قرار گرفتند و دوباره نقشه برداری نشدند، اما شخصیت ها "سی دی" بود
در صورت لزوم نقشه برداری شده است. این می تواند باعث ایجاد حلقه های بی نهایت در vi مکانیسم های نقشه برداری
POSIX.1-2008 مستلزم انطباق با رویه تاریخی است و چنین حلقه هایی وجود داشته باشد
قابل وقفه

نقشه های ورودی متن مشکلات مشابهی با گسترش آن داشتند lhs برای ex نقشه و نقشه برداری!
همانطور که دستور داد ex مختصر و غیر اختصاری دستورات به دلیل آن مراجعه کنید ex
مختصر فرمان POSIX.1-2008 نیاز به اصلاح مشابهی در برخی از عملکردهای تاریخی دارد
برای نقشه و نقشه برداری دستورات، همانطور که برای مختصر و غیر اختصاری دستورات

تاریخی، نقشهs که زیر مجموعه های دیگر بودند نقشهبسته به نوع، رفتار متفاوتی داشت
به ترتیبی که آنها تعریف شدند. مثلا:

:نقشه! ab کوتاه
:نقشه! الفبا طولانی

همیشه شخصیت ها را ترجمه می کرد "ab" به "کوتاه"، صرف نظر از اینکه چقدر سریع است
کاراکتر "abc" وارد شدند. اگر ترتیب ورود معکوس شد:

:نقشه! الفبا طولانی
:نقشه! ab کوتاه

شخصیت ها "ab" باعث می شود ویرایشگر مکث کند و منتظر تکمیل شود 'ج'
شخصیت، و شخصیت ها ممکن است هرگز به نقشه برداری نشوند "کوتاه". برای قوام و
سادگی مشخصات، POSIX.1-2008 مستلزم آن است که از کوتاه ترین تطابق استفاده شود.
بار.

مدت زمانی که ویراستار صرف انتظار برای تکمیل کاراکترها می کند lhs is
نامشخص زیرا قابلیت های زمان بندی سیستم ها اغلب غیر دقیق و متغیر است و
ممکن است به عوامل دیگری مانند سرعت اتصال بستگی داشته باشد. زمان باید باشد
به اندازه کافی طولانی است که کاربر بتواند دنباله را کامل کند، اما نه به اندازه کافی برای آن
کاربر باید منتظر بماند. برخی از پیاده سازی های vi الف اضافه کرده اند زمان کلید گزینه، که
به کاربران این امکان را می دهد تا تعداد 0,1 ثانیه ای را که ویرایشگر منتظر تکمیل شدن است، تنظیم کنند
شخصیت ها. زیرا عملکرد ترمینال نگاشت شده و کلیدهای مکان نما تمایل دارند با یک شروع شوند
شخصیت، و پایان کلیدی است vi حالت ورودی متن، نقشهشروع با
کاراکترها معمولاً از این بازه زمانی معاف هستند، یا حداقل زمان آن تمام شده است
متفاوت

علامت
از لحاظ تاریخی، کاربران می‌توانستند علامت‌های «زمینه قبلی» را به صراحت تنظیم کنند. که در
علاوه بر این، ex دستورات '' و '` و vi دستورات '', ``, `'و '` همه اشاره شده است
همان علامت علاوه بر این، علائم زمینه قبلی در صورتی که دستور با
که آدرس تنظیم علامت مرتبط بود، ناموفق بود. POSIX.1-2008 نیاز دارد
انطباق با رویه تاریخی از نظر تاریخی، اگر خطوط مشخص شده حذف می شدند، علامت
نیز حذف شد، اما در صورت لغو تغییر دوباره ظاهر می‌شود. POSIX.1-2008 نیاز دارد
انطباق با رویه تاریخی

شرح رویدادهای ویژه ای که تنظیم می کند ` و ' نشانه های مطابق تاریخی
تمرین. به عنوان مثال، از نظر تاریخی دستور /a/،/b/ را تنظیم نکرد ` و ' نشانه ها، اما
فرمان /a/،/b/حذف انجام داد.

بعدی
از نظر تاریخی، هر ex دستور را می توان به عنوان یک وارد کرد +فرمان استدلال به بعد فرمان ،
اگرچه برخی (مثلا درج و ضمیمه کردن) شناخته شده بودند که باعث سردرگمی تاریخی می شدند
پیاده سازی ها POSIX.1-2008 مستلزم آن است که هر دستوری مجاز باشد و به این صورت عمل کند
مشخص شده. در بعد دستور می تواند بیش از یک فایل را بپذیرد، بنابراین استفاده هایی مانند:

بعد ls [abc] `

معتبر است؛ لازم نیست برای آن معتبر باشد ویرایش کنید or خواندن دستورات، برای مثال، زیرا آنها
فقط یک نام فایل را انتظار داشته باشید.

از لحاظ تاریخی ، بعد فرمان متفاوت از :باز پیچی فرمان در آن
پرچم نیرو را نادیده گرفت اگر خودکار نوشتن پرچم تعیین شد برای ثبات، POSIX.1-2008 این کار را انجام می دهد
اجازه این رفتار را نمی دهد

از لحاظ تاریخی ، بعد دستور مکان نما را طوری قرار داد که انگار فایل هرگز ویرایش نشده است
قبل، بدون توجه به POSIX.1-2008 این رفتار را برای سازگاری با
ویرایش کنید فرمان

پیاده سازی هایی که می خواهند همتای ارائه کنند بعد دستوری که آن را ویرایش کرد
فایل قبلی از دستور استفاده کرده اند قبلی [قبلی]، که نه پرونده بحث و جدل. POSIX.1-2008
به این دستور نیاز ندارد

باز کن
از لحاظ تاریخی ، باز کن اگر دستور شکست بخورد باز کن گزینه ویرایش تنظیم نشد.
POSIX.1-2008 به آن اشاره ای نمی کند باز کن گزینه ویرایش است و به این رفتار نیاز ندارد.
برخی از پیاده سازی های تاریخی اجازه ورود به حالت باز از حالت باز یا بصری را نمی دهند.
فقط از ex حالت برای ثبات، POSIX.1-2008 این رفتار را مجاز نمی‌داند.

از لحاظ تاریخی، ورود به حالت باز از خط فرمان (یعنی vi +باز کردن) در نتیجه ی چیزی
رفتارهای نابهنجار؛ به عنوان مثال ex فایل و تنظیم دستورات و vi فرمان
-G کار نکرد. برای ثبات، POSIX.1-2008 این رفتار را مجاز نمی‌داند.

از لحاظ تاریخی ، باز کن فرمان فقط مجاز است '/' کاراکترهایی که به عنوان جستجو استفاده می شوند
جداکننده الگو برای سازگاری، POSIX.1-2008 مستلزم این است که جداکننده های جستجوی مورد استفاده قرار گیرند
توسط s, جهانیو v دستورات نیز پذیرفته شود

حفظ
La حفظ کردن دستور از نظر تاریخی باعث نمی شود که فایل برای آن اصلاح نشده در نظر گرفته شود
اهداف دستورات آینده که ممکن است از ویرایشگر خارج شود. POSIX.1-2008 نیاز دارد
انطباق با رویه تاریخی

اسناد تاریخی بیان می‌کردند که نامه‌ای برای کاربر ارسال نشده است
اجرا شده؛ با این حال، پیاده سازی های تاریخی در این مورد نامه ارسال کردند. POSIX.1-2008
نیاز به انطباق با پیاده سازی های تاریخی دارد.

چاپ
نوشتن NUL توسط چاپ دستور به عنوان یک مورد خاص مشخص نشده است زیرا
توسعه دهندگان استاندارد نمی خواستند ex برای پشتیبانی از کاراکترهای NUL تاریخی،
کاراکترها با استفاده از نگاشت استاندارد ARPA نمایش داده می شوند که به شرح زیر است:

1. کاراکترهای قابل چاپ به حال خود رها می شوند.

2. کاراکترهای کنترل کمتر از \177 به صورت نمایش داده می شوند '^' به دنبال شخصیت
جبران از '@' کاراکتر در نقشه ASCII. برای مثال، \007 به صورت نمایش داده می شود
'^G'.

3. \177 به صورت نمایش داده می شود '^' و پس از آن "؟".

نمایش کاراکترهایی که مجموعه بیت هشتم خود را دارند کمتر استاندارد بود. موجود
پیاده سازی ها از هگز (0x00)، اکتال (\000)، و نمایش متا بیت استفاده می کنند. ( دومی
بایت هایی نمایش داده می شود که بیت هشتم آنها به عنوان دو کاراکتر تنظیم شده است "M-" بعد از آن
صفحه نمایش هفت بیتی همانطور که در بالا توضیح داده شد.) دومی احتمالاً بهترین ادعا را دارد
عمل تاریخی به دلیل استفاده از آن برای −v گزینه 4 BSD و 4 BSD مشتق شده
نسخه های گربه ابزار از سال 1980.

هیچ فرمت نمایش خاصی توسط POSIX.1-2008 مورد نیاز نیست.

در صورت امکان از وابستگی صریح به مجموعه کاراکترهای ASCII اجتناب شده است
استفاده از عبارت "توالی چند کاراکتری تعریف شده توسط پیاده سازی" برای نمایش
برای مثال، نویسه‌های غیرقابل چاپ به جای استفاده تاریخی، "^ من"
برای . پیاده سازی ها تشویق می شوند تا با رویه تاریخی در انطباق داشته باشند
عدم وجود هیچ دلیل قوی برای واگرایی

از نظر تاریخی، همه ex دستوراتی که با حرف شروع می شوند 'پ' می توان با استفاده از
نسخه های بزرگ دستورات؛ مثلا، چاپ], حفظ]و قرار دادن] تمام شد
نام دستورات معتبر POSIX.1-2008 اجازه می دهد، اما نیازی به این رویه تاریخی ندارد
زیرا فرم های بزرگ دستورات توسط برخی از پیاده سازی ها برای مقاصد دیگر استفاده می شود.

قرار دادن
از نظر تاریخی، یک ex قرار دادن دستوری که از حالت باز یا بصری اجرا می‌شد، همان فرمان بود
حالت باز یا بصری P دستور، اگر بافر نامگذاری شده باشد و در حالت کاراکتر بریده شده باشد، و
همان p اگر بافر نامگذاری شده و در حالت خط بریده شده باشد، دستور دهید. اگر بی نام
بافر منبع متن بود، کل خطی که متن از آن گرفته شده بود
معمولا قرار دادنو بافر به گونه‌ای اداره می‌شد که گویی در حالت خط است، اما امکان دریافت آن وجود داشت
رفتار فوق العاده غیرعادی علاوه بر این، با استفاده از Q دستور تعویض به ex حالت، و
سپس انجام یک قرار دادن اغلب منجر به خطاهایی نیز می شود، مانند پیوست کردن متنی که بود
بی ارتباط با محتویات (فرضی) بافر. برای سازگاری و سادگی
مشخصات، POSIX.1-2008 این رفتارها را مجاز نمی‌داند. همه ex قرار دادن دستورات هستند
برای کار در حالت خط مورد نیاز است و محتویات بافرها تغییر نمی کند
تغییر حالت ویرایشگر

خواندن
از نظر تاریخی، یک ex خواندن فرمان اجرا شده از حالت باز یا بصری، در حالت خالی اجرا می شود
فایل، یک خط خالی به عنوان خط اول فایل باقی گذاشت. برای سازگاری و سادگی
مشخصات، POSIX.1-2008 این رفتار را مجاز نمی‌داند. از نظر تاریخی، الف خواندن در فضای باز
یا حالت بصری از یک برنامه، مکان نما را در آخرین خط خوانده شده، نه اولین سطر، گذاشته است. برای
سازگاری، POSIX.1-2008 این رفتار را مجاز نمی‌داند.

پیاده سازی های تاریخی از ex قادر به لغو نشدند خواندن دستوراتی که از
خروجی یک برنامه برای ثبات، POSIX.1-2008 این رفتار را مجاز نمی‌داند.

از لحاظ تاریخی ، ex و vi پیام پس از موفقیت آمیز خواندن or نوشتن دستور مشخص شده است
"کاراکترها"، نه "بایت". POSIX.1-2008 مستلزم این است که تعداد بایت ها باشد
نمایش داده می شود، نه تعداد کاراکترها، زیرا ممکن است در چند بایت دشوار باشد
پیاده سازی برای تعیین تعداد کاراکترهای خوانده شده. اجراها تشویق می شوند
برای شفاف سازی پیام نمایش داده شده به کاربر.

از لحاظ تاریخی، خواندن در فایل‌هایی غیر از نوع معمولی مجاز نبود، به جز FIFO
فایل‌ها قابل خواندن بودند (احتمالاً فقط به این دلیل که در آن زمان وجود نداشتند ex و vi بود
در اصل نوشته شده است). زیرا تاریخی ex ارزیابی خواندن! و خواندن ! هم ارز،
هیچ راهی اختیاری برای خواندن اجباری وجود ندارد. POSIX.1-2008 اجازه می دهد، اما نمی دهد
نیاز، این رفتار

بهبود یافتن
برخی از پیاده سازی های تاریخی ویرایشگر به کاربران اجازه می دهد تا بافر ویرایش را بازیابی کنند
محتویات یک جلسه ویرایش قبلی، و سپس بدون ذخیره آن محتویات (یا
به صراحت آنها را دور می اندازد). هدف POSIX.1-2008 در الزام به ویرایش بافر
برای جلوگیری از این خطای کاربر، به عنوان اصلاح شده در نظر گرفته شود.

باز پیچی
پیاده سازی های تاریخی پشتیبانی می کند باز پیچی دستور زمانی که کاربر در حال ویرایش بود
اولین فایل در لیست؛ یعنی فایلی که باز پیچی دستور ویرایش می کند. POSIX.1-2008
مستلزم انطباق با رویه تاریخی است.

جایگزین
تاریخی، ex یک را پذیرفت r گزینه به s فرمان اثر از r گزینه بود
از آخرین عبارت منظم استفاده شده در هر دستوری به عنوان الگو استفاده کنید ~
فرمان دادن r گزینه مورد نیاز POSIX.1-2008 نیست. از نظر تاریخی، c و g گزینه های
جابجا شدند. برای مثال دستور :s/abc/def/ همان بود s/abc/def/ccccgggg.
برای سادگی مشخصات، POSIX.1-2008 این رفتار را مجاز نمی‌داند.

دستور tilde اغلب برای جایگزینی آخرین جستجوی RE استفاده می شود. به عنوان مثال، در
توالی:

s/قرمز/آبی/
/سبز
~

la ~ دستور معادل است با:

s/سبز/آبی/

تاریخی، ex تمام فرم های زیر را پذیرفت:

s/abc/def/
s/abc/def
s/abc/
s/abc

POSIX.1-2008 به انطباق با این رویه تاریخی نیاز دارد.

La s فرمان فرض می کند که '^' کاراکتر فقط یک ستون را اشغال می کند
نمایش دادن. بسیاری از ex و vi مشخصات فرض می کند که فقط الف را اشغال می کند
تک ستون در نمایشگر هیچ مجموعه شخصیتی شناخته شده ای وجود ندارد که برای آن اینطور نباشد
درست است

از نظر تاریخی، موقعیت ستون نهایی برای دستورات جایگزین بر اساس قبلی بود
حرکات ستون؛ جستجو برای یک الگو و به دنبال آن یک جایگزین، ستون را ترک می کند
موقعیت بدون تغییر است، در حالی که یک دستور 0 به دنبال یک جایگزین، ستون را تغییر می دهد
موقعیت به اولین غیر . برای سازگاری و سادگی مشخصات،
POSIX.1-2008 مستلزم این است که موقعیت ستون نهایی همیشه روی اول تنظیم شود
غیر- .

تنظیم
پیاده‌سازی‌های تاریخی همه گزینه‌ها را برای هر رخداد دوباره نمایش می‌دهند تمام
کلمه کلیدی. POSIX.1-2008 اجازه می دهد، اما نیازی به این رفتار ندارد.

برچسب
هیچ الزامی در مورد مکان وجود ندارد ex و vi باید به دنبال فایل ارجاع شده توسط تگ بگردید
ورود رویه تاریخی جستجوی مسیری بوده است که در آن یافت می شود برچسب ها فایل، بر اساس
دایرکتوری فعلی یک پسوند مفیدی که در برخی از پیاده سازی ها یافت می شود، ظاهر مبتنی بر آن است
در دایرکتوری حاوی فایل برچسب هایی که ورودی را نیز در خود جای داده است. هیچ الزامی نیست
در مورد اینکه کدام مرجع برای تگ در فایل تگ ها استفاده شده است. این عمدی است، در
به منظور اجازه دادن به پسوندهایی مانند چندین ورودی در یک فایل برچسب برای یک برچسب.

از آنجا که کاربران اغلب فایل های تگ های مختلفی را مشخص می کنند که برخی از آنها لازم نیست مرتبط باشند
یا در هر زمان خاصی وجود داشته باشد، POSIX.1-2008 به آن پیام های خطا در مورد مشکل نیاز دارد
فایل‌های برچسب‌ها فقط در صورتی نمایش داده می‌شوند که تگ درخواستی پیدا نشود و سپس فقط یک بار برای
هر بار که برچسب گزینه ویرایش تغییر کرده است.

شرط عدم تغییر بافر ویرایش فعلی تنها در صورتی ضروری است که فایل باشد
نشان داده شده توسط ورودی برچسب با فایل فعلی یکسان نیست (همانطور که توسط جریان تعریف شده است
نام مسیر). از لحاظ تاریخی، اگر نام فایل تغییر کرده بود، فایل مجدداً بارگیری می شد
گویی نام فایل با نام مسیر فعلی متفاوت است. برای سازگاری و سادگی
از مشخصات، POSIX.1-2008 این رفتار را مجاز نمی‌داند و لازم است که نام
تنها عامل در تصمیم گیری

تاریخی، vi فقط برچسب‌ها را در فایل فعلی از مکان‌نمای فعلی تا به جستجو کرد
انتهای فایل، و بنابراین، اگر wrapscan گزینه تنظیم نشده بود، برچسب ها قبلاً رخ داده بودند
مکان نما فعلی پیدا نشد. POSIX.1-2008 این را یک اشکال و پیاده سازی می داند
بدون در نظر گرفتن موارد، باید اولین مورد را در فایل جستجو کنند.

خنثی کردن
La خنثی کردن توضیحات عمدا از کلمه "تغییر یافته" استفاده می کند. را خنثی کردن فرمان نیست
در نظر گرفته شده برای لغو دستوراتی که جایگزین محتویات بافر ویرایش می شوند، مانند ویرایش کنید,
بعد, برچسب، یا بهبود پیدا کن.

مکان نما بعد از خنثی کردن فرمان در تاریخ متناقض بود vi، گاهی
تلاش برای بازگرداندن موقعیت اصلی مکان نما (جهانی, خنثی کردنو v دستورات) و
گاهی اوقات در حضور نقشه ها، مکان نما را بر روی آخرین خط اضافه یا تغییر می دهد
به جای اولی POSIX.1-2008 نیاز به یک رفتار ساده شده برای ثبات و
سادگی مشخصات

نسخه
La نسخه فرمان را نمی توان دقیقاً مشخص کرد زیرا به طور گسترده پذیرفته نشده است
تعریف آنچه که اطلاعات نسخه باید حاوی آن باشد. اجراها تشویق می شوند
انجام کاری به طور منطقی هوشمندانه

نوشتن
از لحاظ تاریخی ، ex و vi پیام پس از موفقیت آمیز خواندن or نوشتن دستور مشخص شده است
"کاراکترها"، نه "بایت". POSIX.1-2008 مستلزم این است که تعداد بایت ها باشد
نمایش داده می شود، نه تعداد کاراکترها، زیرا ممکن است در چند بایت دشوار باشد
پیاده سازی برای تعیین تعداد کاراکترهای نوشته شده. اجراها هستند
تشویق به شفاف سازی پیام نمایش داده شده به کاربر.

آزمایش‌های تعریف‌شده از طریق پیاده‌سازی مجاز هستند تا پیاده‌سازی‌ها بتوانند اضافی را انجام دهند
چک ها؛ به عنوان مثال، برای قفل ها یا زمان های اصلاح فایل.

از لحاظ تاریخی، تلاش برای الحاق به یک فایل موجود باعث خطا می‌شود. رها شده است
در POSIX.1-2008 مشخص نشده است تا به پیاده سازی ها اجازه دهد نوشتن موفق شوید، به طوری که
معنای ضمیمه مشابه معنای تاریخی است csh.

تاریخی vi اجازه می دهد بافرهای ویرایش خالی نوشته شود. با این حال، از راه vi کردم
در مورد رسیدگی به پرونده‌های «خالی» همیشه یک خط در بافر ویرایش وجود داشت، خیر
مهم نیست، آنها را به عنوان فایل های یک خط خالی نوشت. POSIX.1-2008 اجازه نمی دهد
این رفتار

تاریخی، ex خروجی استاندارد و خطای استاندارد را به مقادیرشان از زمان بازگرداندن ex
قبل از انجام نوشتن در برنامه ها فراخوانی شد. این می تواند ترمینال را مختل کند
پیکربندی و همچنین یک مشکل امنیتی برای برخی از پایانه ها است. POSIX.1-2008 ندارد
این اجازه را می دهد، و نیاز است که خروجی برنامه گرفته شود و به گونه ای نمایش داده شود که گویی توسط برنامه ex
چاپ فرمان

تنظیم کردن پنجره
از لحاظ تاریخی، تعداد خطوط بر روی مقدار تنظیم شده بود حرکت گزینه اگر نوع
کاراکتر انتهای فایل بود. این ویژگی در اکثر پیاده سازی های تاریخی برای مدت طولانی شکسته شده بود
پیش، با این حال، و هیچ جا مستند نیست. به همین دلیل، POSIX.1-2008 قاطعانه است
بی صدا.

از لحاظ تاریخی ، z فرمان بود -حساس و z + و z - کارهای مختلف انجام داد
نسبت به z+ و z− زیرا نوع آن از پرچم قابل تشخیص نبود. (دستورات z .
و z = از نظر تاریخی نامعتبر بودند.) POSIX.1-2008 به انطباق با این تاریخ نیاز دارد
عمل.

از لحاظ تاریخی ، z فرمان بیشتر بود -حساس در آن است تعداد دفعات مشاهده نمیتواند باشد
-محدود شده برای مثال دستورات z= 5 و z− 5 نیز نامعتبر بودند. از آنجا که
تعداد دفعات مشاهده از نظر نوع کاراکتر یا پرچم ها مبهم نیست، این نیست
مجاز توسط POSIX.1-2008.

در رفتن
تاریخی، ex دستورات فیلتر فقط خروجی استاندارد دستورات را می خوانند و اجازه می دهند
خطای استاندارد طبق معمول در ترمینال ظاهر می شود. در vi ابزار، با این حال، هر دو را بخوانید
خروجی استاندارد و خطای استاندارد POSIX.1-2008 به رفتار دوم برای هر دو نیاز دارد ex
و vi، برای ثبات.

تغییر ترک کرد و تغییر درست
از لحاظ تاریخی، امکان اضافه کردن کاراکترهای shift برای افزایش اثرگذاری وجود داشت
فرمان؛ مثلا، << بیرون زده (یا «هفته | هفته» تورفتگی) خطوط 3 سطح تورفتگی
به جای پیش فرض 1. POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

-D
از نظر تاریخی، دستور -D دستور را پاک کرد و یک علامت را در اختیار کاربر قرار داد
ارائه بدون شکست خطوط از بافر ویرایش. این مورد توسط POSIX.1-2008 لازم نیست.
پیاده سازی ها تشویق می شوند در صورت امکان آن را ارائه دهند. از نظر تاریخی، -D
فرمان را گرفت و سپس نادیده گرفت، a تعداد دفعات مشاهده. POSIX.1-2008 این رفتار را مجاز نمی داند.

نوشتن لاین شماره
از لحاظ تاریخی ، ex = فرمان، هنگام اجرا در ex حالت در یک بافر ویرایش خالی، گزارش شده است
0، و از حالت باز یا بصری، گزارش 1. برای سازگاری و سادگی
مشخصات، POSIX.1-2008 این رفتار را مجاز نمی‌داند.

اجرا کردن
تاریخی، ex گنجاندن دستورات ورودی متن را به درستی مدیریت نکرد (یعنی،
ضمیمه کردن, درجو تغییر دادن) در بافرهای اجرا شده. POSIX.1-2008 این اجازه را نمی دهد
محرومیت برای ثبات

از لحاظ تاریخی، محتوای منطقی بافری که اجرا می‌شود، تغییر نمی‌کند
بافر خود با دستورات در حال اجرا اصلاح شد. یعنی اجرای بافر انجام شد
کد خودتغییر شونده را پشتیبانی نمی کند. POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

از لحاظ تاریخی ، @ فرمان طیف وسیعی از خطوط را گرفت و @ بافر هر بار یک بار اجرا شد
خط، با خط فعلی (".") روی هر خط مشخص شده تنظیم کنید. POSIX.1-2008 نیاز دارد
انطباق با رویه تاریخی

برخی از پیاده‌سازی‌های تاریخی متوجه نشدند که آیا خطا در هنگام اجرای بافر رخ داده است.
این، همراه با توانایی تعیین محدوده ای از خطوط برای ex @ فرمان، آن را می سازد
بی اهمیت باعث سقوط آنها شود هسته. POSIX.1-2008 مستلزم توقف پیاده سازی است
اجرای بافر در صورت بروز هر گونه خطایی، اگر خط مشخص شده وجود نداشته باشد، یا اگر
محتویات خود بافر ویرایش جایگزین می شود (به عنوان مثال، بافر آن را اجرا می کند ex
:ویرایش فرمان).

منظم عبارات in ex
رویه تاریخی این است که شخصیت ها در قسمت جایگزینی آخرین s فرمان -
یعنی آنهایی که با وارد کردن a مطابقت دارند '~' در عبارت منظم - بیشتر نبودند
توسط موتور بیان منظم گسترش یافته است. بنابراین، اگر کاراکترها شامل رشته باشند
"آ.،" آنها مطابقت خواهند داشت 'آ' و پس از آن "." و نه 'آ' به دنبال هر شخصیت
POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

ویرایش گزینه in ex
پاراگراف‌های زیر رفتار تاریخی برخی از گزینه‌های ویرایش را شرح می‌دهند
به هر دلیلی در POSIX.1-2008 گنجانده نشده است. اجراها به شدت هستند
تشویق می شود فقط در صورتی از این نام ها استفاده کنید که عملکرد توضیح داده شده در اینجا به طور کامل پشتیبانی شود.

تمدید شده La تمدید شده گزینه ویرایش در برخی از پیاده سازی ها استفاده شده است vi فراهم كردن
عبارات منظم به جای عبارات منظم اصلی این گزینه
از POSIX.1-2008 حذف شد زیرا این روش تاریخی گسترده نیست.

فلاش La فلاش گزینه ویرایش از نظر تاریخی باعث می‌شود که صفحه به جای بیپ چشمک بزند
در مورد خطا این گزینه از POSIX.1-2008 حذف شد زیرا در آن یافت نمی شود
برخی از پیاده سازی های تاریخی

هارد زبانه ها La هارد زبانه ها گزینه ویرایش از نظر تاریخی تعداد ستون های بین را تعریف می کند
تنظیمات برگه سخت افزار این گزینه از POSIX.1-2008 حذف شد زیرا چنین بود
اعتقاد بر این است که دیگر به طور کلی مفید نیست.

مدلین La مدلین (گاهی به نام مدل ها) گزینه ویرایش از نظر تاریخی ایجاد شده است ex or
vi برای خواندن پنج خط اول و آخر فایل برای دستورات ویرایشگر. این
گزینه یک مشکل امنیتی است و فروشندگان به شدت تشویق می شوند که آن را حذف کنند
از پیاده سازی های تاریخی

باز کن La باز کن گزینه ویرایش از نظر تاریخی این را غیرمجاز می‌داند ex باز کن و بصری دستورات
این گزینه ویرایش حذف شد زیرا این دستورات توسط
POSIX.1-2008.

بهینه سازی La بهینه سازی گزینه ویرایش با تنظیم
ترمینال به صورت خودکار انجام نمی شود کاراکترها هنگام چاپ بیشتر
بیش از یک خط خروجی منطقی این گزینه از POSIX.1-2008 حذف شد
زیرا برای پایانه‌های بدون نشانگرهای آدرس‌پذیر در نظر گرفته شده بود
به ندرت، اگر هرگز، هنوز استفاده می شود.

خط کش La خط کش گزینه ویرایش در برخی از پیاده سازی ها استفاده شده است vi به ارائه یک
خط کش سطر/ستون فعلی برای کاربر. این گزینه از POSIX.1-2008 حذف شد
زیرا این یک عمل تاریخی گسترده نیست.

منبع La منبع گزینه ویرایش از نظر تاریخی ایجاد شده است ex or vi برای منبع فایل های راه اندازی
که متعلق به کاربرانی غیر از کاربری که ویرایشگر را اجرا می کند، بوده است. این گزینه است
یک مشکل امنیتی است و فروشندگان به شدت تشویق می شوند که آن را از خود حذف کنند
پیاده سازی

فاصله La فاصله گزینه ویرایش از لحاظ تاریخی ویژگی (اکنون استاندارد) تنها را فعال کرده است
انتظار برای مدت کوتاهی قبل از بازگرداندن کلیدهایی که می توانند بخشی از یک ماکرو باشند.
این ویژگی از POSIX.1-2008 حذف شد زیرا رفتار آن اکنون استاندارد است.
به طور گسترده مفید نیست، و به ندرت مستند شده است.

واژگان La واژگان گزینه ویرایش در برخی از پیاده سازی ها استفاده شده است vi برای ایجاد vi
برای خروجی پیام های خطا برای خطاهای رایج؛ به عنوان مثال، تلاش برای حرکت دادن
مکان نما به جای اینکه فقط به آن هشدار دهد، از ابتدا یا انتهای خط گذشته است
صفحه نمایش ( تاریخی vi فقط به ترمینال هشدار داد و هیچ پیامی ارائه نکرد
برای چنین خطاهایی گزینه ویرایشگر تاریخی مختصر زمان را انتخاب نکرد
پیام‌های خطای موجود، فقط پیام‌های خطای موجود را کم و بیش ایجاد می‌کند
این گزینه از POSIX.1-2008 حذف شد زیرا گسترده نیست
عمل تاریخی؛ با این حال، مجریان تشویق می شوند در صورت تمایل از آن استفاده کنند
برای ارائه پیام های خطا برای کاربران ساده لوح.

پیچیدن La پیچیدن گزینه ویرایش در برخی از پیاده سازی ها استفاده شده است vi برای مشخص کردن
یک حاشیه خودکار که از حاشیه چپ به جای از سمت راست اندازه گیری می شود
لبه. این زمانی مفید است که از چندین اندازه صفحه برای ویرایش یک صفحه استفاده می شود
تک فایل این گزینه از POSIX.1-2008 حذف شد زیرا اینطور نیست
رویه تاریخی گسترده؛ با این حال، مجریان تشویق به استفاده از آن می شوند
اگر این قابلیت را اضافه کنند.

خود توند، ai
از نظر تاریخی، فرمان 0a بدون توجه به جریان، هیچ تورفتگی خودکاری انجام نداد
تورفتگی خط 1. POSIX.1-2008 مستلزم این است که هر تورفتگی موجود در خط 1 باشد
استفاده شده.

چاپ خودکار، ap
از لحاظ تاریخی ، چاپ خودکار گزینه ویرایش کاملاً سازگار یا صرفاً بر اساس آن نبود
تغییرات در بافر ویرایش استثناها بودند خواندن دستور (هنگام خواندن از a
فایل، اما نه از یک فیلتر)، the ضمیمه کردن, تغییر دادن, درج, جهانیو v دستورات، همه از
که تحت تاثیر قرار نگرفتند چاپ خودکار، و برچسب فرمانی که تحت تأثیر قرار گرفت
چاپ خودکار. POSIX.1-2008 به انطباق با رویه تاریخی نیاز دارد.

از لحاظ تاریخی ، چاپ خودکار گزینه فقط برای آخرین دستور از چند دستور وارد شده اعمال می شود
استفاده كردن تعیین کننده ها؛ مثلا، حذف کردن تحت تاثیر قرار گرفت چاپ خودکار,
اما حذف | نسخه نبود. POSIX.1-2008 به انطباق با تاریخ نیاز دارد
عمل.

نوشتن خودکار، aw
ضمیمه کردن '!' شخصیت به ex بعد دستور جلوگیری از انجام نوشتن خودکار
در پیاده سازی های تاریخی پشتیبانی نمی شد. POSIX.1-2008 مستلزم این رفتار است
با دیگری مطابقت داشته باشد ex دستورات سازگاری

نادیده گرفتن، ic
پیاده سازی های تاریخی تطابق بدون حساس به حروف بزرگ و کوچک ( نادیده گرفتن گزینه ویرایش) منجر شود
به موقعیت‌های غیر شهودی که از حروف بزرگ در عبارات محدوده استفاده می‌شود.
از نظر تاریخی، روند به شرح زیر بود:

1. یک خط متن را از بافر ویرایش بگیرید.

2. در خط متن، حروف بزرگ را به حروف کوچک تبدیل کنید.

3. در عبارات منظم، به جز در کلاس کاراکتر، حروف بزرگ را به حروف کوچک تبدیل کنید
مشخصات.

4. عبارات منظم را با متن مطابقت دهید.

این بدان معنی است که، با نادیده گرفتن در واقع متن:

La گربه SAT on la غذا

مطابقت داده خواهد شد

/^the/

اما نه توسط:

/^[A−Z]he/

POSIX.1-2008 برای سازگاری با سایر دستورات که عبارات منظم را پیاده سازی می کنند
اجازه این رفتار را نمی دهد

پاراگراف ها، برای
استاندارد ISO POSIX-2:1993 به صورت پیش فرض در نظر گرفته شده است پاراگراف و بخش گزینه های ویرایش
پیاده سازی تعریف شده است، با این استدلال که آنها از نظر تاریخی به سیستم یونیکس گرایش دارند تپه
قالب‌کننده متن، و یک «کاربر قابل حمل» می‌تواند از آن استفاده کند {, }, [[, ]], (و ) دستورات در
حالت باز یا بصری را داشته باشید و مکان نما را در مکان های غیرمنتظره متوقف کنید. POSIX.1-2008 مشخص می کند
مقادیر آنها در محلی POSIX به دلیل گروه بندی غیرمعمول (فقط زمانی کار می کنند که گروه بندی شوند
به دو کاراکتر در یک زمان) به این معنی است که آنها را نمی توان برای همه منظور استفاده کرد
حرکت، صرف نظر از

فقط خواندنی
پیاده سازی ها تشویق می شوند تا بهترین اطلاعات ممکن را به کاربر ارائه دهند
وضعیت فقط خواندنی فایل، با این استثنا که نباید آن را در نظر بگیرند
امتیازات ویژه فعلی فرآیند این یک شبکه ایمنی را برای کاربران فراهم می کند زیرا
آنها باید مجبور به بازنویسی فایل های فقط خواندنی شوند، حتی زمانی که با موارد اضافی اجرا می شوند
امتیازات

La فقط خواندنی مشخصات گزینه ویرایش تا حد زیادی با رویه تاریخی مطابقت دارد. تنها
تفاوت این است که پیاده سازی های تاریخی متوجه نشده اند که کاربر آن را تنظیم کرده است
فقط خواندنی گزینه ویرایش در مواردی که فایل قبلاً به دلایلی فقط خواندنی علامت گذاری شده بود،
و بنابراین مجدداً شروع می شود فقط خواندنی گزینه ویرایش دفعه بعد محتویات
بافر ویرایش جایگزین شد. این رفتار توسط POSIX.1-2008 مجاز نیست.

گزارش
الزامی است که خطوط کپی شده در بافر متفاوت از خطوط حذف شده تعامل داشته باشند
عمل تاریخی به عنوان مثال، اگر گزارش گزینه ویرایش روی 3 تنظیم شده و 3 خط حذف می شود
باعث نوشتن گزارش می شود، اما قبل از نوشتن گزارش باید 4 خط کپی شود.

الزامی که ex جهانی, v, باز کن, خنثی کردنو بصری دستورات گزارش ارائه می کنند
بر اساس تعداد کل خطوط اضافه یا حذف شده در طول اجرای دستور، و آن
دستورات اجرا شده توسط جهانی و v دستورات گزارش ارائه نمی کند، تاریخی است
تمرین. POSIX.1-2008 عمل تاریخی را با الزام اجرای بافر گسترش می دهد
به طور مشابه درمان می شود. دلایل این دو بخش هستند. از نظر تاریخی، فقط گزارش توسط
آخرین دستوری که از بافر اجرا می شود، مانند هر گزارش جدید، توسط کاربر دیده می شود
آخرین را بازنویسی کنید علاوه بر این، توسعه دهندگان استاندارد معتقد بودند که اجرای بافر
اشتراکات بیشتری با جهانی و v دستورات نسبت به دستورات دیگر ex دستورات و
برای سازگاری و سادگی مشخصات، باید به طور مشابه رفتار کنند.

مسابقه نمایشی، sm
مدت زمانی که مکان نما بر روی کاراکتر منطبق می گذراند نامشخص است زیرا
قابلیت های زمان بندی سیستم ها اغلب غیر دقیق و متغیر است. زمان باید طولانی باشد
به اندازه ای است که کاربر متوجه شود، اما آنقدر طولانی نیست که کاربر اذیت شود. مقداری
پیاده سازی های vi الف اضافه کرده اند زمان مسابقه گزینه ای که به کاربران اجازه می دهد شماره را تنظیم کنند
فواصل 0,1 ثانیه ای مکان نما روی کاراکتر منطبق مکث می کند.

حالت نمایشی
La حالت نمایشی گزینه در برخی از پیاده سازی های تاریخی استفاده شده است ex و vi به
حالت ویرایش فعلی را در حالت باز یا بصری نمایش دهید. حالت های ویرایش دارند
به طور کلی شامل "فرمان" و "ورودی" و گاهی اوقات حالت های دیگری مانند
"جایگزین" و "تغییر". رشته معمولاً در خط پایین نمایش داده می شود
صفحه نمایش در گوشه سمت راست. علاوه بر این، یک قبلی '*' شخصیت اغلب نشان داده می شود
آیا محتوای بافر ویرایش اصلاح شده است یا خیر. نمایشگر دومی دارد
گاهی اوقات بخشی از حالت نمایشی گزینه، و گاهی اوقات بر اساس گزینه دیگری. این
گزینه در اجرای تاریخی 4 BSD موجود نبود vi، اما به عنوان مشاهده شد
به طور کلی مفید است، به ویژه برای کاربران تازه کار، و توسط POSIX.1-2008 مورد نیاز است.

La smd مرمت برای حالت نمایشی گزینه در تمام تاریخی وجود نداشت
پیاده سازی های ویرایشگر POSIX.1-2008 برای ثبات به آن نیاز دارد.

همه پیاده‌سازی‌های تاریخی ویرایشگر یک رشته حالت را برای حالت فرمان نمایش نمی‌دهند،
تمایز حالت فرمان از حالت ورودی متن با عدم وجود رشته حالت.
POSIX.1-2008 این رفتار را برای سازگاری با رویه تاریخی مجاز می‌داند، اما
پیاده سازی ها برای ارائه یک رشته نمایش برای هر دو حالت تشویق می شوند.

آهسته باز کردن
از لحاظ تاریخی ، آهسته باز کردن اگر نرخ باود ترمینال کمتر بود، گزینه به طور خودکار تنظیم می شد
از 1200 باود، یا اگر نرخ باود 1200 بود و رسم مجدد گزینه تنظیم نشده بود در
آهسته باز کردن گزینه دو اثر داشت. ابتدا، هنگام درج کاراکترها در وسط یک خط،
کاراکترهای بعد از مکان نما به جلو فشار داده نمی شوند، اما به نظر می رسد که بازنویسی شده اند.
دوم، هنگام ایجاد یک خط جدید از متن، خطوط بعد از خط فعلی نخواهد بود
به پایین پیمایش کرد، اما به نظر می رسد که بازنویسی شده است. در هر دو حالت، پایان دادن به حالت ورودی متن
باعث می شود صفحه نمایش به روز شود تا با محتوای واقعی بافر ویرایش مطابقت داشته باشد.
در نهایت، پایانه هایی که به اندازه کافی هوشمند بودند باعث شدند ویرایشگر آن را نادیده بگیرد
آهسته باز کردن گزینه. POSIX.1-2008 اکثر رفتارهای تاریخی را مجاز می‌سازد و تاریخ را گسترش می‌دهد
تمرین به نیاز آهسته باز کردن رفتارها اگر گزینه ویرایش توسط کاربر تنظیم شده باشد.

برچسب ها
مسیر پیش‌فرض برای فایل‌های برچسب نامشخص باقی می‌ماند زیرا پیاده‌سازی‌ها ممکن است مختص به خود باشند
برچسب ها اجراهایی که با موارد تاریخی مطابقت ندارند. پیشفرض برچسب ها
مقدار گزینه احتمالا حداقل باید شامل فایل باشد ./برچسب ها.

مدت
پیاده سازی های تاریخی از ex و vi تغییرات را نادیده گرفت مدت گزینه ویرایش بعد از
اطلاعات ترمینال اولیه بارگیری شد. این توسط POSIX.1-2008 مجاز است. با این حال،
پیاده سازی ها تشویق می شوند تا به کاربر اجازه دهند نوع ترمینال خود را در هر زمان تغییر دهد
زمان.

مختصر
از لحاظ تاریخی ، مختصر گزینه ویرایش به صورت اختیاری یک خطای توصیفی کوتاه تر و کمتر ارائه می دهد
پیام، برای برخی از پیام های خطا. این توسط POSIX.1-2008 مجاز است، اما الزامی نیست.
از لحاظ تاریخی، رایج ترین خطاهای حالت بصری (به عنوان مثال، تلاش برای حرکت مکان نما به گذشته
انتهای یک خط) منجر به پیام خطایی نشد، بلکه فقط به ترمینال هشدار داد.
از پیاده‌سازی‌هایی که مایل به ارائه پیام برای کاربران مبتدی هستند، درخواست می‌شود که این کار را بر اساس آن انجام دهند
la ویرایش کنید انتخاب واژگان، و نه مختصر.

پنجره
در پیاده سازی های تاریخی، پیش فرض برای پنجره گزینه ویرایش بر اساس بود
نرخ باود به شرح زیر است:

1. اگر نرخ باود کمتر از 1200 بود، ویرایش کنید انتخاب w300 مقدار پنجره را تنظیم کنید. برای
به عنوان مثال، خط:

تنظیم w300=12

اگر نرخ باود کمتر از 12 بود، گزینه پنجره را روی 1200 تنظیم می کرد.

2. اگر نرخ باود برابر با 1200 بود ویرایش کنید انتخاب w1200 مقدار پنجره را تنظیم کنید

3. اگر نرخ باود بیشتر از 1200 بود، ویرایش کنید انتخاب w9600 مقدار پنجره را تنظیم کنید

La w300, w1200و w9600 گزینه ها به دلیل وجود آنها در POSIX.1-2008 ظاهر نمی شوند
وابستگی به نرخ های باود خاص

در پیاده سازی های تاریخی، اندازه پنجره نمایش داده شده توسط دستورات مختلف بود
مربوط به، اما نه لزوما مشابه با پنجره گزینه ویرایش به عنوان مثال، اندازه
از پنجره توسط تنظیم شده بود ex فرمان بصری 10، اما ارزش the را تغییر نداد
پنجره گزینه ویرایش با این حال، تغییر ارزش پنجره گزینه ویرایش تغییر کرد
تعداد خطوطی که هنگام رنگ آمیزی مجدد صفحه نمایش داده شد. POSIX.1-2008 ندارد
اجازه دادن به این رفتار به نفع سازگاری و سادگی مشخصات، و
مستلزم این است که تمام دستوراتی که تعداد خطوط نمایش داده شده را تغییر می دهند این کار را انجام دهند
تنظیم مقدار پنجره گزینه ویرایش

حاشیه بسته بندی، wm
از لحاظ تاریخی ، wrapmargin این گزینه روی نقشه‌هایی که کاراکترهایی را نیز درج می‌کردند تأثیری نداشت
مرتبط است تعداد دفعات مشاهدهs; مثلا : نقشه K 5aABC DEF. متاسفانه، به طور گسترده استفاده می شود
نقشه هایی که به این رفتار بستگی دارند. برای سازگاری و سادگی مشخصات،
POSIX.1-2008 این رفتار را مجاز نمی داند.

تاریخی، wrapmargin با استفاده از عرض نمایش ستون همه کاراکترها محاسبه شد
روی صفحه نمایش به عنوان مثال، پیاده سازی با استفاده از "^ من" نشان دادن شخصیت ها
وقتی که فهرست گزینه ویرایش تنظیم شد، جایی که '^' و 'من' هر کدام یک ستون واحد را در بر گرفتند
صفحه نمایش، محاسبه می کند wrapmargin بر اساس مقدار 2 برای هر کدام . در عدد
گزینه ویرایش به طور مشابه طول موثر خط را نیز تغییر داد. POSIX.1-2008
مستلزم انطباق با رویه تاریخی است.

نسخه‌های قبلی این استاندارد امکان پیاده‌سازی با بایت‌های غیر از هشت را فراهم می‌کرد
بیت است، اما این در این نسخه اصلاح شده است.

آینده جهت


ندارد.

با استفاده از خدمات onworks.net از exposix آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

  • 1
    فازر
    فازر
    Phaser یک باز سریع، رایگان و سرگرم کننده است
    منبع چارچوب بازی HTML5 که ارائه می دهد
    WebGL و Canvas Rendering در سراسر
    مرورگرهای وب دسکتاپ و موبایل بازی ها
    می تواند با ...
    دانلود فازر
  • 2
    موتور VASSAL
    موتور VASSAL
    VASSAL یک موتور بازی برای ایجاد است
    نسخه های الکترونیکی تخته سنتی
    و بازی های کارتی پشتیبانی می کند
    رندر و تعامل قطعه بازی،
    و ...
    دانلود VASSAL Engine
  • 3
    OpenPDF - Fork of iText
    OpenPDF - Fork of iText
    OpenPDF یک کتابخانه جاوا برای ایجاد است
    و ویرایش فایل های PDF با LGPL و
    مجوز منبع باز MPL. OpenPDF است
    LGPL/MPL جانشین منبع باز iText،
    و ...
    OpenPDF - Fork of iText را دانلود کنید
  • 4
    GIS SAGA
    GIS SAGA
    SAGA - سیستم برای خودکار
    تجزیه و تحلیل جغرافیایی - یک جغرافیا است
    نرم افزار سیستم اطلاعات (GIS) با
    قابلیت های بسیار زیاد برای داده های جغرافیایی
    پردازش و آنا...
    دانلود SAGA GIS
  • 5
    جعبه ابزار برای جاوا/JTOpen
    جعبه ابزار برای جاوا/JTOpen
    جعبه ابزار IBM برای جاوا / JTOpen یک است
    کتابخانه کلاس های جاوا که از
    کلاینت/سرور و برنامه نویسی اینترنتی
    مدل های سیستمی که دارای OS/400 است،
    i5/OS، o...
    جعبه ابزار را برای جاوا/JTOpen دانلود کنید
  • 6
    D3.js
    D3.js
    D3.js (یا D3 برای اسناد داده محور)
    یک کتابخانه جاوا اسکریپت است که به شما اجازه می دهد
    برای تولید داده های پویا و تعاملی
    تجسم در مرورگرهای وب با D3
    شما...
    D3.js را دانلود کنید
  • بیشتر "

دستورات لینوکس

Ad