MG(1) General Commands Manual MG(1)

mg — ویرایشگر متنی شبیه به ایمکس (emacs)

mg [-nR] [-b file] [-f mode] [-u file] [+number] [file ...]

mg به عنوان ویرایشگری کوچک، سریع و قابل‌حمل برای افرادی در نظر گرفته شده است که بنا به دلایلی نمی‌توانند (یا نمی‌خواهند) از emacs استفاده کنند، یا با ویرایشگر vi(1) آشنایی ندارند. این ویرایشگر با emacs سازگار است، چرا که دلیلی برای یادگیری انواع بیشتری از ویرایشگرها به جز emacs یا vi(1) وجود ندارد.

گزینه‌ها به شرح زیر هستند:

+number
رفتن به خط مشخص‌شده با شماره (بین علامت ‘+’ و عدد فاصله نگذارید). اگر عددی منفی مشخص شود، شماره خط از انتهای فایل به سمت عقب شمرده می‌شود؛ یعنی ‎+-1 آخرین خط فایل، ‎+-2 خط یکی مانده به آخر و به همین ترتیب خواهد بود.
file
فعال‌سازی حالت دسته‌ای (batch mode) و اجرای دستورات mg موجود در file مشخص‌شده و سپس خاتمه اجرای برنامه.
mode
اجرای دستور mode برای تمامی بافرهای ایجادشده از آرگومان‌های خط فرمان، شامل بافر scratch و تمامی فایل‌ها.
غیرفعال کردن ایجاد فایل‌های پشتیبان.
فایل‌های مشخص‌شده در خط فرمان به صورت فقط‌خواندنی باز می‌شوند.
file
استفاده از file به عنوان فایل راه‌اندازی، به‌جای فایل پیش‌فرض ~/.mg.

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

اگر فایلی خارج از mg تغییر کند و بافر آن در آستانه تغییر باشد، mg از کاربر می‌پرسد که آیا تغییر اعمال شود (y)، اعمال نشود (n) یا این‌که بافر به آخرین نسخه فایل روی دیسک بازگردانی شود (r).

اگر نام یک بافر با ستاره شروع و ختم شود، آن بافر یک‌بارمصرف در نظر گرفته می‌شود؛ یعنی هنگام بستن بافر، برای ذخیره تغییرات از کاربر تأییدیه خواسته نخواهد شد.

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

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

فایل‌های پشتیبان نویسه ‘~’ را در انتهای نام خود دارند و به‌طور پیش‌فرض در دایرکتوری کاری فعلی ایجاد می‌شوند. امکان ایجاد یا عدم ایجاد فایل‌های پشتیبان را می‌توان با دستور make-backup-files تغییر داد. محل ذخیره فایل پشتیبان می‌تواند در دایرکتوری کاری فعلی باشد، یا این‌که تمام نسخه‌های پشتیبان به دایرکتوری ~/.mg.d منتقل شوند که در آن فایل‌ها نام مسیر خود را برای حفظ یکتایی نگه می‌دارند. از دستور backup-to-home-directory برای جابه‌جایی میان این دو مکان استفاده کنید. علاوه بر این، اگر برنامه‌ای فایل‌های پشتیبان را در /tmp ایجاد کند، می‌توان با دستور leave-tmpdir-backups آن‌ها را در همان‌جا باقی گذاشت.

mg از فایل‌های برچسب ایجادشده توسط ctags(1) پشتیبانی می‌کند و به کاربر اجازه می‌دهد به سرعت تعاریف اشیاء گوناگون را پیدا کند. توجه داشته باشید که emacs از etags استفاده می‌کند، نه ctags.

mg از ناوبری در کد منبع با استفاده از cscope پشتیبانی می‌کند. با این حال، mg برای کارکرد به وجود برنامه‌های اجرایی cscope و cscope-indexer در متغیر PATH نیاز دارد.

دستورات عادی ویرایش بسیار شبیه به GNU Emacs هستند. در مثال‌های زیر، C-x به معنی Control-x و M-x به معنی Meta-x است، که در آن کلید Meta می‌تواند یک کلید ویژه روی صفحه‌کلید یا کلید ALT باشد؛ همچنین فشردن ESC و سپس کلید X نیز به همین ترتیب کار می‌کند.

