.\" $OpenBSD: mg.1,v 1.139 2024/07/10 05:19:02 jmc Exp $ .\" This file is in the public domain. .\" .Dd $Mdocdate: July 10 2024 $ .Dt MG 1 .Os .Sh "نام (NAME)" .Nm mg .Nd ویرایشگر متنی شبیه به ایمکس (emacs) .Sh "خلاصه دستور (SYNOPSIS)" .Nm mg .Op Fl nR .Op Fl b Ar file .Op Fl f Ar mode .Op Fl u Ar file .Op + Ns Ar number .Op Ar .Sh "توضیحات (DESCRIPTION)" .Nm به عنوان ویرایشگری کوچک، سریع و قابل‌حمل برای افرادی در نظر گرفته شده است که بنا به دلایلی نمی‌توانند (یا نمی‌خواهند) از emacs استفاده کنند، یا با ویرایشگر .Xr vi 1 آشنایی ندارند. این ویرایشگر با emacs سازگار است، چرا که دلیلی برای یادگیری انواع بیشتری از ویرایشگرها به جز emacs یا .Xr vi 1 وجود ندارد. .Pp گزینه‌ها به شرح زیر هستند: .Bl -tag -width Ds .It + Ns Ar number رفتن به خط مشخص‌شده با شماره (بین علامت .Sq + و عدد فاصله نگذارید). اگر عددی منفی مشخص شود، شماره خط از انتهای فایل به سمت عقب شمرده می‌شود؛ یعنی ‎+-1 آخرین خط فایل، ‎+-2 خط یکی مانده به آخر و به همین ترتیب خواهد بود. .It Fl b Ar file فعال‌سازی حالت دسته‌ای (batch mode) و اجرای دستورات .Nm موجود در .Ar file مشخص‌شده و سپس خاتمه اجرای برنامه. .It Fl f Ar mode اجرای دستور .Ar mode برای تمامی بافرهای ایجادشده از آرگومان‌های خط فرمان، شامل بافر scratch و تمامی فایل‌ها. .It Fl n غیرفعال کردن ایجاد فایل‌های پشتیبان. .It Fl R فایل‌های مشخص‌شده در خط فرمان به صورت فقط‌خواندنی باز می‌شوند. .It Fl u Ar file استفاده از .Ar file به عنوان فایل راه‌اندازی، به‌جای فایل پیش‌فرض .Pa ~/.mg . .El .Sh "پنجره‌ها و بافرها (WINDOWS AND BUFFERS)" هنگامی که فایلی در .Nm بارگذاری می‌شود، در یک .Em بافر ذخیره می‌گردد. این بافر ممکن است در بیش از یک پنجره روی صفحه نمایش داده شود. در حال حاضر، پنجره‌ها تنها می‌توانند به صورت افقی تقسیم شوند، بنابراین هر پنجره با یک خط وضعیت در پایین مرزبندی می‌شود. اگر تغییراتی در یک بافر اعمال شود، در تمامی پنجره‌های باز منعکس خواهد شد. .Pp اگر فایلی خارج از .Nm تغییر کند و بافر آن در آستانه تغییر باشد، .Nm از کاربر می‌پرسد که آیا تغییر اعمال شود (y)، اعمال نشود (n) یا این‌که بافر به آخرین نسخه فایل روی دیسک بازگردانی شود (r). .Pp اگر نام یک بافر با ستاره شروع و ختم شود، آن بافر یک‌بارمصرف در نظر گرفته می‌شود؛ یعنی هنگام بستن بافر، برای ذخیره تغییرات از کاربر تأییدیه خواسته نخواهد شد. .Sh "نقطه و نشان (POINT AND MARK)" موقعیت فعلی مکان‌نما در .Nm به عنوان .Em نقطه (point) (یا .Em dot ) شناخته می‌شود. می‌توان با تعیین موقعیت دوم که .Em نشان (mark) نامیده می‌شود، ناحیه‌ای از متن را مختص به یک پنجره مشخص کرد. .Em ناحیه (region) متن بین نقطه و نشان (شامل هر دوی آن‌ها) است. حذف نویسه در موقعیت نشان، نشان را در محل حذف باقی می‌گذارد. .Pp نکته: برخلاف سایر ویرایشگرهای خانواده emacs، نقطه و نشان در .Nm مختص پنجره هستند، نه مختص بافر. .Sh "فایل‌های پشتیبان (BACKUP FILES)" فایل‌های پشتیبان نویسه .Sq ~ را در انتهای نام خود دارند و به‌طور پیش‌فرض در دایرکتوری کاری فعلی ایجاد می‌شوند. امکان ایجاد یا عدم ایجاد فایل‌های پشتیبان را می‌توان با دستور .Ic make-backup-files تغییر داد. محل ذخیره فایل پشتیبان می‌تواند در دایرکتوری کاری فعلی باشد، یا این‌که تمام نسخه‌های پشتیبان به دایرکتوری .Pa ~/.mg.d منتقل شوند که در آن فایل‌ها نام مسیر خود را برای حفظ یکتایی نگه می‌دارند. از دستور .Ic backup-to-home-directory برای جابه‌جایی میان این دو مکان استفاده کنید. علاوه بر این، اگر برنامه‌ای فایل‌های پشتیبان را در .Pa /tmp ایجاد کند، می‌توان با دستور .Ic leave-tmpdir-backups آن‌ها را در همان‌جا باقی گذاشت. .Sh "برچسب‌ها (TAGS)" .Nm از فایل‌های برچسب ایجادشده توسط .Xr ctags 1 پشتیبانی می‌کند و به کاربر اجازه می‌دهد به سرعت تعاریف اشیاء گوناگون را پیدا کند. توجه داشته باشید که emacs از etags استفاده می‌کند، نه ctags. .Sh "سی‌اسکوپ (CSCOPE)" .Nm از ناوبری در کد منبع با استفاده از cscope پشتیبانی می‌کند. با این حال، .Nm برای کارکرد به وجود برنامه‌های اجرایی cscope و cscope-indexer در متغیر .Ev PATH نیاز دارد. .Sh "کلیدهای میانبر پیش‌فرض (DEFAULT KEY BINDINGS)" دستورات عادی ویرایش بسیار شبیه به GNU Emacs هستند. در مثال‌های زیر، C-x به معنی Control-x و M-x به معنی Meta-x است، که در آن کلید Meta می‌تواند یک کلید ویژه روی صفحه‌کلید یا کلید ALT باشد؛ همچنین فشردن ESC و سپس کلید X نیز به همین ترتیب کار می‌کند. .Pp .Bl -tag -width xxxxxxxxxxxx -offset indent -compact .It C-SPC set-mark-command .It C-a beginning-of-line .It C-b backward-char .It C-c s c cscope-find-functions-calling-this-function .It C-c s d cscope-find-global-definition .It C-c s e cscope-find-egrep-pattern .It C-c s f cscope-find-this-file .It C-c s i cscope-find-files-including-file .It C-c s n cscope-next-symbol .It C-c s p cscope-prev-symbol .It C-c s s cscope-find-this-symbol .It C-c s t cscope-find-this-text-string .It C-d delete-char .It C-e end-of-line .It C-f forward-char .It C-g keyboard-quit .It C-h C-h help-help .It C-h a apropos .It C-h b describe-bindings .It C-h c describe-key-briefly .It C-j newline-and-indent .It C-k kill-line .It C-l recenter .It RET newline .It C-n next-line .It C-o open-line .It C-p previous-line .It C-q quoted-insert .It C-r isearch-backward .It C-s isearch-forward .It C-t transpose-chars .It C-u universal-argument .It C-v scroll-up .It C-w kill-region .It C-x C-b list-buffers .It C-x C-c save-buffers-kill-emacs .It C-x C-f find-file .It C-x C-j dired-jump .It C-x C-g keyboard-quit .It C-x C-l downcase-region .It C-x C-o delete-blank-lines .It C-x C-q toggle-read-only .It C-x C-r find-file-read-only .It C-x C-s save-buffer .It C-x C-u upcase-region .It C-x C-v find-alternate-file .It C-x C-w write-file .It C-x C-x exchange-point-and-mark .It C-x ( start-kbd-macro .It C-x \&) end-kbd-macro .It C-x 0 delete-window .It C-x 1 delete-other-windows .It C-x 2 split-window-vertically .It C-x 4 C-f find-file-other-window .It C-x 4 C-g keyboard-quit .It C-x 4 b switch-to-buffer-other-window .It C-x 4 f find-file-other-window .It C-x = what-cursor-position .It C-x ^ enlarge-window .It C-x ` next-error .It C-x b switch-to-buffer .It C-x d dired .It C-x e call-last-kbd-macro .It C-x f set-fill-column .It C-x g goto-line .It C-x h mark-whole-buffer .It C-x i insert-file .It C-x k kill-buffer .It C-x n other-window .It C-x o other-window .It C-x p previous-window .It C-x s save-some-buffers .It C-x u undo .It C-y yank .It C-z suspend-emacs .It M-C-v scroll-other-window .It M-SPC just-one-space .It M-! shell-command .It M-. find-tag .It M-* pop-tag-mark .It M-% query-replace .It M-< beginning-of-buffer .It M-> end-of-buffer .It M-\e delete-horizontal-space .It M-^ join-line .It M-b backward-word .It M-c capitalize-word .It M-d kill-word .It M-f forward-word .It M-h mark-paragraph .It M-l downcase-word .It M-m back-to-indentation .It M-q fill-paragraph .It M-r search-backward .It M-s search-forward .It M-t transpose-words .It M-u upcase-word .It M-v scroll-down .It M-w copy-region-as-kill .It M-x execute-extended-command .It M-z zap-to-char .It M-{ backward-paragraph .It M-| shell-command-on-region .It M-} forward-paragraph .It M-~ not-modified .It M-DEL backward-kill-word .It C-_ undo .It ) blink-and-insert .It DEL delete-backward-char .El .Pp برای توضیحات کامل درباره دستورات .Nm ، بخش .Sx "دستورات MG (MG COMMANDS)" را ببینید. برای مشاهده کلیدهای میانبر فعال در هر زمان، عبارت .Dq M-x describe-bindings را وارد کنید. .Sh "دستورات MG (MG COMMANDS)" دستورات با .Dq M-x یا از طریق اتصال به یک کلید فراخوانی می‌شوند. بسیاری از دستورات یک پارامتر عددی اختیاری .Va n می‌پذیرند. این پارامتر یا با M- (که در آن .Va n آرگومان عددی است) قبل از دستور، یا با یک یا چند بار فراخوانی آرگومان جامع (universal argument) که معمولاً به C-u متصل است، تنظیم می‌شود. هنگامی که دستور به این شیوه فراخوانی شود، مقدار پارامتر عددی ارسالی در مینی‌بافر قبل از M-x نمایش داده می‌شود. یکی از کاربردهای متداول این پارامتر، تغییر وضعیت حالت‌ها است (مانند make-backup-files). اگر هیچ پارامتری ارائه نشود، وضعیت حالت معکوس می‌شود. اگر یک پارامتر مثبت ارائه شود، حالت به اجبار فعال می‌گردد؛ در غیر این صورت، به اجبار غیرفعال می‌شود. .\" .Bl -tag -width xxxxx .It Ic apropos کمک موضوعی (Apropos). از کاربر یک رشته متنی می‌خواهد، بافر *help* را باز می‌کند و تمامی دستورات .Nm را که شامل آن رشته هستند فهرست می‌نماید. .It Ic audible-bell تغییر وضعیت زنگ شنیداری سیستم. .It Ic auto-execute ثبت یک قلاب اجرای خودکار؛ یعنی مشخص کردن یک الگوی نام فایل (مطابق با قوانین تطبیق الگو در پوسته) و تابعی مرتبط برای اجرا در هنگامی که فایلی منطبق با الگوی مشخص‌شده در یک بافر خوانده می‌شود. .It Ic auto-fill-mode تغییر وضعیت حالت پر کردن خودکار (گاهی mail-mode نامیده می‌شود) در بافر فعلی، که در آن متنی که فراتر از ستون پر کردن درج شود به‌طور خودکار به یک خط جدید شکسته می‌شود. می‌تواند به صورت سراسری با دستور .Ic set-default-mode تنظیم شود. .It Ic auto-indent-mode تغییر وضعیت حالت تورفتگی خودکار در بافر فعلی، که در آن تورفتگی پس از رفتن به خط جدید حفظ می‌شود. می‌تواند به صورت سراسری با دستور .Ic set-default-mode تنظیم شود. .It Ic back-to-indentation انتقال مکان‌نما به اولین نویسه غیرفضای خالی در خط فعلی. .It Ic backup-to-home-directory ذخیره نسخه‌های پشتیبان در دایرکتوری .Pa ~/.mg.d به جای دایرکتوری کاری. نیازمند فعال بودن .Ic make-backup-files است. .It Ic backward-char حرکت مکان‌نما به اندازه یک نویسه به سمت عقب. .It Ic backward-kill-word حذف متن به سمت عقب به تعداد .Va n کلمه. .It Ic backward-paragraph انتقال مکان‌نما به سمت عقب به تعداد .Va n بند. بندها با یا یا از یکدیگر تفکیک می‌شوند. .It Ic backward-word انتقال مکان‌نما به سمت عقب به تعداد کلمات مشخص‌شده. .It Ic beginning-of-buffer انتقال مکان‌نما به ابتدای بافر. در صورت تنظیم بودن، موقعیت نشان (mark) حفظ می‌شود؛ در غیر این صورت روی موقعیت فعلی تنظیم می‌گردد. آرگومان عددی .Va n مکان‌نما را به اندازه n/10 از ابتدای بافر به جلو می‌برد. .It Ic beginning-of-line انتقال مکان‌نما به ابتدای خط. .It Ic blink-and-insert درج خود نویسه، سپس جستجو به سمت عقب و چشمک زدن جداکننده متناظر آن. برای جداکننده‌هایی غیر از پرانتز، قلاب و آکوالاد، خود نویسه به عنوان جفت متناظر در نظر گرفته می‌شود. می‌توان آن را در فایل راه‌اندازی با دستور .Ic global-set-key استفاده کرد. .It Ic bsmap-mode تغییر وضعیت حالت bsmap، که در آن جای کلیدهای DEL و C-h عوض می‌شود. .It Ic c-mode تغییر وضعیت یک حالت سازگار با KNF برای ویرایش فایل‌های برنامه‌نویسی C. .It Ic call-last-kbd-macro فراخوانی ماکروی صفحه‌کلید. .It Ic capitalize-word بزرگ‌نویسی حرف اول .Va n کلمه؛ یعنی تبدیل اولین نویسه کلمه به حروف بزرگ و حروف بعدی به حروف کوچک. .It Ic cd تغییر دایرکتوری کاری سراسری. همچنین دستور .Ic global-wd-mode را ببینید. .It Ic column-number-mode تغییر وضعیت نمایش شماره ستون در خط وضعیت. .It Ic copy-region-as-kill کپی تمامی نویسه‌های موجود در ناحیه به بافر حذف، و سپس پاک کردن نشان. این کار تا حدی شبیه اجرای .Ic kill-region و به دنبال آن .Ic yank است. .It Ic count-matches شمارش تعداد خطوط منطبق با عبارت باقاعده ارائه‌شده. .It Ic count-non-matches شمارش تعداد خطوطی که با عبارت باقاعده ارائه‌شده تطابق ندارند. .It Ic cscope-find-this-symbol فهرست کردن موارد منطبق برای نماد داده‌شده. .It Ic cscope-find-global-definition فهرست کردن تعاریف سراسری برای عبارت داده‌شده. .It Ic cscope-find-called-functions فهرست کردن توابعی که از تابع داده‌شده فراخوانی شده‌اند. .It Ic cscope-find-functions-calling-this-function فهرست کردن توابعی که تابع داده‌شده را فراخوانی می‌کنند. .It Ic cscope-find-this-text-string فهرست کردن مکان‌های منطبق با رشته متنی داده‌شده. .It Ic cscope-find-egrep-pattern فهرست کردن مکان‌های منطبق با الگوی عبارت باقاعده گسترده داده‌شده. .It Ic cscope-find-this-file فهرست کردن نام فایل‌های منطبق با نام فایل داده‌شده. .It Ic cscope-find-files-including-file فهرست کردن فایل‌هایی که نام فایل داده‌شده را ‎#include کرده‌اند. .It Ic cscope-next-symbol رفتن به مورد منطبق بعدی. .It Ic cscope-prev-symbol رفتن به مورد منطبق قبلی. .It Ic cscope-next-file رفتن به فایل بعدی. .It Ic cscope-prev-file رفتن به فایل قبلی. .It Ic cscope-create-list-of-files-to-index ایجاد فهرست و نمایه cscope در دایرکتوری داده‌شده. .It Ic define-key از کاربر نام نگاشت کلید (حالت)، یک کلید و یک دستور .Nm را درخواست می‌کند، سپس یک اتصال کلید در نگاشت مربوطه ایجاد می‌نماید. .It Ic delete-backward-char حذف .Va n نویسه به سمت عقب. مشابه .Ic delete-char ، این دستور در صورت ارائه آرگومان، در واقع عملیات برش متن (kill) را انجام می‌دهد. .It Ic delete-blank-lines حذف خطوط خالی در اطراف مکان‌نما. اگر مکان‌نما روی یک خط خالی باشد، این دستور تمامی خطوط خالی بالا و پایین خط فعلی را حذف می‌کند؛ در غیر این صورت، تمامی خطوط خالی پس از خط فعلی را حذف می‌نماید. .It Ic delete-char حذف .Va n نویسه به سمت جلو. اگر آرگومانی ارائه شود، به جای حذف ساده، متن را بریده و نتیجه را در بافر حذف ذخیره می‌کند. .It Ic delete-horizontal-space حذف هرگونه فضای خالی در اطراف مکان‌نما. .It Ic delete-leading-space حذف فضاهای خالی ابتدای خط فعلی. .It Ic delete-trailing-space حذف فضاهای خالی انتهای خط فعلی. .It Ic delete-matching-lines حذف تمامی خطوط پس از مکان‌نما که شامل رشته‌ای منطبق با عبارت باقاعده ارائه‌شده هستند. .It Ic delete-non-matching-lines حذف تمامی خطوط پس از مکان‌نما که شامل رشته‌ای منطبق با عبارت باقاعده ارائه‌شده نیستند. .It Ic delete-other-windows تبدیل پنجره فعلی به تنها پنجره قابل مشاهده روی صفحه نمایش. .It Ic delete-window حذف پنجره فعلی. .It Ic describe-bindings فهرست کردن تمام کلیدهای میانبر سراسری و محلی، و قرار دادن نتیجه در بافر *help*. .It Ic describe-key-briefly خواندن یک کلید از صفحه‌کلید و جستجوی آن در نگاشت کلیدها. نام تابعی را که در حال حاضر به آن کلید متصل است نمایش می‌دهد. .It Ic diff-buffer-with-file مشاهده تفاوت‌های میان بافر و فایل مرتبط با آن. .It Ic digit-argument پردازش یک آرگومان عددی برای توابع فراخوانی‌شده از صفحه‌کلید. .It Ic dired-jump باز کردن یک بافر dired حاوی مکان دایرکتوری بافر فعلی. .It Ic downcase-region تبدیل تمامی نویسه‌های موجود در ناحیه به حروف کوچک. .It Ic downcase-word تبدیل نویسه‌ها به حروف کوچک، با شروع از مکان‌نما و تا فاصله .Va n کلمه. .It Ic emacs-version بازگرداندن رشته نسخه .Nm . .It Ic end-kbd-macro پایان دادن به تعریف ماکروی صفحه‌کلید. .It Ic end-of-buffer انتقال مکان‌نما به انتهای بافر. در صورت تنظیم بودن، موقعیت نشان حفظ می‌شود؛ در غیر این صورت روی موقعیت فعلی تنظیم می‌گردد. آرگومان عددی .Va n مکان‌نما را به اندازه n/10 از انتهای بافر به عقب می‌برد. .It Ic end-of-line انتقال مکان‌نما به انتهای خط. .It Ic enlarge-window بزرگ‌تر کردن پنجره فعلی با کوچک کردن پنجره بالا یا پایین آن. .It Ic eval-current-buffer ارزیابی و اجرای محتوای بافر فعلی به عنوان مجموعه‌ای از دستورات .Nm . برای آزمایش فایل‌های راه‌اندازی .Nm کاربرد دارد. .It Ic eval-expression دریافت یک خط از کاربر و اجرای آن. برای آزمایش عبارات در فایل‌های راه‌اندازی .Nm کاربرد دارد. .It Ic exchange-point-and-mark جابه‌جایی مقادیر «نقطه» و «نشان» در پنجره فعلی. اگر نشانی تنظیم نشده باشد، خطایی بازمی‌گرداند. .It Ic execute-extended-command فراخوانی یک دستور توسعه‌یافته؛ یعنی M-x. روال خط پیام را برای خواندن نام دستور و تکمیل خودکار آن فراخوانی می‌کند. پس از بازگشت، نام را در جدول نمادها جستجو کرده و در صورت یافتن، با ارسال آرگومان‌های لازم دستور را اجرا می‌کند. در صورت بروز هرگونه خطا، پیامی چاپ می‌نماید. .It Ic fill-paragraph تراز کردن یک بند، با شکستن متن در ستون پر کردن فعلی. .It Ic find-file انتخاب یک فایل برای ویرایش. ابتدا بررسی می‌کند که آیا فایل در بافر دیگری وجود دارد یا خیر؛ در این صورت، به آن بافر تغییر وضعیت می‌دهد. اگر فایل پیدا نشود، یک بافر جدید ایجاد کرده، فایل را از روی دیسک می‌خواند و به بافر جدید می‌رود. .It Ic find-file-read-only مشابه .Ic find-file ، با این تفاوت که بافر جدید به صورت فقط‌خواندنی تنظیم می‌شود. .It Ic find-alternate-file جایگزین کردن فایل فعلی با یک فایل جایگزین. قواعد مربوط به یافتن فایل جایگزین مشابه .Ic find-file است، با این تفاوت که بافر فعلی پیش از تغییر وضعیت بسته (kill) می‌شود. اگر بستن بافر ناموفق باشد یا لغو شود، به فایل اصلی بازمی‌گردد. .It Ic find-file-other-window فایل مشخص‌شده را در بافری دیگر باز می‌کند. در صورت نیاز پنجره فعلی را تقسیم می‌نماید. .It Ic find-tag پرش به تعریف برچسب در موقعیت مکان‌نما. .It Ic forward-char انتقال مکان‌نما به سمت جلو (یا به سمت عقب، در صورتی که .Va n منفی باشد) به اندازه .Va n نویسه. در صورت رسیدن به انتهای بافر خطایی بازمی‌گرداند. .It Ic forward-paragraph انتقال به سمت جلو به تعداد .Va n بند. بندها با یا یا از یکدیگر تفکیک می‌شوند. .It Ic forward-word انتقال مکان‌نما به سمت جلو به تعداد کلمات مشخص‌شده. .It Ic global-set-key اتصال یک کلید در نگاشت کلیدهای سراسری (بنیادین). .It Ic global-unset-key قطع اتصال یک کلید از نگاشت کلیدهای سراسری (بنیادین)؛ یعنی تنظیم آن روی 'rescan'. .It Ic global-wd-mode تغییر وضعیت حالت دایرکتوری کاری سراسری. هنگامی که فعال باشد، پیش‌فرض .Nm باز کردن فایل‌ها (و اجرای دستوراتی مانند .Ic compile و .Ic grep ) نسبت به دایرکتوری کاری سراسری خواهد بود. هنگامی که غیرفعال باشد، برای هر بافر یک دایرکتوری کاری مجزا تنظیم می‌شود. .It Ic goto-line رفتن به یک خط خاص. اگر آرگومانی وجود داشته باشد، به عنوان شماره خط استفاده می‌شود، در غیر این صورت شماره خط از کاربر درخواست می‌گردد. .It Ic help-help یکی از گزینه‌های (a)propos یا (b)indings یا des(c)ribe key briefly را درخواست می‌کند. .It Ic insert درج یک رشته، عمدتاً برای استفاده در ماکروها. .It Ic insert-buffer درج محتویات یک بافر دیگر در موقعیت مکان‌نما. .It Ic insert-file درج یک فایل در بافر فعلی در موقعیت مکان‌نما. .It Ic insert-with-wrap درج نویسه متصل‌شده همراه با شکستن خودکار خط (word wrap). بررسی می‌کند که آیا از ستون پر کردن عبور کرده‌ایم یا خیر، و در این صورت، این خط را تراز می‌نماید. .It Ic isearch-backward استفاده از جستجوی افزایشی، در ابتدا در جهت معکوس (به سمت عقب). جستجوی افزایشی هرگونه آرگومان صریح را نادیده می‌گیرد. اگر در حین تعریف یا اجرای ماکرو فراخوانی شود، دستور غیرافزایشی .Ic search-backward به جای آن اجرا می‌گردد. .It Ic isearch-forward استفاده از جستجوی افزایشی، در ابتدا در جهت مستقیم (به سمت جلو). جستجوی افزایشی هرگونه آرگومان صریح را نادیده می‌گیرد. اگر در حین تعریف یا اجرای ماکرو فراخوانی شود، دستور غیرافزایشی .Ic search-forward به جای آن اجرا می‌گردد. .It Ic join-line اتصال خط فعلی به خط قبلی. اگر با یک آرگومان فراخوانی شود، خط بعدی را به خط فعلی متصل می‌کند. .It Ic just-one-space حذف فضاهای خالی در اطراف مکان‌نما و سپس درج یک فاصله. .It Ic keyboard-quit لغو عملیات فعلی. .It Ic kill-buffer بستن و کنار گذاشتن یک بافر بر اساس نام. اگر نام بافر با علامت ستاره شروع و پایان نیافته باشد، در صورت وجود تغییرات در بافر، تأییدیه کاربر درخواست می‌شود. .It Ic kill-line برش (kill) خط. اگر بدون آرگومان فراخوانی شود، از مکان‌نما تا انتهای خط را برش می‌دهد، مگر این‌که در انتهای خط باشد که در آن صورت نویسه خط جدید را برش می‌دهد. اگر با آرگومان 0 فراخوانی شود، از ابتدای خط تا مکان‌نما را برش می‌دهد. اگر با یک آرگومان مثبت فراخوانی شود، از مکان‌نما به سمت جلو به تعداد آن، خطوط جدید را برش می‌دهد. اگر با یک آرگومان منفی فراخوانی شود، هر متنی قبل از مکان‌نما در خط فعلی را برش داده و سپس به تعداد ‎abs(n)‎ خط به عقب را حذف می‌کند. .It Ic kill-paragraph حذف .Va n بند با شروع از بند فعلی. .It Ic kill-region برش ناحیه تعریف‌شده فعلی. .It Ic kill-word حذف .Va n کلمه به سمت جلو. .It Ic leave-tmpdir-backups رفتار دستور .Ic backup-to-home-directory را تغییر می‌دهد. فایل‌های پشتیبانی که معمولاً در .Pa /tmp قرار می‌گیرند، در همان‌جا باقی مانده و به دایرکتوری .Pa ~/.mg.d منتقل نمی‌شوند. .It Ic line-number-mode تغییر وضعیت نمایش شماره خط در خط وضعیت. .It Ic list-buffers نمایش فهرست بافرهای در دسترس. اولین ستون در خروجی با نویسه '>' نشان می‌دهد که کدام بافر فعال است. ستون دوم نشان می‌دهد کدام بافرها تغییر یافته‌اند. ستون سوم نشان می‌دهد کدام بافرها فقط‌خواندنی هستند. سایر ستون‌ها واضح و بی‌نیاز از توضیح هستند. .It Ic load درخواست نام فایل از کاربر و سپس اجرای دستورات موجود در آن فایل. .It Ic local-set-key اتصال یک کلید در حالت محلی (بالاترین سطح). .It Ic local-unset-key قطع اتصال یک کلید در حالت محلی (بالاترین سطح). .It Ic make-backup-files تغییر وضعیت تولید فایل‌های پشتیبان. به صورت پیش‌فرض فعال است. .It Ic make-directory درخواست یک مسیر یا نام دایرکتوری از کاربر و سپس ایجاد آن. .It Ic mark-paragraph علامت‌گذاری .Va n بند. .It Ic mark-whole-buffer علامت‌گذاری کل بافر به عنوان یک ناحیه با قرار دادن مکان‌نما در ابتدا و نشان در انتهای بافر. .It Ic meta-key-mode هنگامی که غیرفعال باشد، کلید meta می‌تواند برای درج نویسه‌های اسکی توسعه‌یافته (8 بیتی) به کار رود. هنگامی که فعال باشد، کلید meta طبق روال معمول عمل می‌کند. .It Ic negative-argument پردازش یک آرگومان منفی برای توابع فراخوانی‌شده از صفحه‌کلید. .It Ic newline درج یک خط جدید در بافر فعلی. .It Ic newline-and-indent درج یک خط جدید، و سپس تب‌ها و فاصله‌های کافی برای بازتولید تورفتگی خط قبلی، با رعایت .Ic no-tab-mode و عرض تب در بافر. .It Ic next-line حرکت به سمت جلو به تعداد .Va n خط. .It Ic no-tab-mode تغییر وضعیت حالت notab. در این حالت به جای تب، فاصله درج می‌شود. می‌تواند به صورت سراسری با دستور .Ic set-default-mode تنظیم شود. .It Ic not-modified غیرفعال کردن پرچم تغییریافته در بافر فعلی. .It Ic open-line باز کردن مقداری فضای خالی. در اصل، درج .Va n خط جدید و سپس بازگشت به عقب از روی آن‌ها. .It Ic other-window دستوری برای تبدیل پنجره بعدی (به سمت پایین صفحه) به پنجره فعلی. هیچ خطای واقعی رخ نمی‌دهد، اگرچه در صورت وجود تنها یک پنجره روی صفحه، این دستور کاری انجام نمی‌دهد. .It Ic overwrite-mode تغییر وضعیت حالت بازنویسی در بافر فعلی، که در آن تایپ کردن روی نویسه‌های موجود بازنویسی می‌کند به جای این‌که آن‌ها را درج نماید. می‌تواند به صورت سراسری با دستور .Ic set-default-mode تنظیم شود. .It Ic prefix-region درج یک رشته پیشوند قبل از هر خط یک ناحیه. رشته پیشوند با استفاده از دستور .Ic set-prefix-string یا با فراخوانی این دستور همراه با یک آرگومان پیشوندی قابل تنظیم است. .It Ic previous-line حرکت به سمت عقب به تعداد .Va n خط. .It Ic previous-window این دستور پنجره قبلی (به سمت بالای صفحه) را به پنجره فعلی تبدیل می‌کند. هیچ خطایی رخ نمی‌دهد، اگرچه در صورت وجود تنها یک پنجره کار چندانی انجام نمی‌دهد. .It Ic pop-tag-mark بازگشت به موقعیتی که دستور find-tag قبلاً در آن فراخوانی شده بود. .It Ic push-shell تعلیق .Nm و تغییر وضعیت به صفحه نمایش جایگزین، در صورت در دسترس بودن. .It Ic pwd نمایش دایرکتوری کاری فعلی (سراسری) در ناحیه وضعیت. .It Ic query-replace جایگزینی تعاملی (Query Replace). جستجو و جایگزینی گزینشی رشته‌ها، همراه با درخواست تأییدیه پس از هر تطابق. .It Ic replace-regexp جایگزینی سراسری عبارت باقاعده بدون درخواست تأییدیه جداگانه. .It Ic replace-string جایگزینی سراسری رشته متنی بدون درخواست تأییدیه جداگانه. .It Ic query-replace-regexp جایگزینی گزینشی رشته‌ها. یک عملیات جستجو و جایگزینی با استفاده از عبارات باقاعده برای هر دو الگو انجام می‌دهد. .It Ic quoted-insert درج عینی (لفظی) نویسه بعدی در بافر فعلی؛ یعنی نادیده گرفتن هر تابعی که به آن کلید متصل شده است. .It Ic re-search-again انجام مجدد جستجوی عبارت باقاعده با استفاده از همان رشته جستجو و جهت آخرین دستور جستجو. .It Ic re-search-backward جستجو به سمت عقب با استفاده از یک عبارت باقاعده. یک رشته جستجو از کاربر دریافت کرده و با شروع از مکان‌نما به سمت ابتدای بافر جستجو می‌کند. در صورت یافتن، مکان‌نما روی اولین نویسه الگو [آخرین نویسه‌ای که منطبق شده] قرار می‌گیرد. .It Ic re-search-forward جستجو به سمت جلو با استفاده از عبارت باقاعده. یک رشته جستجو از کاربر دریافت کرده و با شروع از مکان‌نما به دنبال آن می‌گردد. در صورت یافتن، مکان‌نما به بلافاصله بعد از نویسه‌های منطبق منتقل می‌شود. بخش نمایش تمام کارهای پیچیده را انجام می‌دهد. در صورت عدم تطابق، پیامی چاپ می‌گردد. .It Ic recenter تنظیم مجدد موقعیت مکان‌نما در پنجره فعلی. به‌طور پیش‌فرض، مکان‌نما در مرکز قرار می‌گیرد. اگر یک آرگومان مثبت (n) داده شود، صفحه نمایش به خط n جابه‌جا می‌شود. اگر .Va n منفی باشد، شماره خط از پایین صفحه محاسبه می‌شود. .It Ic redraw-display تازه‌سازی صفحه نمایش. اندازه تمام پنجره‌ها را در صورت تغییر مجدداً محاسبه می‌کند. .It Ic revert-buffer بازگردانی بافر فعلی به آخرین نسخه فایل روی دیسک. .It Ic save-buffer ذخیره محتویات بافر فعلی در صورت تغییر، با امکان ایجاد اختیاری نسخه پشتیبان. .It Ic save-buffers-kill-emacs پیشنهاد ذخیره بافرهای تغییریافته و خروج از .Nm . .It Ic save-some-buffers بررسی فهرست بافرها و پیشنهاد ذخیره هر بافری که تغییر کرده است. بافرهایی که با فایل‌ها مرتبط نیستند (مانند *scratch* و *grep* و *compile*) نادیده گرفته می‌شوند. .It Ic scroll-down پیمایش به سمت عقب به اندازه .Va n صفحه. دو خط هم‌پوشانی میان صفحات در نظر گرفته می‌شود. اگر آرگومان تکرار داده شود، خطوط به عقب پیمایش می‌شوند نه صفحات. .It Ic scroll-one-line-down پیمایش صفحه نمایش به اندازه .Va n خط به سمت پایین بدون تغییر موقعیت مکان‌نما. .It Ic scroll-one-line-up پیمایش صفحه نمایش به اندازه .Va n خط به سمت بالا بدون حرکت دادن موقعیت مکان‌نما. .It Ic scroll-other-window پیمایش پنجره بعدی در فهرست پنجره‌ها به سمت جلو به اندازه .Va n صفحه. .It Ic scroll-up پیمایش به سمت جلو به اندازه یک صفحه. دو خط هم‌پوشانی میان صفحات در نظر گرفته می‌شود. اگر آرگومان تکرار داده شود، خطوط به جلو پیمایش می‌شوند نه صفحات. .It Ic search-again جستجوی مجدد با استفاده از همان رشته جستجو و جهت آخرین دستور جستجو. .It Ic search-backward جستجوی معکوس (به سمت عقب). یک رشته جستجو از کاربر دریافت کرده و با شروع از مکان‌نما به سمت ابتدای بافر جستجو می‌کند. در صورت یافتن، مکان‌نما روی اولین نویسه الگو (آخرین نویسه منطبق‌شده) قرار می‌گیرد. .It Ic search-forward جستجو به سمت جلو. یک رشته جستجو از کاربر دریافت کرده و از مکان‌نما به دنبال آن می‌گردد. در صورت یافتن، مکان‌نما به بلافاصله بعد از نویسه‌های منطبق منتقل می‌شود؛ در غیر این صورت پیامی چاپ می‌گردد. .It Ic self-insert-command درج یک نویسه. .It Ic sentence-end-double-space تغییر وضعیت استفاده از دو فاصله یا یک فاصله برای انتهای جملات. دو فاصله حالت پیش‌فرض است. در حال حاضر تنها بر دستور fill-paragraph تأثیر می‌گذارد. .It Ic set-case-fold-search تنظیم جستجوی بدون حساسیت به حروف بزرگ و کوچک، به طوری که بزرگی و کوچکی حروف در جستجوهای عبارات باقاعده نادیده گرفته شود. این حالت پیش‌فرض است. .It Ic set-case-replace حفظ بزرگی و کوچکی حروف در رشته جایگزین‌شده. این حالت پیش‌فرض است. .It Ic set-default-mode افزودن حالت ارائه‌شده به فهرست حالت‌های پیش‌فرضی که در ایجاد بافرهای بعدی استفاده می‌شوند. حالت‌های درونی شامل fill و indent و notab و overwrite هستند. .It Ic set-fill-column درخواست شماره ستون پر کردن (fill column) از کاربر. توسط .Ic auto-fill-mode استفاده می‌شود. .It Ic set-mark-command تنظیم نشان در پنجره فعلی روی موقعیت فعلی مکان‌نما. .It Ic set-prefix-string تنظیم رشته پیشوندی که توسط دستور .Ic prefix-region استفاده می‌شود. .It Ic set-tab-width تنظیم عرض تب برای بافر فعلی، یا مقدار پیش‌فرض برای بافرهای جدید در صورت فراخوانی با یک آرگومان پیشوندی یا از فایل راه‌اندازی. .It Ic shell-command اجرای دستور خارجی از مینی‌بافر. همراه با یک آرگومان جامع (universal argument)، خروجی دستور را در بافر فعلی درج می‌کند. .It Ic shell-command-on-region ارسال متن ناحیه به عنوان ورودی به دستور پوسته. همراه با یک آرگومان جامع، متن ناحیه را با خروجی دستور جایگزین می‌کند. .It Ic shrink-window کوچک کردن پنجره فعلی به اندازه یک خط. پنجره زیرین بلافاصله برای جبران فضای خالی گسترش می‌یابد. اگر تنها یک پنجره وجود داشته باشد، این دستور هیچ اثری ندارد. .It Ic space-to-tabstop درج فاصله‌های کافی برای رسیدن به موقعیت ایستگاه تب (tab-stop) بعدی. به‌طور پیش‌فرض، ایستگاه‌های تب هر 8 نویسه قرار دارند. .It Ic split-window-vertically تقسیم پنجره فعلی. پنجره‌ای با کمتر از 3 خط قابل تقسیم نیست. .It Ic start-kbd-macro شروع تعریف ماکروی صفحه‌کلید. تعریف ماکرو با فراخوانی end-kbd-macro خاتمه می‌یابد. .It Ic suspend-emacs تعلیق .Nm و بازگشت به صفحه نمایش جایگزین، در صورت استفاده. .It Ic switch-to-buffer درخواست نام بافر و رفتن به بافر جدید در پنجره فعلی. .It Ic switch-to-buffer-other-window رفتن به بافر در پنجره‌ای دیگر. .It Ic toggle-read-only تغییر وضعیت پرچم فقط‌خواندنی در بافر فعلی. .It Ic toggle-read-only-all تغییر وضعیت پرچم فقط‌خواندنی در تمامی بافرهای غیرزودگذر (non-ephemeral). یک تغییر وضعیت ساده که پرچم فقط‌خواندنی سراسری را روشن یا خاموش می‌کند. .It Ic transpose-chars جابه‌جایی دو نویسه روبه‌رو و زیر مکان‌نما، و سپس یک نویسه به سمت جلو حرکت می‌کند. با نویسه‌های خط جدید دقیقاً مانند سایر نویسه‌ها رفتار می‌شود. .It Ic transpose-paragraphs جابه‌جایی بندهای مجاور. اگر چند تکرار درخواست شود، بند فعلی به تعداد .Va n بند به سمت جلو جابه‌جا خواهد شد. .It Ic transpose-words جابه‌جایی کلمات مجاور. .It Ic undo لغو (Undo) تازه‌ترین عملیات. اگر بدون دستور میانی مجدداً فراخوانی شود، اشاره‌گر واگرد را به عملیات قبلی منتقل کرده و آن را لغو می‌کند. .It Ic undo-boundary افزودن یک مرز واگرد (undo boundary). این کار معمولاً به صورت تعاملی انجام نمی‌شود. .It Ic undo-boundary-toggle تغییر وضعیت تولید مرزهای واگرد. مرزهای واگرد معمولاً قبل از عملیاتی که باید به صورت اتمیک قابل برگشت باشند غیرفعال می‌شوند. .It Ic undo-enable تغییر وضعیت نگهداری اطلاعات واگرد. .It Ic undo-list نمایش رکوردهای واگرد بافر فعلی در یک بافر جدید. .It Ic universal-argument تکرار دستور بعدی به تعداد 4 بار. معمولاً به C-u متصل است. این دستور می‌تواند انباشته شود؛ مثلاً ‎C-u C-u C-f مکان‌نما را 16 نویسه به جلو می‌برد. .It Ic upcase-region بزرگ‌نویسی حروف ناحیه. تبدیل تمام نویسه‌های کوچک در ناحیه به حروف بزرگ. .It Ic upcase-word حرکت مکان‌نما به سمت جلو به تعداد کلمات مشخص‌شده. همگام با حرکت، نویسه‌ها را به حروف بزرگ تبدیل می‌کند. .It Ic visible-bell تغییر وضعیت زنگ تصویری. اگر این حالت فعال باشد، خط وضعیت چشمک می‌زند. .It Ic visit-tags-table بارگذاری فایل برچسب‌ها برای استفاده در دستورات بعدی .Ic find-tag . .It Ic what-cursor-position نمایش مجموعه‌ای از اطلاعات مفید درباره موقعیت فعلی مکان‌نما. نویسه زیر مکان‌نما (در مبنای هشت)، شماره خط، ردیف و ستون فعلی، و موقعیت تقریبی مکان‌نما در فایل (به درصد) نمایش داده می‌شود. موقعیت ستون یک صفحه نمایش بی‌نهایت را فرض می‌گیرد و صرفاً به دلیل محدودیت صفحه نمایش کوتاه نمی‌شود. .It Ic write-file درخواست نام فایل و نوشتن محتویات بافر فعلی در آن فایل. نام فایل به‌خاطرسپرده‌شده به‌روزرسانی شده و پرچم تغییر بافر پاک می‌شود. .It Ic yank چسباندن (yank) متن از .Ic kill-buffer . برخلاف emacs، بافر حذف در .Nm تنها شامل آخرین مورد بریده‌شده است و یک حلقه نیست. .It Ic zap-to-char درخواست یک نویسه و حذف متن از موقعیت فعلی مکان‌نما تا نمونه بعدی آن نویسه، شامل خود آن. .It Ic zap-up-to-char مشابه .Ic zap-to-char ، اما نویسه هدف را حذف نمی‌کند. .El .Sh "کلیدهای میانبر DIRED در MG (MG DIRED KEY BINDINGS)" کلیدهای میانبر خاصی در حالت dired در دسترس هستند. .Pp .Bl -tag -width xxxxxxxxxxxxxxxxxx -offset indent -compact .It DEL dired-unmark-backward .It RET, e, f and C-m dired-find-file .It SPC, n dired-next-line .It ! dired-shell-command .It + dired-create-directory .It ^ dired-up-directory .It a dired-find-alternate-file .It c dired-do-copy .It d and C-d dired-flag-file-deletion .It g dired-revert .It j dired-goto-file .It o dired-find-file-other-window .It p dired-previous-line .It q quit-window .It r dired-do-rename .It u dired-unmark .It x dired-do-flagged-delete .It C-v dired-scroll-down .It M-v dired-scroll-up .El .Sh "دستورات DIRED در MG (MG DIRED COMMANDS)" در زیر فهرستی از دستورات اختصاصی حالت dired آمده است: .Bl -tag -width Ds .It Ic dired-create-directory ایجاد یک دایرکتوری. .It Ic dired-do-copy کپی فایل فهرست‌شده در خط فعلی بافر dired. .It Ic dired-do-flagged-delete حذف فایل‌هایی که برای حذف نشانه‌گذاری شده‌اند. .It Ic dired-do-rename تغییر نام فایل فهرست‌شده در خط فعلی بافر dired. .It Ic dired-find-alternate-file جایگزین کردن بافر dired فعلی با یک بافر جایگزین، همان‌طور که با موقعیت مکان‌نما در بافر dired مشخص شده است. .It Ic dired-find-file باز کردن فایل واقع در خط فعلی بافر dired. اگر مکان‌نما روی یک دایرکتوری باشد، در حالت dired باز خواهد شد. .It Ic dired-flag-file-deletion نشانه‌گذاری فایل فهرست‌شده در خط فعلی برای حذف. این وضعیت با قرار دادن یک D در حاشیه چپ بافر مشخص می‌شود. هیچ فایلی عملاً حذف نمی‌شود تا زمانی که تابع .Ic dired-do-flagged-delete اجرا شود. .It Ic dired-find-file-other-window باز کردن فایل خط فعلی بافر dired در پنجره‌ای متفاوت. .It Ic dired-goto-file انتقال مکان‌نما به یک نام فایل در بافر dired. .It Ic dired-next-line انتقال مکان‌نما به خط بعدی. .It Ic dired-other-window این تابع دقیقاً مانند dired عمل می‌کند، با این تفاوت که بافر dired را در پنجره دیگری قرار می‌دهد. .It Ic dired-previous-line انتقال مکان‌نما به خط قبلی. .It Ic dired-revert تازه‌سازی بافر dired ضمن حفظ تمامی نشانه‌ها و پرچم‌ها. .It Ic dired-scroll-down پیمایش به سمت پایین در بافر dired. .It Ic dired-scroll-up پیمایش به سمت بالا در بافر dired. .It Ic dired-shell-command هدایت (pipe) فایل زیر موقعیت فعلی مکان‌نما از طریق یک دستور پوسته. .It Ic dired-unmark حذف نشان حذف از روی فایل واقع در خط فعلی. .It Ic dired-unmark-backward حذف نشان حذف از روی فایل فهرست‌شده در خط قبلی بافر dired و سپس رفتن به آن خط. .It Ic dired-up-directory باز کردن یک بافر dired در دایرکتوری والد. .It Ic quit-window بستن بافر dired فعلی. .El .Sh "فایل‌های پیکربندی (CONFIGURATION FILES)" دو فایل پیکربندی وجود دارد: .Pa .mg و .Pa .mg-TERM . در این‌جا .Ev TERM بیانگر نام نوع ترمینال است؛ به عنوان مثال اگر نوع ترمینال روی .Dq vt100 تنظیم شده باشد، .Nm از .Pa .mg-vt100 به عنوان فایل راه‌اندازی استفاده خواهد کرد. فایل راه‌اندازی ویژه نوع ترمینال ابتدا مورد استفاده قرار می‌گیرد. .Pp قالب فایل راه‌اندازی به صورت فهرستی از دستورات است (یک دستور در هر خط)، همان‌طور که برای ارزیابی تعاملی استفاده می‌شود. رشته‌هایی که معمولاً توسط کاربر در اعلان‌های بعدی وارد می‌شوند را می‌توان پس از نام دستور مشخص کرد؛ به عنوان مثال: .Bd -literal -offset indent global-set-key ")" self-insert-command global-set-key "\e^x\e^f" find-file global-set-key "\ee[Z" backward-char set-default-mode fill set-fill-column 72 auto-execute *.c c-mode .Ed .Pp می‌توان با قرار دادن .Sq ;\& یا .Sq # به عنوان اولین نویسه یک خط، به فایل‌های راه‌اندازی توضیح (comment) اضافه کرد. .Sh "فایل‌ها (FILES)" .Bl -tag -width /usr/share/doc/mg/tutorial -compact .It Pa ~/.mg فایل راه‌اندازی عادی .It Pa ~/.mg-TERM فایل راه‌اندازی ویژه ترمینال .It Pa ~/.mg.d مکان جایگزین برای فایل‌های پشتیبان .It Pa /usr/share/doc/mg/tutorial راهنمای آموزشی خلاصه .El .Sh "همچنین ببینید (SEE ALSO)" .Xr ctags 1 , .Xr vi 1 .Sh "هشدارها (CAVEATS)" از آنجا که این برنامه کاملاً به زبان C نوشته شده است، در حال حاضر زبانی وجود ندارد که بتوان افزونه‌ها را با آن نوشت؛ با این حال، می‌توان کلیدها را دوباره متصل کرد و پارامترهای مشخصی را در فایل‌های راه‌اندازی تغییر داد. .Pp برای استفاده از نویسه‌های ۸ بیتی (مانند اوملاوت آلمانی)، کلید Meta باید از طریق دستور .Ic meta-key-mode غیرفعال شود. .Pp مجموعه‌های نویسه چندبایتی، مانند UTF-8، پشتیبانی نمی‌شوند.