.Dd May 14, 2026 .Dt VIS 1 .Os Vis v0.9-498-gad0f1deb-dirty . .Sh "نام (NAME)" . .Nm vis .Nd یک ویرایشگر متن بسیار کارآمد . .Sh "خلاصه دستور (SYNOPSIS)" . .Nm .Op Fl v .Op Cm + Ns Ar command .Op Fl - .Op Ar files ... . .Sh "توضیحات (DESCRIPTION)" . .Nm یک ویرایشگر متن صفحه‌محور بسیار کارآمد است که نقاط قوت هر دو ویرایشگر .Nm vi(m) و .Nm sam را با یکدیگر ترکیب می‌کند. . این صفحه راهنما برای کاربرانی در نظر گرفته شده است که از پیش با .Nm vi Ns / Ns Nm sam آشنایی دارند. سایر کاربران تقریباً به طور قطع باید پیش از خواندن این صفحه راهنما، یک آموزش مناسب درباره هر یک از این دو ویرایشگر مطالعه کنند. گزینه‌های زیر در دسترس هستند: .Bl -tag -width indent .It Fl v چاپ اطلاعات نسخه و خروج. .It Cm + Ns Ar command اجرای .Ar command پس از بارگذاری فایل. . .It Fl - نشان‌دهنده پایان گزینه‌ها است. آرگومان‌های پس از این به عنوان نام فایل در نظر گرفته می‌شوند. .El .Pp فایل ویژه .Cm - به .Nm دستور می‌دهد که از ورودی استاندارد بخواند؛ در این حالت .Ic :wq در خروجی استاندارد می‌نویسد و بدین ترتیب امکان استفاده به عنوان یک فیلتر تعاملی را فراهم می‌کند. .Pp اگر ورودی استاندارد تغییر مسیر داده شده باشد و همه ورودی مصرف شود، .Nm فایل .Pa /dev/tty را برای دریافت دستورهای بعدی باز می‌کند. ناتوانی در انجام این کار منجر به خاتمه برنامه می‌شود. . .Ss "گزینش‌ها (Selections)" . .Nm از گزینش‌ها (selections) به عنوان عناصر بنیادی ویرایش استفاده می‌کند. یک گزینش، محدوده‌ای جهت‌دار و غیرخالی با دو نقطه انتهایی به نام‌های .Em مکان‌نما (cursor) و .Em لنگر (anchor) است. یک گزینش می‌تواند لنگردار باشد؛ در این حالت لنگر ثابت می‌ماند در حالی که تنها موقعیت مکان‌نما تغییر داده می‌شود. برای گزینش‌های بدون لنگر، هر دو نقطه انتهایی به‌روزرسانی می‌شوند. یک گزینش تک‌عضوی شامل یک نویسه است که هر دو مکان‌نما و لنگر روی آن قرار دارند. همواره یک گزینش اصلی وجود دارد که قابل دیدن باقی می‌ماند (یعنی تغییر موقعیت آن، دیدگاه یا viewport را تنظیم می‌کند). . .Ss "حالت‌ها (Modes)" . .Nm از همان رویکرد ویرایش حالتی .Pq modal مشابه .Nm vi استفاده می‌کند. این ویرایشگر از حالت‌های .Sq normal Ns ، .Sq operator pending Ns ، .Sq insert Ns ، .Sq replace و .Sq visual (در هر دو نوع خطی و نویسه‌ای) پشتیبانی می‌کند. حالت‌های visual block و ex عمداً پیاده‌سازی نشده‌اند؛ در عوض .Nm دارای پشتیبانی داخلی از گزینش‌های چندگانه و یک گونه تعاملی .Pq interactive از زبان دستوری مبتنی بر عبارات باقاعده ساختاری .Nm sam است. .Pp در حالت عادی (normal mode) تمام گزینش‌ها بدون لنگر بوده و به یک نویسه کاهش می‌یابند. . .Ss "واگردانی/انجام مجدد (Undo/Redo)" . .Nm برای پیگیری بازبینی‌های متن از یک درخت واگردانی (undo tree) استفاده می‌کند. دستورهای .Ic u .Pq واگردانی و .Aq Ic C-r .Pq انجام مجدد را می‌توان برای پیمایش درخت در امتداد شاخه اصلی به کار برد. .Ic g+ و .Ic g- تاریخچه را به ترتیب زمانی پیمایش می‌کنند. دستورهای .Ic :earlier و .Ic :later امکان بازگردانی متن به یک وضعیت دلخواه را فراهم می‌سازند. . .Ss "نشانه‌ها (Marks)" . یک نشانه (mark) یک نام نمادین را به مجموعه‌ای از گزینش‌ها مرتبط می‌کند. یک گزینش ذخیره‌شده هنگامی که مرزهای مشخص‌کننده آن در بافر زیرین تغییر کند، نامعتبر می‌شود. اگر تغییرات یادشده بعداً واگردانی شوند، نشانه دوباره معتبر می‌گردد. .Ic m یک نشانه تنظیم می‌کند و .Ic M آن را بازیابی می‌نماید. به عنوان مثال، .Ic ' Ns Ar a Ns Ic m نشانه .Ar a را تنظیم می‌کند، در حالی که .Ic ' Ns Ar a Ns Ic M آن را بازیابی می‌کند. استفاده از .Ic m یا .Ic M بدون تعیین نشانه، از نشانه پیش‌فرض استفاده می‌کند. .Pp نشانه‌های موجود عبارتند از: .Bl -tag -width indent .It Ic '' نشانه پیش‌فرض .It Ic '^ گزینش‌های فعال هنگام خروج از حالت visual .It Ic 'a Ns \(en Ns Ic 'z نشانه‌های عمومی .El .Pp نشانه‌ها در میان فایل‌های مختلف پشتیبانی نمی‌شوند. نشانه‌ها بین نشست‌های ویرایش حفظ نمی‌شوند. . .Ss "فهرست پرش (Jump list)" . یک فهرست پرش (jump list) محلی برای هر پنجره با اندازه ثابت وجود دارد که نشانه‌ها (یعنی مجموعه‌ای از گزینش‌ها) را ذخیره می‌کند. .Bl -tag -width indent .It Ic g< پرش به عقب .It Ic g> پرش به جلو .It Ic gs ذخیره گزینش‌های فعال کنونی .El . .Ss "ثبات‌ها (Registers)" . ثبات‌ها (registers) فهرست‌های نام‌گذاری‌شده‌ای از متن هستند. خانه‌های مقداردهی‌نشده ثبات‌ها به طور پیش‌فرض رشته خالی هستند. ثبات‌های موجود عبارتند از: .Bl -tag -width indent .It Ic \(dq\(dq ثبات پیش‌فرض .It Ic \(dqa Ns \(en Ns Ic \(dqz ثبات‌های عمومی .It Ic \(dqA Ns \(en Ns Ic \(dqZ الحاق به ثبات عمومی متناظر .It Ic \(dq* , Ic \(dq+ یکپارچه‌سازی با بریده‌دان سیستم از طریق اسکریپت شل .Xr vis-clipboard 1 .It Ic \(dq0 ثبات کپی (yank)، جدیدترین محدوده کپی‌شده .It Ic \(dq1 Ns \(en Ns Ic \(dq9 .It Ic \(dq& تطابق‌های زیرعبارت در آخرین دستور .Ic x یا .Ic y .It Ic \(dq/ ثبات جستجو، آخرین الگوی جستجوی استفاده‌شده .It Ic \(dq\&: ثبات دستور، آخرین دستور اجراشده .It Ic \(dq_ ثبات سیاه‌چاله .Pq Pa /dev/null Ns ، محتوا را نادیده می‌گیرد و همیشه خالی است .It Ic \(dq# شماره گزینش (فقط‌خواندنی) .It Ic \(dq. آخرین متن درج‌شده .El .Pp اگر ثبات مشخصی تعیین نشود، از ثبات پیش‌فرض استفاده می‌شود. . .Ss "ماکروها (Macros)" . ثبات‌های عمومی .Ic \(dqa Ns \(en Ns Ic \(dqz می‌توانند برای ضبط ماکرو استفاده شوند. از یکی از ثبات‌های .Ic \(dqA Ns \(en Ns Ic \(dqZ برای افزودن به یک ماکروی موجود استفاده کنید. .Ic q ضبط را آغاز می‌کند و .Ic @ آن را بازپخش می‌نماید. .Ic @@ به آخرین ماکروی ضبط‌شده اشاره دارد. .Ic @: آخرین دستور .Ic \&: را تکرار می‌کند. .Ic @/ معادل .Ic n در حالت عادی است. . این عملیات‌ها همواره از اولین خانه ثبات استفاده می‌کنند. . .Ss "مدیریت کدگذاری، تب و خط جدید (Encoding, Tab and Newline handling)" . .Nm همیشه فرض می‌کند که فایل ورودی دارای کدگذاری UTF-8 با پایان خط‌های .Li \[rs]n است. اگر می‌خواهید فایل‌هایی با کدگذاری‌های قدیمی یا پایان خط‌های غیر یونیکسی را ویرایش کنید، از .Xr iconv 1 و .Xr dos2unix 1 برای تبدیل آن‌ها در صورت نیاز استفاده نمایید. .Aq Ic Tab را می‌توان به طور اختیاری به تعداد قابل تنظیمی از فاصله‌ها باز کرد (بخش .Sx "گزینه‌های SET (SET OPTIONS)" را ببینید). . .Ss "پشتیبانی از ماوس (Mouse support)" . ماوس در حال حاضر اصلاً استفاده نمی‌شود. . .Sh "دستورهای سام (SAM COMMANDS)" . .Nm از یک نگارش تعاملی از زبان دستورات مبتنی بر عبارات باقاعده ساختاری که توسط .Xr sam 1 معرفی شد، پشتیبانی می‌کند. . .Ss "عبارات باقاعده (Regular expressions)" . .Nm در حال حاضر تطبیق عبارات باقاعده را به کتابخانه C زیرین واگذار می‌کند. این برنامه از آنچه پازیکس .Dq عبارات باقاعده گسترش‌یافته (Extended Regular Expressions) می‌نامد، مطابق توضیحات .Xr regex 7 استفاده می‌کند. لنگرهای .Ic ^ و .Ic $ با ابتدا و انتهای محدوده‌ای که به آن اعمال می‌شوند تطابق می‌یابند. علاوه بر این، .Li \[rs]n و .Li \[rs]t می‌توانند به ترتیب برای اشاره به خطوط جدید و تب‌ها به کار روند. اتم .Ic \&. با هر نویسه‌ای به جز خط جدید مطابقت دارد. عبارت باقاعده خالی نشان‌دهنده آخرین عبارت کاملی است که با آن مواجه شده است. . .Ss "آدرس‌ها (Addresses)" . یک آدرس، زیررشته‌ای (یا محدوده‌ای) را در یک فایل مشخص می‌کند. در ادامه، .Do نویسه .Ar n .Dc به معنای رشته پوچ پس از .Ar n Ns \-امین نویسه در فایل است، که در آن ۱ نویسه اول فایل است. .Do خط .Ar n .Dc به معنای .Ar n Ns \-امین تطابق عبارت باقاعده .Dq Li .*\[rs]n\&? با شروع از ابتدای فایل است. .Pp تمام پنجره‌ها همواره دست‌کم یک زیررشته جاری دارند که آدرس پیش‌فرض است. در sam به این مفهوم .Sy dot (نقطه) گفته می‌شود. در .Nm چندین .Dq dot (یا گزینش) می‌توانند هم‌زمان وجود داشته باشند. . .Ss "آدرس‌های ساده (Simple addresses)" . .Bl -tag -width indent .It Ic # Ns Ar n رشته خالی پس از نویسه .Ar n ؛ .Ic #0 ابتدای فایل است. .It Ar n خط .Ar n . .It Ic / Ns Ar regexp Ns Ic / .It Ic \&? Ns Ar regexp Ns Ic \&? زیررشته‌ای که با عبارت باقاعده مطابقت دارد، که با جستجو به سمت انتهای .Pq Ic / یا ابتدای .Pq Ic \&? فایل پیدا می‌شود. جستجو در هنگام رسیدن به انتهای .Pq ابتدای فایل به دور خود نمی‌چرخد (wrap around نمی‌شود). .It Ic 0 رشته قبل از اولین خط کامل. این لزوماً رشته پوچ نیست؛ .Ic + و .Ic - را در زیر ببینید. .It Ic $ رشته پوچ در انتهای فایل. .It Ic \&. Dot (نقطه)، محدوده جاری. .It Ic ' Ns Ar m نشانه .Ar m در فایل. .El . .Ss "آدرس‌های ترکیبی (Compound addresses)" . در ادامه، .Ar a1 و .Ar a2 آدرس هستند. .Bl -tag -width indent .It Ar a1 Ns Ic + Ns Ar a2 آدرس .Ar a2 که با شروع از انتهای .Ar a1 ارزیابی می‌شود. .It Ar a1 Ns Ic - Ns Ar a2 آدرس .Ar a2 که با شروع از ابتدای .Ar a1 و در جهت معکوس ارزیابی می‌شود. .It Ar a1 Ns Ic \&, Ns Ar a2 زیررشته از ابتدای .Ar a1 تا انتهای .Ar a2 . اگر .Ar a1 وجود نداشته باشد، .Ic 0 جایگزین می‌شود. اگر .Ar a2 وجود نداشته باشد، .Ic $ جایگزین می‌گردد. .It Ar a1 Ns Ic \&; Ns Ar a2 مانند .Ar a1 Ns Ic \&, Ns Ar a2 اما .Ar a2 در انتهای .Ar a1 ارزیابی شده و محدوده روی .Ar a1 تنظیم می‌شود. .El .Pp عملگرهای .Ic + و .Ic - دارای اولویت بالا هستند، در حالی که .Ic \&, و .Ic \&; اولویت پایینی دارند. .Pp در هر دو حالت .Ic + و .Ic - Ns ، اگر .Ar a2 یک آدرس خط یا نویسه بدون شماره باشد، شماره به طور پیش‌فرض ۱ است. اگر .Ar a1 وجود نداشته باشد، .Ic \&. جایگزین می‌شود. اگر هر دو .Ar a1 و .Ar a2 حاضر و قابل تشخیص باشند، .Ic + می‌تواند حذف شود. .Ar a2 می‌تواند یک عبارت باقاعده باشد؛ اگر با نویسه‌های .Li \&? محدود شده باشد، اثر .Ic + یا .Ic - معکوس می‌شود. . علامت .Ic % نام مستعاری برای .Ic \&, و بنابراین .Ic 0,$ است. . نمایش یک زیررشته بدشکل توسط یک آدرس ترکیبی، یک خطا محسوب می‌شود. . .Ss "دستورها (Commands)" . در ادامه، متن مشخص‌شده با اسلش نشان‌دهنده متنی است که با هر نویسه اَسکی (ASCII) چاپ‌پذیر به جز نویسه‌های حرفی-عددی محدود شده است. هر تعداد از جداکننده‌های پایانی می‌توانند حذف شوند، که در این صورت حذف‌های متعدد نشان‌دهنده رشته‌های پوچ خواهند بود، اما جداکننده نخست همواره باید وجود داشته باشد. در هر متن محدودشده، خط جدید نمی‌تواند به صورت لفظی ظاهر شود؛ .Li \[rs]n و .Li \[rs]t را می‌توان برای خط جدید و تب نوشت؛ .Li \[rs]/ جداکننده (در اینجا .Li / Ns ) را نقل‌قول (quote) می‌کند. یک علامت اند .Li & و .Li \[rs] Ns Ar n Ns ، که در آن .Ar n یک رقم (۱ تا ۹) است، با ثبات متناظر جایگزین می‌شوند. در غیر این صورت بک‌اسلش به صورت تحت‌اللفظی تفسیر می‌شود. .Pp بیشتر دستورها می‌توانند پیشوندی از یک آدرس داشته باشند تا محدوده عملکرد خود را مشخص کنند. اگر دستوری آدرس بپذیرد و هیچ آدرسی ارائه نشود، از یک آدرس پیش‌فرض استفاده می‌شود. در حالت عادی، این معادل نویسه‌ای است که گزینش در حال حاضر روی آن قرار دارد. اگر تنها یک گزینش وجود داشته باشد، .Ic x و .Ic y به طور پیش‌فرض کل فایل .Ic 0,$ را در نظر می‌گیرند. در حالت عادی، دستورهای نوشتن .Ic w و .Ic wq همیشه روی کل فایل اعمال می‌شوند. دستورها برای هر گزینش یک‌بار اجرا می‌شوند. در حالت تصویری (visual)، دستورها به هر گزینش اعمال می‌شوند، گویی یک دستور ضمنی .Ic x وجود دارد که با گزینش‌های موجود مطابقت دارد. . .Pp در توضیحات، واژه «محدوده» .Pq range برای نشان دادن هر آدرسی که ارائه شده به کار می‌رود. .Pp بسیاری از دستورها هنگامی که از حالت تصویری صادر می‌شوند، به عنوان یک اثر جانبی، گزینش‌های جدیدی ایجاد می‌کنند. در این صورت، همواره به «نتیجه» تغییر اشاره دارد: متن جدید برای درج، رشته خالی برای حذف، خروجی دستور یک فیلتر و غیره. اگر پس از اجرای موفقیت‌آمیز دستور هیچ گزینشی باقی نماند، ویرایشگر به حالت عادی تغییر وضعیت می‌دهد، در غیر این صورت در حالت تصویری باقی می‌ماند. این امکان بهبود و پالایش تعاملی .Em (interactive) محدوده‌ها را فراهم می‌سازد. . .Ss "دستورهای متنی (Text commands)" . .Bl -tag -width indent .It Ic a Ns [ Ar count ] Ns / Ns Ar text Ns Ic / درج .Ar text به تعداد .Ar count بار در فایل پس از محدوده. .Pp همچنین می‌تواند به شکل زیر نوشته شود: .Bd -literal -offset indent a lines of text . .Ed . .It Ic c No یا Ic i مشابه .Ic a Ns ، اما .Ic c متن را جایگزین می‌کند، در حالی که .Ic i .Em قبل از محدوده درج می‌نماید. . .It Ic d حذف متن در محدوده. .El . .Ss "دستورهای نمایش (Display commands)" . .Bl -tag -width Ds .It Ic p ایجاد یک گزینش جدید برای محدوده. .El . .Ss "دستورهای ورودی/خروجی (I/O commands)" . .Bl -tag -width indent .It Ic e Ns Oo Cm \&! Oc Op Pa file name جایگزینی فایل با محتوای فایل خارجی نام‌برده. اگر نام فایلی داده نشود، بارگذاری مجدد فایل از دیسک انجام می‌شود. . .It Ic r Ar file name جایگزینی متن در محدوده با محتوای فایل خارجی نام‌برده. . .It Ic w Ns Oo Cm \&! Oc Op Ar file name نوشتن محدوده .Po پیش‌فرض .Ic 0,$ .Pc در فایل خارجی نام‌برده. . .It Ic wq Ns Oo Cm \&! Oc Op Ar file name مشابه .Ic w Ns ، اما بستن فایل پس از آن. .El .Pp اگر آرگومان نام فایل در هر یک از این‌ها وجود نداشته باشد، نام فایل جاری استفاده می‌شود. . .Ic e همواره نام فایل را تنظیم می‌کند؛ .Ic w اگر فایل بی‌نام باشد چنین خواهد کرد. اجبار دستور .Ic e با .Cm \&! تغییرات ذخیره‌نشده را نادیده می‌گیرد. اجبار دستور .Ic w فایل را روی دیسک بازنویسی می‌کند، حتی اگر از زمان بارگذاری به صورت خارجی تغییر کرده باشد. دستورهای نوشتن با آدرس‌های غیرپیش‌فرض و بدون نام فایل، مخرب هستند و همیشه باید به صورت اجباری اجرا شوند. .Bl -tag -width indent . .It Ic < Ar shell command جایگزینی محدوده با خروجی استاندارد دستور شل. . .It Ic > Ar shell command ارسال محدوده به ورودی استاندارد دستور شل. . .It Ic \&| Ar shell command ارسال محدوده به ورودی استاندارد دستور شل، و جایگزینی آن با خروجی استاندارد آن. . .It Ic \&! Ar shell command اجرای دستور شل به صورت تعاملی و هدایت ورودی صفحه‌کلید به آن. . .It Ic cd Ar directory تغییر دایرکتوری کاری. اگر دایرکتوری مشخص نشود، از .Ev "$HOME" استفاده می‌شود. .El .Pp در هر یک از .Ic < Ns ، .Ic > Ns ، .Ic \&| یا .Ic \&! Ns ، اگر دستور شل حذف شود، آخرین دستور شل .Pq از هر نوعی جایگزین می‌گردد. مگر اینکه فایل در حال ویرایش بی‌نام باشد، تمام این دستورهای خارجی می‌توانند از طریق متغیرهای محیطی .Ev vis_filepath و .Ev vis_filename به مسیر مطلق و نام فایل آن ارجاع دهند. . .Ss "حلقه‌ها و شرط‌ها (Loops and conditionals)" . .Bl -tag -width indent .It Ic x/ Ns Ar regexp Ns Ic / Op Ar command به ازای هر تطابق عبارت باقاعده در محدوده، دستور را با تنظیم محدوده روی تطابق اجرا می‌کند. اگر عبارت باقاعده و اسلش‌های آن حذف شوند، .Ar "/.*\[rs]n/" فرض می‌شود. تطابق‌های رشته پوچ به طور بالقوه قبل از هر نویسه از محدوده و در انتهای محدوده رخ می‌دهند. .Pp ثبات‌های .Ic \(dq1 Ns \(en Ns Ic \(dq9 و .Ic \(dq& با تطابق‌های (زیر) عبارت الگو به‌روزرسانی می‌شوند. . .It Ic y/ Ns Ar regexp Ns Ic / Op Ar command مشابه .Ic x Ns ، اما دستور را برای هر زیررشته‌ای که قبل، بین یا بعد از تطابق‌هایی که توسط .Ic x تولید می‌شدند قرار دارد اجرا می‌کند. هیچ رفتار پیش‌فرضی وجود ندارد. زیررشته‌های پوچ به طور بالقوه قبل از هر نویسه در محدوده رخ می‌دهند. . .It Ic X/ Ns Ar regexp Ns Ic "/" Ar command برای هر فایلی که نام آن با عبارت باقاعده مطابقت دارد، آن را به فایل جاری تبدیل کرده و دستور را اجرا می‌کند. اگر عبارت حذف شود، دستور در هر فایل اجرا می‌شود. . .It Ic Y/ Ns Ar regexp Ns Ic / Ar command مشابه .Ic X Ns ، اما برای فایل‌هایی که با عبارت باقاعده مطابقت ندارند، و وجود عبارت الزامی است. .It Ic g Ns [ Ar count ] Ns [ Ar /regexp/ ] Ar command .It Ic v Ns [ Ar count ] Ns [ Ar /regexp/ ] Ar command اگر محدوده .Ar count حاوی یک تطابق برای عبارت باشد .Po .Ic g .Pc یا نباشد .Po .Ic v .Pc Ns ، دستور را روی محدوده اجرا می‌کند. .Pp مشخص‌کننده .Ar count قالب زیر را دارد، که در آن .Ar n و .Ar m اعداد صحیحی هستند که محدوده‌ها را مشخص می‌کنند. .Bl -tag -width indent .It Ar n Ns Ic \&, Ns Ar m بازه بسته از .Ar n تا .Ar m . اگر .Ar n وجود نداشته باشد، .Ic 1 جایگزین می‌شود. اگر .Ar m وجود نداشته باشد، .Ic ∞ جایگزین می‌شود. مقادیر منفی نسبت به آخرین محدوده تفسیر می‌شوند. .It Ic % Ns Ar n با هر .Ar n Ns \-امین محدوده مطابقت دارد. .El . .El .Pp این‌ها می‌توانند به طور دلخواه و عمیق تو در تو شوند. یک دستور خالی در .Ic x یا .Ic y به طور پیش‌فرض .Ic p است. .Ic X Ns ، .Ic Y Ns ، .Ic g و .Ic v پیش‌فرضی ندارند. . .Ss "گروه‌بندی و تغییرات چندگانه (Grouping and multiple changes)" . دستورها می‌توانند با قرار گرفتن در آکولاد گروه‌بندی شوند. از نظر معنایی، آکولاد باز مانند یک دستور است: یک آدرس .Pq اختیاری می‌پذیرد و هر زیردستور را روی محدوده اجرا می‌کند. دستورهای درون آکولاد به ترتیب اجرا می‌شوند، اما تغییرات ایجادشده توسط یک دستور برای دستورهای دیگر قابل مشاهده نیستند. .Pp هنگامی که یک دستور تغییراتی را در یک فایل ایجاد می‌کند، مانند .Ic x/ Ns Ar re Ns Ic / Ic c/ Ns Ar text Ns Ic / Ns ، آدرس‌های تمام تغییرات بر اساس وضعیت اولیه محاسبه می‌شوند. اگر تغییرات هم‌پوشانی نداشته باشند، به ترتیب مشخص‌شده اعمال می‌گردند. تغییرات دارای تداخل رد می‌شوند. .Pp آکولادها می‌توانند به طور دلخواه تو در تو شوند. . .Sh "کلیدهای میانبر VI(M) (VI(M) KEY BINDINGS)" . در بخش‌های زیر از براکت‌های زاویه‌دار برای نشان دادن کلیدهای ویژه استفاده می‌شود. پیشوندهای .Ic C- Ns ، .Ic S- و .Ic M- به ترتیب برای اشاره به کلیدهای تبدیل .Aq Ctrl Ns ، .Aq Shift و .Aq Alt به کار می‌روند. .Pp تمام مقیدسازی‌های فعال کلید را می‌توان در زمان اجرا با استفاده از دستور .Ic :help فهرست کرد. . .Ss "عملگرها (Operators)" . عملگرها عملیات خاصی را روی یک محدوده متنی که توسط یک حرکت (motion)، یک شیء متنی (text object) یا یک گزینش موجود مشخص شده است، انجام می‌دهند. .Pp هنگامی که در حالت عادی استفاده می‌شوند، عملگرهای زیر منتظر یک حرکت می‌مانند و vis را در حالت در انتظار عملگر (operator pending) قرار می‌دهند. .Bl -tag -width XXXXXXXXXX -compact .It Ic c تغییر، حذف محدوده و ورود به حالت درج . .It Ic d حذف، بریدن محدوده به ثبات . .It Ic < انتقال به چپ، کاهش تورفتگی . .It Ic > انتقال به راست، افزایش تورفتگی . .It Ic y کپی (yank)، رونوشت از محدوده به ثبات .El .Pp هنگامی که در حالت عادی استفاده می‌شوند، اقدامات زیر بلافاصله اعمال می‌گردند. .Bl -tag -width XXXXXXXXXX -compact .It Ic = قالب‌بندی، فیلتر کردن محدوده با .Xr fmt 1 . .It Ic gu تبدیل به حروف کوچک . .It Ic gU تبدیل به حروف بزرگ . .It Ic g~ جابجایی بزرگی و کوچکی حروف . .It Ic J الحاق خطوط، درج فاصله میان آن‌ها . .It Ic gJ الحاق خطوط، حذف هرگونه فاصله جداکننده . .It Ic p قرار دادن محتوای ثبات پس از مکان‌نما . .It Ic P قرار دادن محتوای ثبات پیش از مکان‌نما . .El . .Ss "حرکت‌ها (Motions)" . حرکت‌ها موقعیت اولیه فایل را گرفته و آن را به موقعیت مقصد تبدیل می‌کنند، و بدین ترتیب یک محدوده را تعریف می‌نمایند. .Pp .Bl -tag -width XXXXXXXXXX -compact .It Ic 0 ابتدای خط . .It Ic b ابتدای کلمه قبلی . .It Ic B ابتدای کلمه بزرگ قبلی (WORD) . .It Ic $ انتهای خط . .It Ic e انتهای کلمه بعدی . .It Ic E انتهای کلمه بزرگ بعدی (WORD) . .It Ic F Ns Aq Ar char به رخداد قبلی .Aq Ar char در سمت چپ . .It Ic f Ns Aq Ar char به رخداد بعدی .Aq Ar char در سمت راست . .It Ic ^ اولین نویسه غیرفاصله در خط . .It Ic g0 ابتدای خط نمایشی . .It Ic g$ انتهای خط نمایشی . .It Ic ge انتهای کلمه قبلی . .It Ic gE انتهای کلمه بزرگ قبلی (WORD) . .It Ic gg ابتدای فایل . .It Ic G رفتن به خط یا انتهای فایل . .It Ic gj خط نمایشی به پایین . .It Ic gk خط نمایشی به بالا . .It Ic gh کدپوینت به چپ . .It Ic gl کدپوینت به راست . .It Ic gH بایت به چپ . .It Ic gL بایت به راست .It Ic g_ آخرین نویسه غیرفاصله در خط . .It Ic gm میانه خط نمایشی . .It Ic g\&| رفتن به ستون . .It Ic h نویسه به چپ . .It Ic H رفتن به خط بالای پنجره . .It Ic j خط به پایین . .It Ic k خط به بالا . .It Ic l نویسه به راست . .It Ic L رفتن به خط پایین پنجره . .It Ic % تطابق براکت، گیومه یا بک‌تیک . .It Ic } پاراگراف بعدی . .It Ic \&) جمله بعدی . .It Ic N تکرار آخرین جستجو رو به عقب . .It Ic n تکرار آخرین جستجو رو به جلو . .It [{ ابتدای بلوک قبلی . .It ]} ابتدای بلوک بعدی . .It [( ابتدای جفت پرانتز قبلی . .It ]) ابتدای جفت پرانتز بعدی . .It { پاراگراف قبلی . .It \&( جمله قبلی . .It \&; تکرار آخرین حرکت جستجوی نویسه (to/till) . .It \&, تکرار آخرین حرکت جستجوی نویسه در جهت مخالف . .It Ic # جستجوی کلمه زیر گزینش رو به عقب . .It Ic * جستجوی کلمه زیر گزینش رو به جلو . .It Ic T Ns Aq Ar char تا قبل از رخداد بعدی .Aq Ar char در سمت چپ . .It Ic t Ns Aq Ar char تا قبل از رخداد بعدی .Aq Ar char در سمت راست . .It Ic \&? Ns Ar pattern به تطابق بعدی .Ar pattern در جهت عقب . .It Ic / Ns Ar pattern به تطابق بعدی .Ar pattern در جهت جلو . .It Ic w ابتدای کلمه بعدی . .It Ic W ابتدای کلمه بزرگ بعدی (WORD) .El . .Ss "اشیاء متنی (Text objects)" . اشیاء متنی یک موقعیت اولیه در فایل را گرفته و آن را به محدوده‌ای تبدیل می‌کنند که لزوماً نباید موقعیت اولیه در محدوده مقصد قرار داشته باشد. تمام اشیاء متنی زیر در دو نوع داخلی (با پیشوند .Ic i Ns ) که در آن فاصله‌های سفید پیرامون یا نویسه‌های جداکننده جزئی از محدوده حاصل نیستند، و نوع عادی (با پیشوند .Ic a Ns ) که در آن شامل می‌شوند، پیاده‌سازی شده‌اند. .Pp .Bl -tag -width XXXXXXXXXX -compact . .It Ic w کلمه (word) . .It Ic W کلمه بزرگ (WORD) . .It Ic s جمله (sentence) . .It Ic p پاراگراف (paragraph) . .It Ic [, ], (, ), {, }, <, >, \(dq, ', ` بلوک محصور شده با این نمادها .El .Pp اشیاء متنی موجود دیگر عبارتند از: .Bl -tag -width XXXXXXXXXX -compact . .It Ic gn تطابق با آخرین عبارت جستجو در جهت رو به جلو . .It Ic gN تطابق با آخرین عبارت جستجو در جهت رو به عقب . .It Ic al خط جاری . .It Ic il خط جاری بدون فاصله‌های سفید ابتدا و انتها .El . .Ss "گزینش‌های چندگانه (Multiple Selections)" . .Nm از گزینش‌های چندگانه با بازخورد دیداری فوری پشتیبانی می‌کند. همواره یک گزینش اصلی وجود دارد که در دیدگاه (viewport) جاری قرار گرفته است. گزینش‌های اضافی را می‌توان در صورت نیاز ایجاد کرد. اگر بیش از یک گزینش وجود داشته باشد، گزینش اصلی با ظاهری متفاوت نمایش داده می‌شود. .Pp برای دستکاری گزینش‌ها در حالت عادی، استفاده کنید از: .Pp .Bl -tag -width XXXXXXXXXX -compact .It Aq Ic C-k ایجاد count گزینش جدید در خطوط بالایی . .It Aq Ic C-M-k ایجاد count گزینش جدید در خطوط بالای اولین گزینش . .It Aq Ic C-j ایجاد count گزینش جدید در خطوط پایینی . .It Aq Ic C-M-j ایجاد count گزینش جدید در خطوط پایین آخرین گزینش . .It Aq Ic C-p حذف گزینش اصلی . .It Aq Ic C-n انتخاب کلمه‌ای که گزینش روی آن قرار دارد، تغییر حالت به visual . .It Aq Ic C-u تبدیل گزینش count قبلی به گزینش اصلی . .It Aq Ic C-d تبدیل گزینش count بعدی به گزینش اصلی . .It Aq Ic C-c حذف ستون گزینش شماره count . .It Aq Ic C-l حذف همه به جز ستون گزینش شماره count . .It Aq Ic Tab تلاش برای هم‌تراز کردن همه گزینش‌ها در یک ستون . .It Aq Ic Escape کنار گذاشتن همه گزینش‌ها به جز گزینش اصلی .El .Pp حالت‌های visual برای تشخیص موارد زیر بهبود یافته‌اند: .Pp .Bl -tag -width XXXXXXXXXX -compact .It Ic I ایجاد یک گزینش در ابتدای هر خط انتخاب‌شده . .It Ic A ایجاد یک گزینش در انتهای هر خط انتخاب‌شده . .It Aq Ic Tab چپ‌چین کردن گزینش‌ها با درج فاصله . .It Aq Ic S-Tab راست‌چین کردن گزینش‌ها با درج فاصله . .It Aq Ic C-a ایجاد گزینش‌های جدید در تمام موارد مطابق با کلمه یا گزینش جاری . .It Aq Ic C-n ایجاد گزینش جدید و انتخاب کلمه بعدی مطابق با گزینش جاری . .It Aq Ic C-x پاک کردن (رد شدن از) گزینش جاری، اما انتخاب کلمه منطبق بعدی . .It Aq Ic C-p حذف گزینش اصلی . .It Ao Ic C-u Ac Ao Ic C-k Ac تبدیل گزینش count قبلی به اصلی . .It Ao Ic C-d Ac Ao Ic C-j Ac تبدیل گزینش count بعدی به اصلی . .It Aq Ic C-c حذف ستون گزینش شماره count . .It Aq Ic C-l حذف همه به جز ستون گزینش شماره count . .It Ic + چرخاندن گزینش‌ها به راست به تعداد count بار . .It Ic - چرخاندن گزینش‌ها به چپ به تعداد count بار . .It Ic _ پیرایش گزینش‌ها، حذف فاصله‌های سفید ابتدا و انتها . .It Ic o معکوس کردن جهت گزینش، جابجایی مکان‌نما و لنگر . .It Aq Ic Escape پاک کردن تمام گزینش‌ها، تغییر حالت به normal .El .Pp در حالت درج و جایگزینی: .Pp .Bl -tag -width XXXXXXXXXX -compact .It Aq Ic S-Tab هم‌تراز کردن تمام گزینش‌ها با درج فاصله .El .Pp گزینش‌ها را می‌توان با استفاده از عملیات مجموعه‌ای دستکاری کرد. عملوند نخست، گزینش‌های فعال کنونی است در حالی که عملوند دوم می‌تواند به عنوان یک نشانه مشخص شود. برای نمونه، .Ic ' Ns Ar a Ns Ic \&| اجتماع نشانه .Ar a و گزینش جاری را حاصل می‌کند. استفاده از عملیات مجموعه‌ای بدون تعیین یک نشانه، از نشانه پیش‌فرض به عنوان عملوند نخست استفاده می‌کند. .Pp .Bl -tag -width XXXXXXXXXX -compact .It Ic \&| اجتماع مجموعه .It Ic & اشتراک مجموعه .It Ic \e تفاضل مجموعه .It Ic ~ متمم مجموعه .El . .Sh "دستورهای VI(M) (VI(M) COMMANDS)" . هر پیشوند یکتا می‌تواند برای کوتاه کردن یک دستور به کار رود. . .Ss "مدیریت فایل و پنجره (File and Window management)" . یک فایل باید حداقل در یک پنجره باز باشد. اگر آخرین پنجره‌ای که فایل مشخصی را نمایش می‌دهد بسته شود، تمام تغییرات ذخیره‌نشده دور ریخته می‌شوند. پنجره‌ها دارای اندازه یکسان هستند و می‌توانند در سطرها (افقی) یا ستون‌ها (عمودی) نمایش داده شوند. نگاشت‌های کلید .Aq Ic C-w .Ic h Ns ، .Aq Ic C-w .Ic j Ns ، .Aq Ic C-w .Ic k و .Aq Ic C-w .Ic l می‌توانند برای جابجایی بین پنجره‌ها استفاده شوند. .Bl -tag -width indent .It Ic :new باز کردن یک پنجره خالی، مرتب‌شده به صورت یک سطر جدید (افقی) . .It Ic :vnew باز کردن یک پنجره خالی، مرتب‌شده به صورت یک ستون جدید (عمودی) . .It Ic :open Ns Oo Cm \&! Oc Op Ar file name باز کردن پنجره‌ای جدید، و نمایش نام فایل در صورت ارائه . .It Ic :split Op Ar file name تقسیم افقی پنجره به سطرها . .It Ic :vsplit Op Ar file name تقسیم عمودی پنجره به ستون‌ها . .It Ic :q Ns Oo Cm \&! Oc Op Ar exit code بستن پنجره دارای تمرکز کنونی . .It Ic :qall Ns Oo Cm \&! Oc Op Ar exit code بستن تمام پنجره‌ها، خاتمه ویرایشگر با کد خروج (پیش‌فرض 0) .El .Pp دستورهایی که نام فایل می‌پذیرند، اگر یک الگو یا دایرکتوری به آن‌ها داده شود، ابزار .Xr vis-open 1 را فراخوانی خواهند کرد. . .Ss "نگاشت‌های کلید زمان اجرا (Runtime key mappings)" . .Nm از نگاشت‌های کلید سراسری و همچنین محلی پنجره در زمان اجرا پشتیبانی می‌کند که همواره به طور بازگشتی ارزیابی می‌شوند. . .Bl -tag -width indent .It Ic :map Ns Oo Cm \&! Oc Ar mode Ar lhs Ar rhs افزودن نگاشت کلید سراسری . .It Ic :map-window Ns Oo Cm \&! Oc Ar mode Ar lhs Ar rhs افزودن نگاشت کلید محلی پنجره . .It Ic :unmap Ar mode Ar lhs حذف نگاشت کلید سراسری . .It Ic :unmap-window Ar mode Ar lhs حذف نگاشت کلید محلی پنجره .El .Pp در بالا، .Ar mode به یکی از موارد .Ql normal Ns ، .Ql insert Ns ، .Ql replace Ns ، .Ql visual Ns ، .Ql visual-line یا .Ql operator-pending اشاره دارد؛ .Ar lhs به کلیدی اشاره دارد که باید نگاشت شود و .Ar rhs یک کنش کلید یا نام مستعار است. یک نگاشت موجود ممکن است با اجبار دستور map از طریق تعیین .Cm \&! بازنویسی شود. .Pp از آنجا که نگاشت‌های کلید همیشه بازگشتی هستند، کاری مانند: .Pp .Dl :map! normal j 2j .Pp کار نخواهد کرد زیرا وارد یک حلقه بی‌پایان می‌شود. در عوض، .Nm از شبه‌کلیدهایی استفاده می‌کند که کنش‌های کلید (key actions) نامیده می‌شوند و می‌توان از آن‌ها برای فراخوانی مجموعه‌ای از توابع موجود ویرایشگر استفاده کرد. دستور .Ic :help تمام مقیدسازی‌های فعال کلید و همچنین تمام کلیدهای نمادین موجود را فهرست می‌کند. . .Ss "نگاشت‌های ویژه چینش صفحه‌کلید (Keyboard Layout Specific Mappings)" . به منظور تسهیل استفاده از چینش‌های صفحه‌کلید غیرلاتین، .Nm امکان نگاشت کلیدهای ویژه محلی به معادل‌های لاتین آن‌ها را از طریق دستور .Pp .D1 Ic :langmap Ar locale-keys Ar latin-keys .Pp فراهم می‌کند. به عنوان مثال، دستور زیر کلیدهای حرکتی را در چینش روسی نگاشت می‌کند: .Pp .Dl :langmap ролд hjkl .Pp اگر طول دنباله‌های کلید یکسان نباشد، بخش اضافی دنباله طولانی‌تر نادیده گرفته می‌شود. .Pp نگاشت‌های تعریف‌شده در تمام حالت‌های غیرورودی، یعنی همه‌جا به جز حالت‌های insert و replace اعمال می‌شوند. . .Ss "واگردانی/انجام مجدد (Undo/Redo)" . .Bl -tag -width indent .It Ic :earlier Op Ar count بازگشت به وضعیت متنی قدیمی‌تر .It Ic :later Op Ar count رفتن به وضعیت متنی جدیدتر .El .Pp اگر پسوند .Sy d .Pq روزها Ns ، .Sy h .Pq ساعت‌ها Ns ، .Sy m .Pq دقیقه‌ها یا .Sy s .Pq ثانیه‌ها به count اضافه شود، به عنوان فاصله‌ای از زمان جاری سیستم تفسیر شده و نزدیک‌ترین وضعیت متنی موجود بازیابی می‌گردد. . .Sh "گزینه‌های SET (SET OPTIONS)" . تعداد اندکی گزینه وجود دارد که می‌توان آن‌ها را با دستور .Ic :set تنظیم .Pq یا لغو تنظیم کرد تا رفتار ویرایشگر تغییر یابد. این بخش گزینه‌ها، اختصارات و مقادیر پیش‌فرض آن‌ها را شرح می‌دهد. گزینه‌های دودویی (بولی) را می‌توان با افزودن .Sy \&! به انتهای نام گزینه تغییر وضعیت داد. .Pp در هر مورد زیر، بخش نخست خط برچسب، نام کامل گزینه و به دنبال آن اختصارات معادل آن است. بخش داخل کروشه، مقدار پیش‌فرض گزینه است. .Bl -tag -width indent .It Ic shell Op Dq Pa /bin/sh شل کاربر برای استفاده در دستورهای خارجی؛ متغیر .Ev SHELL و فیلد شل در پایگاه داده گذرواژه .Pa /etc/passwd را نادیده می‌گیرد. . .It Ic escdelay Op Ar 50 میلی‌ثانیه‌های انتظار پیش از تصمیم‌گیری در مورد اینکه آیا یک دنباله گریز (escape sequence) باید به عنوان یک کلید .Aq Cm Escape تلقی شود یا خیر. . .It Ic tabwidth , Ic tw Op Ar 8 عرض نمایشی یک تب و تعداد فاصله‌های مورد استفاده در صورت فعال بودن .Ic expandtab . . .It Ic autoindent , Cm ai Op Cm off تورفتگی خودکار خطوط جدید با کپی کردن فاصله‌های خالی از خط قبلی. . .It Ic expandtab , Ic et Op Cm off اینکه آیا .Aq Ic Tab باید به تعداد .Ic tabwidth فاصله باز شود یا خیر. . .It Ic numbers , Ic nu Op Cm off نمایش شماره خطوط به صورت مطلق. . .It Ic relativenumbers , Ic rnu Op Cm off نمایش شماره خطوط به صورت نسبی. . .It Ic numberwidth , Ic nuw Op Cm 0 حداقل عرض نوار کناری هنگامی که نوار کناری با .Ic number یا .Ic relativenumbers فعال شده است. . .It Ic cursorline , Ic cul Op Cm off برجسته‌سازی خطی که مکان‌نمای اصلی روی آن قرار دارد. . .It Ic colorcolumn , Ic cc Op Ar 0 برجسته‌سازی یک ستون مشخص و ثابت. . .It Ic horizon Op Ar 32768 تحلیل‌گر لغوی (lexer) چه تعداد بایت به عقب بازمی‌گردد تا تجزیه را همگام‌سازی کند. . .It Ic theme Op Do default-16 Dc or Do default-256 Dc تم رنگی مورد استفاده، نام بدون پسوند فایل. از یک زیردایرکتوری .Pa themes/ در مسیرهای فهرست‌شده در بخش .Sx "فایل‌ها (FILES)" بارگذاری می‌شود. . .It Cm syntax Op Cm auto تحلیل‌گر لغوی برای برجسته‌سازی نحوی، نام بدون پسوند فایل. . .It Cm showtabs Op Cm off آیا نماد جایگزین به جای تب‌ها نمایش داده شود یا خیر. . .It Cm shownewlines Op Cm off آیا نماد جایگزین به جای خطوط جدید نمایش داده شود یا خیر. . .It Cm showspaces Op Cm off آیا نماد جایگزین به جای خانه‌های خالی نمایش داده شود یا خیر. . .It Cm showeof Op Cm on آیا نماد جایگزین برای خطوط پس از انتهای فایل نمایش داده شود یا خیر. . .It Cm savemethod Op Ar auto نحوه ذخیره فایل جاری؛ .Ar atomic که از .Xr rename 2 برای جایگزینی اتمیک فایل استفاده می‌کند، .Ar inplace که فایل را کوتاه (truncate) کرده و سپس آن را بازنویسی می‌کند، یا .Ar auto که پیش از رجوع به روش دوم، روش اول را امتحان می‌کند. روش تغییر نام (rename) برای پیوندهای نمادین، پیوندهای سخت، در صورت ناکافی بودن مجوزهای دایرکتوری، یا هنگامی که مالک فایل، گروه، ACL پازیکس یا برچسب‌های SELinux نتوانند بازیابی شوند شکست می‌خورد. .It Cm loadmethod Op Ar auto نحوه بارگذاری فایل‌های موجود؛ .Ar read که محتوای فایل را در یک بافر حافظه مستقل کپی می‌کند، .Ar mmap که فایل را از دیسک در حافظه نگاشت (memory map) کرده و از قابلیت‌های سیستم‌عامل به عنوان لایه حافظه موقت (کَش) استفاده می‌کند، یا .Ar auto که برای فایل‌های کوچک‌تر از 8 مگابایت روش اول و برای فایل‌های بزرگ‌تر روش دوم را امتحان می‌کند. هشدار: تغییر درجا (in-place) روی فایلی که در حافظه نگاشت شده باعث از دست رفتن داده‌ها می‌شود. .It Ic layout Op Do v Dc or Do h Dc استفاده از چیدمان عمودی یا افقی. .It Cm ignorecase , Cm ic Op Cm off نادیده گرفتن بزرگی و کوچکی حروف در هنگام جستجو. .It Ic wrapcolumn , Ic wc Op Ar 0 پیچیدن خطوط در حداقلِ عرض پنجره و wrapcolumn. . .It Ic breakat , brk Op Dq Pa "" نویسه‌هایی که ممکن است باعث شکستن خط (word wrap) شوند. .El . .Sh "اعلان دستور و جستجو (COMMAND AND SEARCH PROMPT)" . اعلان دستور و جستجو که با .Ic \&: Ns ، .Ic / یا .Ic \&? باز می‌شود، به صورت پنجره‌ای با ارتفاع یک خط پیاده‌سازی شده است که یک فایل عادی را نمایش می‌دهد و ویرایش آن در حالت insert آغاز می‌شود. .Aq Ic Escape به حالت normal تغییر وضعیت می‌دهد؛ دومین .Aq Ic Escape اعلان را لغو می‌کند. .Aq Ic Up پنجره را بزرگ‌تر کرده و دسترسی به تاریخچه دستورات را فراهم می‌سازد. .Aq Ic C-v .Aq Ic Enter یک خط جدید تحت‌اللفظی درج می‌کند و بدین ترتیب امکان استفاده از دستورهای چندخطی را فراهم می‌سازد. .Aq Ic Enter گزینش تصویری را در صورت وجود اجرا می‌کند، وگرنه هر آنچه را که در ناحیه میان موقعیت گزینش و نمادهای جداکننده اعلان در ابتدای خطوط مجاور قرار دارد اجرا خواهد کرد. . .Sh "پیکربندی (CONFIGURATION)" . .Nm از زبان Lua برای پیکربندی و اسکریپت‌نویسی استفاده می‌کند. در هنگام راه‌اندازی، فایل .Pa visrc.lua (بخش .Sx "فایل‌ها (FILES)" را ببینید) خوانده و اجرا می‌شود که می‌توان از آن برای اعمال تنظیمات پیکربندی شخصی استفاده کرد. به عنوان مثال دستور زیر نمایش شماره خطوط را فعال می‌کند: .Pp .Dl vis:command('set number') . .Sh "محیط (ENVIRONMENT)" . .Bl -tag -width indent .It Ev VIS_PATH مسیر پیش‌فرض برای بارگذاری فایل‌های پشتیبانی Lua. .It Ev HOME دایرکتوری خانگی مورد استفاده برای دستور .Ic cd در صورتی که هیچ آرگومانی داده نشود. .It Ev TERM نوع ترمینال مورد استفاده برای مقداردهی اولیه واسط curses؛ در صورت عدم تعیین، مقدار پیش‌فرض .Sy xterm است. .It Ev SHELL شل دستوری مورد استفاده برای دستورهای مربوط به ورودی/خروجی مانند .Ic \&! Ns ، .Ic > Ns ، .Ic < و .Ic \&| . .It Ev XDG_CONFIG_HOME دایرکتوری پیکربندی مورد استفاده؛ در صورت عدم تعیین، مقدار پیش‌فرض .Pa $HOME/.config است. .El . .Sh "رویدادهای ناهمگام (ASYNCHRONOUS EVENTS)" . .Bl -tag -width indent .It Dv SIGSTOP تعلیق ویرایشگر. .It Dv SIGCONT از سرگیری ویرایشگر. .It Dv SIGBUS یک فایل نگاشت‌شده در حافظه .Pq Xr mmap 2 کوتاه (truncate) شد؛ محتویات ذخیره‌نشده فایل از دست خواهد رفت. .It Dv SIGHUP .It Dv SIGTERM بازگردانی وضعیت اولیه ترمینال. محتویات ذخیره‌نشده فایل از دست خواهد رفت. .It Dv SIGINT هنگامی که در حین اجرای یک دستور خارجی یک وقفه رخ دهد، آن دستور پایان می‌یابد. .It Dv SIGWINCH اندازه صفحه نمایش تغییر می‌کند. .El . .Sh "فایل‌ها (FILES)" . در زمان راه‌اندازی، .Nm اولین فایل پیکربندی .Pa visrc.lua یافت‌شده از میان این مکان‌ها را بارگذاری می‌کند. تمام مسیرهای فعال کنونی را می‌توان در زمان اجرا با استفاده از دستور .Cm :help فهرست کرد. .Bl -bullet .It .Pa $VIS_PATH .It محل فایل اجرایی .Nm (در سیستم‌هایی که .Pa /proc/self/exe در دسترس است). .It .Pa $XDG_CONFIG_HOME/vis که در آن .Ev XDG_CONFIG_HOME در صورت عدم مقداردهی به .Pa $HOME/.config اشاره دارد. . .It .Pa /etc/vis برای پیکربندی سراسری سیستم که توسط مدیر سیستم ارائه می‌شود. .It .Pa /usr/local/share/vis یا .Pa /usr/share/vis بسته به پیکربندی ساخت. . .Pp هنگام ایجاد یک .Pa visrc.lua جدید، حتماً ساختار را از اینجا کپی کنید. .El . .Sh "وضعیت خروج (EXIT STATUS)" . .Ex -std . .Sh "مثال‌ها (EXAMPLES)" . استفاده از .Nm به عنوان یک فیلتر تعاملی. .Pp .Dl $ { echo Pick your number; seq 1 10; } | vis - > choice .Pp استفاده از مرورگر فایل مبتنی بر .Xr vis-open 1 برای فهرست کردن تمام فایل‌های منبع زبان C: .Pp .Dl :e *.c .Pp اجرای فرایند در پس‌زمینه و لوله‌کشی (pipe) محدوده به ورودی استاندارد آن: .Pp .Dl :> { plumber <&3 3<&- & } 3<&0 1>&- 2>&- . .Sh "همچنین ببینید (SEE ALSO)" . .Xr sam 1 , .Xr vi 1 , .Xr vis-clipboard 1 , .Xr vis-complete 1 , .Xr vis-digraph 1 , .Xr vis-menu 1 , .Xr vis-open 1 .Pp .Lk http://doc.cat-v.org/bell_labs/sam_lang_tutorial/sam_tut.pdf "A Tutorial for the Sam Command Language" نوشته .An Rob Pike .Pp .Lk http://doc.cat-v.org/plan_9/4th_edition/papers/sam "The Text Editor sam" نوشته .An Rob Pike .Pp .Lk http://man.cat-v.org/plan_9/1/sam "Plan 9 manual page for sam(1)" .Pp .Lk http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf "Structural Regular Expressions" نوشته .An Rob Pike .Pp .Lk http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html "vi - screen-oriented (visual) display editor" .St -p1003.1 . .Sh "استانداردها (STANDARDS)" . .Nm تلاشی برای سازگاری با .St -p1003.1 نمی‌کند، اما شباهت‌های آشکاری با ابزار .Nm vi دارد. . .Sh "نویسندگان (AUTHORS)" . .Nm توسط .An Marc André Tanner Aq mat at brain-dump.org نوشته شده است. . .Sh "گزارش باگ‌ها (BUGS)" . در برخی سیستم‌ها از پیش یک باینری با نام .Nm وجود دارد که باعث تداخل نام می‌شود.