C-SPC
set-mark-command
C-a
beginning-of-line
C-b
backward-char
C-c s c
cscope-find-functions-calling-this-function
C-c s d
cscope-find-global-definition
C-c s e
cscope-find-egrep-pattern
C-c s f
cscope-find-this-file
C-c s i
cscope-find-files-including-file
C-c s n
cscope-next-symbol
C-c s p
cscope-prev-symbol
C-c s s
cscope-find-this-symbol
C-c s t
cscope-find-this-text-string
C-d
delete-char
C-e
end-of-line
C-f
forward-char
C-g
keyboard-quit
C-h C-h
help-help
C-h a
apropos
C-h b
describe-bindings
C-h c
describe-key-briefly
C-j
newline-and-indent
C-k
kill-line
C-l
recenter
RET
newline
C-n
next-line
C-o
open-line
C-p
previous-line
C-q
quoted-insert
C-r
isearch-backward
C-s
isearch-forward
C-t
transpose-chars
C-u
universal-argument
C-v
scroll-up
C-w
kill-region
C-x C-b
list-buffers
C-x C-c
save-buffers-kill-emacs
C-x C-f
find-file
C-x C-j
dired-jump
C-x C-g
keyboard-quit
C-x C-l
downcase-region
C-x C-o
delete-blank-lines
C-x C-q
toggle-read-only
C-x C-r
find-file-read-only
C-x C-s
save-buffer
C-x C-u
upcase-region
C-x C-v
find-alternate-file
C-x C-w
write-file
C-x C-x
exchange-point-and-mark
C-x (
start-kbd-macro
C-x )
end-kbd-macro
C-x 0
delete-window
C-x 1
delete-other-windows
C-x 2
split-window-vertically
C-x 4 C-f
find-file-other-window
C-x 4 C-g
keyboard-quit
C-x 4 b
switch-to-buffer-other-window
C-x 4 f
find-file-other-window
C-x =
what-cursor-position
C-x ^
enlarge-window
C-x `
next-error
C-x b
switch-to-buffer
C-x d
dired
C-x e
call-last-kbd-macro
C-x f
set-fill-column
C-x g
goto-line
C-x h
mark-whole-buffer
C-x i
insert-file
C-x k
kill-buffer
C-x n
other-window
C-x o
other-window
C-x p
previous-window
C-x s
save-some-buffers
C-x u
undo
C-y
yank
C-z
suspend-emacs
M-C-v
scroll-other-window
M-SPC
just-one-space
M-!
shell-command
M-.
find-tag
M-*
pop-tag-mark
M-%
query-replace
M-<
beginning-of-buffer
M->
end-of-buffer
M-\
delete-horizontal-space
M-^
join-line
M-b
backward-word
M-c
capitalize-word
M-d
kill-word
M-f
forward-word
M-h
mark-paragraph
M-l
downcase-word
M-m
back-to-indentation
M-q
fill-paragraph
M-r
search-backward
M-s
search-forward
M-t
transpose-words
M-u
upcase-word
M-v
scroll-down
M-w
copy-region-as-kill
M-x
execute-extended-command
M-z
zap-to-char
M-{
backward-paragraph
M-|
shell-command-on-region
M-}
forward-paragraph
M-~
not-modified
M-DEL
backward-kill-word
C-_
undo
)
blink-and-insert
DEL
delete-backward-char

برای توضیحات کامل درباره دستورات ، بخش دستورات MG (MG COMMANDS) را ببینید. برای مشاهده کلیدهای میانبر فعال در هر زمان، عبارت “M-x describe-bindings” را وارد کنید.

دستورات با “M-x” یا از طریق اتصال به یک کلید فراخوانی می‌شوند. بسیاری از دستورات یک پارامتر عددی اختیاری n می‌پذیرند. این پارامتر یا با M-<n> (که در آن n آرگومان عددی است) قبل از دستور، یا با یک یا چند بار فراخوانی آرگومان جامع (universal argument) که معمولاً به C-u متصل است، تنظیم می‌شود. هنگامی که دستور به این شیوه فراخوانی شود، مقدار پارامتر عددی ارسالی در مینی‌بافر قبل از M-x نمایش داده می‌شود. یکی از کاربردهای متداول این پارامتر، تغییر وضعیت حالت‌ها است (مانند make-backup-files). اگر هیچ پارامتری ارائه نشود، وضعیت حالت معکوس می‌شود. اگر یک پارامتر مثبت ارائه شود، حالت به اجبار فعال می‌گردد؛ در غیر این صورت، به اجبار غیرفعال می‌شود.

کمک موضوعی (Apropos). از کاربر یک رشته متنی می‌خواهد، بافر *help* را باز می‌کند و تمامی دستورات mg را که شامل آن رشته هستند فهرست می‌نماید.
تغییر وضعیت زنگ شنیداری سیستم.
ثبت یک قلاب اجرای خودکار؛ یعنی مشخص کردن یک الگوی نام فایل (مطابق با قوانین تطبیق الگو در پوسته) و تابعی مرتبط برای اجرا در هنگامی که فایلی منطبق با الگوی مشخص‌شده در یک بافر خوانده می‌شود.
تغییر وضعیت حالت پر کردن خودکار (گاهی mail-mode نامیده می‌شود) در بافر فعلی، که در آن متنی که فراتر از ستون پر کردن درج شود به‌طور خودکار به یک خط جدید شکسته می‌شود. می‌تواند به صورت سراسری با دستور set-default-mode تنظیم شود.
تغییر وضعیت حالت تورفتگی خودکار در بافر فعلی، که در آن تورفتگی پس از رفتن به خط جدید حفظ می‌شود. می‌تواند به صورت سراسری با دستور set-default-mode تنظیم شود.
انتقال مکان‌نما به اولین نویسه غیرفضای خالی در خط فعلی.
ذخیره نسخه‌های پشتیبان در دایرکتوری ~/.mg.d به جای دایرکتوری کاری. نیازمند فعال بودن make-backup-files است.
حرکت مکان‌نما به اندازه یک نویسه به سمت عقب.
حذف متن به سمت عقب به تعداد n کلمه.
انتقال مکان‌نما به سمت عقب به تعداد n بند. بندها با <NL><NL> یا <NL><TAB> یا <NL><SPACE> از یکدیگر تفکیک می‌شوند.
انتقال مکان‌نما به سمت عقب به تعداد کلمات مشخص‌شده.
انتقال مکان‌نما به ابتدای بافر. در صورت تنظیم بودن، موقعیت نشان (mark) حفظ می‌شود؛ در غیر این صورت روی موقعیت فعلی تنظیم می‌گردد. آرگومان عددی n مکان‌نما را به اندازه n/10 از ابتدای بافر به جلو می‌برد.
انتقال مکان‌نما به ابتدای خط.
درج خود نویسه، سپس جستجو به سمت عقب و چشمک زدن جداکننده متناظر آن. برای جداکننده‌هایی غیر از پرانتز، قلاب و آکوالاد، خود نویسه به عنوان جفت متناظر در نظر گرفته می‌شود. می‌توان آن را در فایل راه‌اندازی با دستور global-set-key استفاده کرد.
تغییر وضعیت حالت bsmap، که در آن جای کلیدهای DEL و C-h عوض می‌شود.
تغییر وضعیت یک حالت سازگار با KNF برای ویرایش فایل‌های برنامه‌نویسی C.
فراخوانی ماکروی صفحه‌کلید.
بزرگ‌نویسی حرف اول n کلمه؛ یعنی تبدیل اولین نویسه کلمه به حروف بزرگ و حروف بعدی به حروف کوچک.
تغییر دایرکتوری کاری سراسری. همچنین دستور global-wd-mode را ببینید.
تغییر وضعیت نمایش شماره ستون در خط وضعیت.
کپی تمامی نویسه‌های موجود در ناحیه به بافر حذف، و سپس پاک کردن نشان. این کار تا حدی شبیه اجرای kill-region و به دنبال آن yank است.
شمارش تعداد خطوط منطبق با عبارت باقاعده ارائه‌شده.
شمارش تعداد خطوطی که با عبارت باقاعده ارائه‌شده تطابق ندارند.
فهرست کردن موارد منطبق برای نماد داده‌شده.
فهرست کردن تعاریف سراسری برای عبارت داده‌شده.
فهرست کردن توابعی که از تابع داده‌شده فراخوانی شده‌اند.
فهرست کردن توابعی که تابع داده‌شده را فراخوانی می‌کنند.
فهرست کردن مکان‌های منطبق با رشته متنی داده‌شده.
فهرست کردن مکان‌های منطبق با الگوی عبارت باقاعده گسترده داده‌شده.
فهرست کردن نام فایل‌های منطبق با نام فایل داده‌شده.
فهرست کردن فایل‌هایی که نام فایل داده‌شده را ‎#include کرده‌اند.
رفتن به مورد منطبق بعدی.
رفتن به مورد منطبق قبلی.
رفتن به فایل بعدی.
رفتن به فایل قبلی.
ایجاد فهرست و نمایه cscope در دایرکتوری داده‌شده.
از کاربر نام نگاشت کلید (حالت)، یک کلید و یک دستور mg را درخواست می‌کند، سپس یک اتصال کلید در نگاشت مربوطه ایجاد می‌نماید.
حذف n نویسه به سمت عقب. مشابه delete-char ، این دستور در صورت ارائه آرگومان، در واقع عملیات برش متن (kill) را انجام می‌دهد.
حذف خطوط خالی در اطراف مکان‌نما. اگر مکان‌نما روی یک خط خالی باشد، این دستور تمامی خطوط خالی بالا و پایین خط فعلی را حذف می‌کند؛ در غیر این صورت، تمامی خطوط خالی پس از خط فعلی را حذف می‌نماید.
حذف n نویسه به سمت جلو. اگر آرگومانی ارائه شود، به جای حذف ساده، متن را بریده و نتیجه را در بافر حذف ذخیره می‌کند.
حذف هرگونه فضای خالی در اطراف مکان‌نما.
حذف فضاهای خالی ابتدای خط فعلی.
حذف فضاهای خالی انتهای خط فعلی.
حذف تمامی خطوط پس از مکان‌نما که شامل رشته‌ای منطبق با عبارت باقاعده ارائه‌شده هستند.
حذف تمامی خطوط پس از مکان‌نما که شامل رشته‌ای منطبق با عبارت باقاعده ارائه‌شده نیستند.
تبدیل پنجره فعلی به تنها پنجره قابل مشاهده روی صفحه نمایش.
حذف پنجره فعلی.
فهرست کردن تمام کلیدهای میانبر سراسری و محلی، و قرار دادن نتیجه در بافر *help*.
خواندن یک کلید از صفحه‌کلید و جستجوی آن در نگاشت کلیدها. نام تابعی را که در حال حاضر به آن کلید متصل است نمایش می‌دهد.
مشاهده تفاوت‌های میان بافر و فایل مرتبط با آن.
پردازش یک آرگومان عددی برای توابع فراخوانی‌شده از صفحه‌کلید.
باز کردن یک بافر dired حاوی مکان دایرکتوری بافر فعلی.
تبدیل تمامی نویسه‌های موجود در ناحیه به حروف کوچک.
تبدیل نویسه‌ها به حروف کوچک، با شروع از مکان‌نما و تا فاصله n کلمه.
بازگرداندن رشته نسخه mg.
پایان دادن به تعریف ماکروی صفحه‌کلید.
انتقال مکان‌نما به انتهای بافر. در صورت تنظیم بودن، موقعیت نشان حفظ می‌شود؛ در غیر این صورت روی موقعیت فعلی تنظیم می‌گردد. آرگومان عددی n مکان‌نما را به اندازه n/10 از انتهای بافر به عقب می‌برد.
انتقال مکان‌نما به انتهای خط.
بزرگ‌تر کردن پنجره فعلی با کوچک کردن پنجره بالا یا پایین آن.
ارزیابی و اجرای محتوای بافر فعلی به عنوان مجموعه‌ای از دستورات mg. برای آزمایش فایل‌های راه‌اندازی mg کاربرد دارد.
دریافت یک خط از کاربر و اجرای آن. برای آزمایش عبارات در فایل‌های راه‌اندازی mg کاربرد دارد.
جابه‌جایی مقادیر «نقطه» و «نشان» در پنجره فعلی. اگر نشانی تنظیم نشده باشد، خطایی بازمی‌گرداند.
فراخوانی یک دستور توسعه‌یافته؛ یعنی M-x. روال خط پیام را برای خواندن نام دستور و تکمیل خودکار آن فراخوانی می‌کند. پس از بازگشت، نام را در جدول نمادها جستجو کرده و در صورت یافتن، با ارسال آرگومان‌های لازم دستور را اجرا می‌کند. در صورت بروز هرگونه خطا، پیامی چاپ می‌نماید.
تراز کردن یک بند، با شکستن متن در ستون پر کردن فعلی.
انتخاب یک فایل برای ویرایش. ابتدا بررسی می‌کند که آیا فایل در بافر دیگری وجود دارد یا خیر؛ در این صورت، به آن بافر تغییر وضعیت می‌دهد. اگر فایل پیدا نشود، یک بافر جدید ایجاد کرده، فایل را از روی دیسک می‌خواند و به بافر جدید می‌رود.
مشابه find-file ، با این تفاوت که بافر جدید به صورت فقط‌خواندنی تنظیم می‌شود.
جایگزین کردن فایل فعلی با یک فایل جایگزین. قواعد مربوط به یافتن فایل جایگزین مشابه find-file است، با این تفاوت که بافر فعلی پیش از تغییر وضعیت بسته (kill) می‌شود. اگر بستن بافر ناموفق باشد یا لغو شود، به فایل اصلی بازمی‌گردد.
فایل مشخص‌شده را در بافری دیگر باز می‌کند. در صورت نیاز پنجره فعلی را تقسیم می‌نماید.
پرش به تعریف برچسب در موقعیت مکان‌نما.
انتقال مکان‌نما به سمت جلو (یا به سمت عقب، در صورتی که n منفی باشد) به اندازه n نویسه. در صورت رسیدن به انتهای بافر خطایی بازمی‌گرداند.
انتقال به سمت جلو به تعداد n بند. بندها با <NL><NL> یا <NL><TAB> یا <NL><SPACE> از یکدیگر تفکیک می‌شوند.
انتقال مکان‌نما به سمت جلو به تعداد کلمات مشخص‌شده.
اتصال یک کلید در نگاشت کلیدهای سراسری (بنیادین).
قطع اتصال یک کلید از نگاشت کلیدهای سراسری (بنیادین)؛ یعنی تنظیم آن روی 'rescan'.
تغییر وضعیت حالت دایرکتوری کاری سراسری. هنگامی که فعال باشد، پیش‌فرض mg باز کردن فایل‌ها (و اجرای دستوراتی مانند compile و grep) نسبت به دایرکتوری کاری سراسری خواهد بود. هنگامی که غیرفعال باشد، برای هر بافر یک دایرکتوری کاری مجزا تنظیم می‌شود.
رفتن به یک خط خاص. اگر آرگومانی وجود داشته باشد، به عنوان شماره خط استفاده می‌شود، در غیر این صورت شماره خط از کاربر درخواست می‌گردد.
یکی از گزینه‌های (a)propos یا (b)indings یا des(c)ribe key briefly را درخواست می‌کند.
درج یک رشته، عمدتاً برای استفاده در ماکروها.
درج محتویات یک بافر دیگر در موقعیت مکان‌نما.
درج یک فایل در بافر فعلی در موقعیت مکان‌نما.
درج نویسه متصل‌شده همراه با شکستن خودکار خط (word wrap). بررسی می‌کند که آیا از ستون پر کردن عبور کرده‌ایم یا خیر، و در این صورت، این خط را تراز می‌نماید.
استفاده از جستجوی افزایشی، در ابتدا در جهت معکوس (به سمت عقب). جستجوی افزایشی هرگونه آرگومان صریح را نادیده می‌گیرد. اگر در حین تعریف یا اجرای ماکرو فراخوانی شود، دستور غیرافزایشی search-backward به جای آن اجرا می‌گردد.
استفاده از جستجوی افزایشی، در ابتدا در جهت مستقیم (به سمت جلو). جستجوی افزایشی هرگونه آرگومان صریح را نادیده می‌گیرد. اگر در حین تعریف یا اجرای ماکرو فراخوانی شود، دستور غیرافزایشی search-forward به جای آن اجرا می‌گردد.
اتصال خط فعلی به خط قبلی. اگر با یک آرگومان فراخوانی شود، خط بعدی را به خط فعلی متصل می‌کند.
حذف فضاهای خالی در اطراف مکان‌نما و سپس درج یک فاصله.
لغو عملیات فعلی.
بستن و کنار گذاشتن یک بافر بر اساس نام. اگر نام بافر با علامت ستاره شروع و پایان نیافته باشد، در صورت وجود تغییرات در بافر، تأییدیه کاربر درخواست می‌شود.
برش (kill) خط. اگر بدون آرگومان فراخوانی شود، از مکان‌نما تا انتهای خط را برش می‌دهد، مگر این‌که در انتهای خط باشد که در آن صورت نویسه خط جدید را برش می‌دهد. اگر با آرگومان 0 فراخوانی شود، از ابتدای خط تا مکان‌نما را برش می‌دهد. اگر با یک آرگومان مثبت فراخوانی شود، از مکان‌نما به سمت جلو به تعداد آن، خطوط جدید را برش می‌دهد. اگر با یک آرگومان منفی فراخوانی شود، هر متنی قبل از مکان‌نما در خط فعلی را برش داده و سپس به تعداد ‎abs(n)‎ خط به عقب را حذف می‌کند.
حذف n بند با شروع از بند فعلی.
برش ناحیه تعریف‌شده فعلی.
حذف n کلمه به سمت جلو.
رفتار دستور backup-to-home-directory را تغییر می‌دهد. فایل‌های پشتیبانی که معمولاً در /tmp قرار می‌گیرند، در همان‌جا باقی مانده و به دایرکتوری ~/.mg.d منتقل نمی‌شوند.
تغییر وضعیت نمایش شماره خط در خط وضعیت.
نمایش فهرست بافرهای در دسترس. اولین ستون در خروجی با نویسه '>' نشان می‌دهد که کدام بافر فعال است. ستون دوم نشان می‌دهد کدام بافرها تغییر یافته‌اند. ستون سوم نشان می‌دهد کدام بافرها فقط‌خواندنی هستند. سایر ستون‌ها واضح و بی‌نیاز از توضیح هستند.
درخواست نام فایل از کاربر و سپس اجرای دستورات موجود در آن فایل.
اتصال یک کلید در حالت محلی (بالاترین سطح).
قطع اتصال یک کلید در حالت محلی (بالاترین سطح).
تغییر وضعیت تولید فایل‌های پشتیبان. به صورت پیش‌فرض فعال است.
درخواست یک مسیر یا نام دایرکتوری از کاربر و سپس ایجاد آن.
علامت‌گذاری n بند.
علامت‌گذاری کل بافر به عنوان یک ناحیه با قرار دادن مکان‌نما در ابتدا و نشان در انتهای بافر.
هنگامی که غیرفعال باشد، کلید meta می‌تواند برای درج نویسه‌های اسکی توسعه‌یافته (8 بیتی) به کار رود. هنگامی که فعال باشد، کلید meta طبق روال معمول عمل می‌کند.
پردازش یک آرگومان منفی برای توابع فراخوانی‌شده از صفحه‌کلید.
درج یک خط جدید در بافر فعلی.
درج یک خط جدید، و سپس تب‌ها و فاصله‌های کافی برای بازتولید تورفتگی خط قبلی، با رعایت no-tab-mode و عرض تب در بافر.
حرکت به سمت جلو به تعداد n خط.
تغییر وضعیت حالت notab. در این حالت به جای تب، فاصله درج می‌شود. می‌تواند به صورت سراسری با دستور set-default-mode تنظیم شود.
غیرفعال کردن پرچم تغییریافته در بافر فعلی.
باز کردن مقداری فضای خالی. در اصل، درج n خط جدید و سپس بازگشت به عقب از روی آن‌ها.
دستوری برای تبدیل پنجره بعدی (به سمت پایین صفحه) به پنجره فعلی. هیچ خطای واقعی رخ نمی‌دهد، اگرچه در صورت وجود تنها یک پنجره روی صفحه، این دستور کاری انجام نمی‌دهد.
تغییر وضعیت حالت بازنویسی در بافر فعلی، که در آن تایپ کردن روی نویسه‌های موجود بازنویسی می‌کند به جای این‌که آن‌ها را درج نماید. می‌تواند به صورت سراسری با دستور set-default-mode تنظیم شود.
درج یک رشته پیشوند قبل از هر خط یک ناحیه. رشته پیشوند با استفاده از دستور set-prefix-string یا با فراخوانی این دستور همراه با یک آرگومان پیشوندی قابل تنظیم است.
حرکت به سمت عقب به تعداد n خط.
این دستور پنجره قبلی (به سمت بالای صفحه) را به پنجره فعلی تبدیل می‌کند. هیچ خطایی رخ نمی‌دهد، اگرچه در صورت وجود تنها یک پنجره کار چندانی انجام نمی‌دهد.
بازگشت به موقعیتی که دستور find-tag قبلاً در آن فراخوانی شده بود.
تعلیق mg و تغییر وضعیت به صفحه نمایش جایگزین، در صورت در دسترس بودن.
نمایش دایرکتوری کاری فعلی (سراسری) در ناحیه وضعیت.
جایگزینی تعاملی (Query Replace). جستجو و جایگزینی گزینشی رشته‌ها، همراه با درخواست تأییدیه پس از هر تطابق.
جایگزینی سراسری عبارت باقاعده بدون درخواست تأییدیه جداگانه.
جایگزینی سراسری رشته متنی بدون درخواست تأییدیه جداگانه.
جایگزینی گزینشی رشته‌ها. یک عملیات جستجو و جایگزینی با استفاده از عبارات باقاعده برای هر دو الگو انجام می‌دهد.
درج عینی (لفظی) نویسه بعدی در بافر فعلی؛ یعنی نادیده گرفتن هر تابعی که به آن کلید متصل شده است.
انجام مجدد جستجوی عبارت باقاعده با استفاده از همان رشته جستجو و جهت آخرین دستور جستجو.
جستجو به سمت عقب با استفاده از یک عبارت باقاعده. یک رشته جستجو از کاربر دریافت کرده و با شروع از مکان‌نما به سمت ابتدای بافر جستجو می‌کند. در صورت یافتن، مکان‌نما روی اولین نویسه الگو [آخرین نویسه‌ای که منطبق شده] قرار می‌گیرد.
جستجو به سمت جلو با استفاده از عبارت باقاعده. یک رشته جستجو از کاربر دریافت کرده و با شروع از مکان‌نما به دنبال آن می‌گردد. در صورت یافتن، مکان‌نما به بلافاصله بعد از نویسه‌های منطبق منتقل می‌شود. بخش نمایش تمام کارهای پیچیده را انجام می‌دهد. در صورت عدم تطابق، پیامی چاپ می‌گردد.
تنظیم مجدد موقعیت مکان‌نما در پنجره فعلی. به‌طور پیش‌فرض، مکان‌نما در مرکز قرار می‌گیرد. اگر یک آرگومان مثبت (n) داده شود، صفحه نمایش به خط n جابه‌جا می‌شود. اگر n منفی باشد، شماره خط از پایین صفحه محاسبه می‌شود.
تازه‌سازی صفحه نمایش. اندازه تمام پنجره‌ها را در صورت تغییر مجدداً محاسبه می‌کند.
بازگردانی بافر فعلی به آخرین نسخه فایل روی دیسک.
ذخیره محتویات بافر فعلی در صورت تغییر، با امکان ایجاد اختیاری نسخه پشتیبان.
پیشنهاد ذخیره بافرهای تغییریافته و خروج از mg.
بررسی فهرست بافرها و پیشنهاد ذخیره هر بافری که تغییر کرده است. بافرهایی که با فایل‌ها مرتبط نیستند (مانند *scratch* و *grep* و *compile*) نادیده گرفته می‌شوند.
پیمایش به سمت عقب به اندازه n صفحه. دو خط هم‌پوشانی میان صفحات در نظر گرفته می‌شود. اگر آرگومان تکرار داده شود، خطوط به عقب پیمایش می‌شوند نه صفحات.
پیمایش صفحه نمایش به اندازه n خط به سمت پایین بدون تغییر موقعیت مکان‌نما.
پیمایش صفحه نمایش به اندازه n خط به سمت بالا بدون حرکت دادن موقعیت مکان‌نما.
پیمایش پنجره بعدی در فهرست پنجره‌ها به سمت جلو به اندازه n صفحه.
پیمایش به سمت جلو به اندازه یک صفحه. دو خط هم‌پوشانی میان صفحات در نظر گرفته می‌شود. اگر آرگومان تکرار داده شود، خطوط به جلو پیمایش می‌شوند نه صفحات.
جستجوی مجدد با استفاده از همان رشته جستجو و جهت آخرین دستور جستجو.
جستجوی معکوس (به سمت عقب). یک رشته جستجو از کاربر دریافت کرده و با شروع از مکان‌نما به سمت ابتدای بافر جستجو می‌کند. در صورت یافتن، مکان‌نما روی اولین نویسه الگو (آخرین نویسه منطبق‌شده) قرار می‌گیرد.
جستجو به سمت جلو. یک رشته جستجو از کاربر دریافت کرده و از مکان‌نما به دنبال آن می‌گردد. در صورت یافتن، مکان‌نما به بلافاصله بعد از نویسه‌های منطبق منتقل می‌شود؛ در غیر این صورت پیامی چاپ می‌گردد.
درج یک نویسه.
تغییر وضعیت استفاده از دو فاصله یا یک فاصله برای انتهای جملات. دو فاصله حالت پیش‌فرض است. در حال حاضر تنها بر دستور fill-paragraph تأثیر می‌گذارد.
تنظیم جستجوی بدون حساسیت به حروف بزرگ و کوچک، به طوری که بزرگی و کوچکی حروف در جستجوهای عبارات باقاعده نادیده گرفته شود. این حالت پیش‌فرض است.
حفظ بزرگی و کوچکی حروف در رشته جایگزین‌شده. این حالت پیش‌فرض است.
افزودن حالت ارائه‌شده به فهرست حالت‌های پیش‌فرضی که در ایجاد بافرهای بعدی استفاده می‌شوند. حالت‌های درونی شامل fill و indent و notab و overwrite هستند.
درخواست شماره ستون پر کردن (fill column) از کاربر. توسط auto-fill-mode استفاده می‌شود.
تنظیم نشان در پنجره فعلی روی موقعیت فعلی مکان‌نما.
تنظیم رشته پیشوندی که توسط دستور prefix-region استفاده می‌شود.
تنظیم عرض تب برای بافر فعلی، یا مقدار پیش‌فرض برای بافرهای جدید در صورت فراخوانی با یک آرگومان پیشوندی یا از فایل راه‌اندازی.
اجرای دستور خارجی از مینی‌بافر. همراه با یک آرگومان جامع (universal argument)، خروجی دستور را در بافر فعلی درج می‌کند.
ارسال متن ناحیه به عنوان ورودی به دستور پوسته. همراه با یک آرگومان جامع، متن ناحیه را با خروجی دستور جایگزین می‌کند.
کوچک کردن پنجره فعلی به اندازه یک خط. پنجره زیرین بلافاصله برای جبران فضای خالی گسترش می‌یابد. اگر تنها یک پنجره وجود داشته باشد، این دستور هیچ اثری ندارد.
درج فاصله‌های کافی برای رسیدن به موقعیت ایستگاه تب (tab-stop) بعدی. به‌طور پیش‌فرض، ایستگاه‌های تب هر 8 نویسه قرار دارند.
تقسیم پنجره فعلی. پنجره‌ای با کمتر از 3 خط قابل تقسیم نیست.
شروع تعریف ماکروی صفحه‌کلید. تعریف ماکرو با فراخوانی end-kbd-macro خاتمه می‌یابد.
تعلیق mg و بازگشت به صفحه نمایش جایگزین، در صورت استفاده.
درخواست نام بافر و رفتن به بافر جدید در پنجره فعلی.
رفتن به بافر در پنجره‌ای دیگر.
تغییر وضعیت پرچم فقط‌خواندنی در بافر فعلی.
تغییر وضعیت پرچم فقط‌خواندنی در تمامی بافرهای غیرزودگذر (non-ephemeral). یک تغییر وضعیت ساده که پرچم فقط‌خواندنی سراسری را روشن یا خاموش می‌کند.
جابه‌جایی دو نویسه روبه‌رو و زیر مکان‌نما، و سپس یک نویسه به سمت جلو حرکت می‌کند. با نویسه‌های خط جدید دقیقاً مانند سایر نویسه‌ها رفتار می‌شود.
جابه‌جایی بندهای مجاور. اگر چند تکرار درخواست شود، بند فعلی به تعداد n بند به سمت جلو جابه‌جا خواهد شد.
جابه‌جایی کلمات مجاور.
لغو (Undo) تازه‌ترین عملیات. اگر بدون دستور میانی مجدداً فراخوانی شود، اشاره‌گر واگرد را به عملیات قبلی منتقل کرده و آن را لغو می‌کند.
افزودن یک مرز واگرد (undo boundary). این کار معمولاً به صورت تعاملی انجام نمی‌شود.
تغییر وضعیت تولید مرزهای واگرد. مرزهای واگرد معمولاً قبل از عملیاتی که باید به صورت اتمیک قابل برگشت باشند غیرفعال می‌شوند.
تغییر وضعیت نگهداری اطلاعات واگرد.
نمایش رکوردهای واگرد بافر فعلی در یک بافر جدید.
تکرار دستور بعدی به تعداد 4 بار. معمولاً به C-u متصل است. این دستور می‌تواند انباشته شود؛ مثلاً ‎C-u C-u C-f مکان‌نما را 16 نویسه به جلو می‌برد.
بزرگ‌نویسی حروف ناحیه. تبدیل تمام نویسه‌های کوچک در ناحیه به حروف بزرگ.
حرکت مکان‌نما به سمت جلو به تعداد کلمات مشخص‌شده. همگام با حرکت، نویسه‌ها را به حروف بزرگ تبدیل می‌کند.
تغییر وضعیت زنگ تصویری. اگر این حالت فعال باشد، خط وضعیت چشمک می‌زند.
بارگذاری فایل برچسب‌ها برای استفاده در دستورات بعدی find-tag.
نمایش مجموعه‌ای از اطلاعات مفید درباره موقعیت فعلی مکان‌نما. نویسه زیر مکان‌نما (در مبنای هشت)، شماره خط، ردیف و ستون فعلی، و موقعیت تقریبی مکان‌نما در فایل (به درصد) نمایش داده می‌شود. موقعیت ستون یک صفحه نمایش بی‌نهایت را فرض می‌گیرد و صرفاً به دلیل محدودیت صفحه نمایش کوتاه نمی‌شود.
درخواست نام فایل و نوشتن محتویات بافر فعلی در آن فایل. نام فایل به‌خاطرسپرده‌شده به‌روزرسانی شده و پرچم تغییر بافر پاک می‌شود.
چسباندن (yank) متن از kill-buffer. برخلاف emacs، بافر حذف در mg تنها شامل آخرین مورد بریده‌شده است و یک حلقه نیست.
درخواست یک نویسه و حذف متن از موقعیت فعلی مکان‌نما تا نمونه بعدی آن نویسه، شامل خود آن.
مشابه zap-to-char ، اما نویسه هدف را حذف نمی‌کند.

کلیدهای میانبر خاصی در حالت dired در دسترس هستند.

DEL
dired-unmark-backward
RET, e, f and C-m
dired-find-file
SPC, n
dired-next-line
!
dired-shell-command
+
dired-create-directory
^
dired-up-directory
a
dired-find-alternate-file
c
dired-do-copy
d and C-d
dired-flag-file-deletion
g
dired-revert
j
dired-goto-file
o
dired-find-file-other-window
p
dired-previous-line
q
quit-window
r
dired-do-rename
u
dired-unmark
x
dired-do-flagged-delete
C-v
dired-scroll-down
M-v
dired-scroll-up

در زیر فهرستی از دستورات اختصاصی حالت dired آمده است:

ایجاد یک دایرکتوری.
کپی فایل فهرست‌شده در خط فعلی بافر dired.
حذف فایل‌هایی که برای حذف نشانه‌گذاری شده‌اند.
تغییر نام فایل فهرست‌شده در خط فعلی بافر dired.
جایگزین کردن بافر dired فعلی با یک بافر جایگزین، همان‌طور که با موقعیت مکان‌نما در بافر dired مشخص شده است.
باز کردن فایل واقع در خط فعلی بافر dired. اگر مکان‌نما روی یک دایرکتوری باشد، در حالت dired باز خواهد شد.
نشانه‌گذاری فایل فهرست‌شده در خط فعلی برای حذف. این وضعیت با قرار دادن یک D در حاشیه چپ بافر مشخص می‌شود. هیچ فایلی عملاً حذف نمی‌شود تا زمانی که تابع dired-do-flagged-delete اجرا شود.
باز کردن فایل خط فعلی بافر dired در پنجره‌ای متفاوت.
انتقال مکان‌نما به یک نام فایل در بافر dired.
انتقال مکان‌نما به خط بعدی.
این تابع دقیقاً مانند dired عمل می‌کند، با این تفاوت که بافر dired را در پنجره دیگری قرار می‌دهد.
انتقال مکان‌نما به خط قبلی.
تازه‌سازی بافر dired ضمن حفظ تمامی نشانه‌ها و پرچم‌ها.
پیمایش به سمت پایین در بافر dired.
پیمایش به سمت بالا در بافر dired.
هدایت (pipe) فایل زیر موقعیت فعلی مکان‌نما از طریق یک دستور پوسته.
حذف نشان حذف از روی فایل واقع در خط فعلی.
حذف نشان حذف از روی فایل فهرست‌شده در خط قبلی بافر dired و سپس رفتن به آن خط.
باز کردن یک بافر dired در دایرکتوری والد.
بستن بافر dired فعلی.

دو فایل پیکربندی وجود دارد: .mg و .mg-TERM. در این‌جا TERM بیانگر نام نوع ترمینال است؛ به عنوان مثال اگر نوع ترمینال روی “vt100” تنظیم شده باشد، mg از .mg-vt100 به عنوان فایل راه‌اندازی استفاده خواهد کرد. فایل راه‌اندازی ویژه نوع ترمینال ابتدا مورد استفاده قرار می‌گیرد.

قالب فایل راه‌اندازی به صورت فهرستی از دستورات است (یک دستور در هر خط)، همان‌طور که برای ارزیابی تعاملی استفاده می‌شود. رشته‌هایی که معمولاً توسط کاربر در اعلان‌های بعدی وارد می‌شوند را می‌توان پس از نام دستور مشخص کرد؛ به عنوان مثال:

global-set-key ")" self-insert-command
global-set-key "\^x\^f" find-file
global-set-key "\e[Z" backward-char
set-default-mode fill
set-fill-column 72
auto-execute *.c c-mode

می‌توان با قرار دادن ‘;’ یا ‘#’ به عنوان اولین نویسه یک خط، به فایل‌های راه‌اندازی توضیح (comment) اضافه کرد.

~/.mg
فایل راه‌اندازی عادی
~/.mg-TERM
فایل راه‌اندازی ویژه ترمینال
~/.mg.d
مکان جایگزین برای فایل‌های پشتیبان
/usr/share/doc/mg/tutorial
راهنمای آموزشی خلاصه

ctags(1), vi(1)

از آنجا که این برنامه کاملاً به زبان C نوشته شده است، در حال حاضر زبانی وجود ندارد که بتوان افزونه‌ها را با آن نوشت؛ با این حال، می‌توان کلیدها را دوباره متصل کرد و پارامترهای مشخصی را در فایل‌های راه‌اندازی تغییر داد.

برای استفاده از نویسه‌های ۸ بیتی (مانند اوملاوت آلمانی)، کلید Meta باید از طریق دستور meta-key-mode غیرفعال شود.

مجموعه‌های نویسه چندبایتی، مانند UTF-8، پشتیبانی نمی‌شوند.

July 10, 2024 Linux 6.12.111+deb13-amd64