EMACS(1) GNU EMACS(1)

emacs - ویرایشگر ایمکس پروژه گنو

emacs [ سوییچ‌های خط فرمان ] [ فایل‌ها ... ]

GNU Emacs نسخه‌ای از Emacs است که توسط ریچارد استالمن (Richard Stallman)، نویسنده نسخه اصلی (PDP-10) Emacs، نوشته شده است. عملکرد کاربری GNU Emacs شامل تمام قابلیت‌های سایر ویرایشگرها بوده و به دلیل اینکه دستورات ویرایشی آن با زبان لیسپ (Lisp) نوشته شده‌اند، به‌سادگی قابل گسترش است.

مستندات اصلی GNU Emacs در «راهنمای گنو ایمکس» (GNU Emacs Manual) قرار دارد که می‌توانید آن را با استفاده از Info، چه از داخل Emacs و چه به صورت یک برنامه مستقل، مطالعه کنید. لطفاً برای مستندات کامل و به‌روز به آنجا مراجعه نمایید. این صفحه راهنما تنها زمانی به‌روزرسانی می‌شود که فردی داوطلب انجام این کار شود.

Emacs دارای سامانه راهنمای تعاملی گسترده‌ای است، اما این سامانه فرض می‌کند که شما با نحوه کار با پنجره‌ها و بافرهای Emacs آشنایی دارید. کلیدهای CTRL-h یا F1 شما را وارد بخش راهنما می‌کنند. آموزش مقدماتی (CTRL-h t) یک آموزش تعاملی را آغاز می‌کند تا اصول اولیه Emacs را به سرعت به مبتدیان بیاموزد. جستجوی راهنما (CTRL-h a) به شما کمک می‌کند دستوری را پیدا کنید که نام آن با یک الگوی مشخص مطابقت دارد؛ کلید راهنما (CTRL-h k) دنباله کلیدهای داده‌شده را شرح می‌دهد؛ و تابع راهنما (CTRL-h f) تابع لیسپ مشخص‌شده را توضیح می‌دهد.

بسته‌های اختصاصی پرشمار GNU Emacs امکاناتی نظیر خواندن نامه‌های الکترونیکی (RMail) و ارسال آن‌ها (Mail)، ویرایش طرح‌کلی (Outline)، کامپایل کد (Compile)، اجرای زیرپوسته‌ها در پنجره‌های Emacs (Shell)، اجرای حلقه خواندن-ارزیابی-چاپ لیسپ (Lisp-Interaction-Mode)، روان‌درمانی خودکار (Doctor) و بسیاری موارد دیگر را فراهم می‌کنند.

گزینه‌های زیر کاربرد عمومی دارند:

ویرایش file.
همانند مشخص کردن مستقیم file به عنوان یک آرگومان است.
+number
رفتن به سطر مشخص‌شده با number (بین علامت «+» و عدد فاصله نگذارید). این گزینه فقط روی فایل مشخص‌شده بعدی اعمال می‌شود.
+line:column
رفتن به سطر line و ستون column مشخص‌شده.
تغییر دایرکتوری جاری به directory.
عدم بارگذاری فایل راه‌انداز (init file).
عدم استفاده از حافظه اشتراکی.
عدم بارگذاری فایل راه‌انداز سراسری سیستم.
عدم افزودن دایرکتوری‌های site-lisp به مسیر بارگذاری load-path.
عدم بارگذاری محیط میزکار ذخیره‌شده.
مشابه ترکیبی از «-q --no-site-file --no-splash». همچنین از پردازش منابع سامانه X نیز صرف‌نظر می‌کند.
عدم نمایش صفحه آغازین (splash) هنگام شروع به کار.
فعال‌سازی اشکال‌زدای لیسپ Emacs هنگام پردازش فایل راه‌انداز کاربر ~/.emacs. این گزینه برای عیب‌یابی مشکلات موجود در فایل راه‌انداز سودمند است.
بارگذاری فایل راه‌انداز متعلق به user به‌جای فایل خودتان.
راه‌اندازی ایمکس با تنظیم user-emacs-directory روی directory.
استفاده از file مشخص‌شده به عنوان ترمینال به‌جای stdin/stdout. این گزینه باید نخستین آرگومان مشخص‌شده در خط فرمان باشد.
راه‌اندازی Emacs به عنوان دیمن (daemon)، که سرور Emacs را فعال کرده و اتصال را از ترمینال قطع می‌کند. سپس می‌توانید از دستور emacsclient (ببینید emacsclient(1)) برای اتصال به سرور (با نام اختیاری name) استفاده کنید.
--fg-daemon[=name]
مشابه «--bg-daemon»، اما اتصال را از ترمینال قطع نمی‌کند.
نمایش اطلاعات نسخه Emacs و خروج.
نمایش راهنما و خروج.

گزینه‌های زیر مربوط به زبان لیسپ (Lisp) هستند (این گزینه‌ها به ترتیب مواجهه پردازش می‌شوند):

اجرای تابع لیسپ function.
بارگذاری کدهای لیسپ موجود در فایل file.
ارزیابی عبارت لیسپ expr.

گزینه‌های زیر هنگام اجرای Emacs به عنوان یک ویرایشگر دسته‌ای (batch mode) کاربرد دارند:

ویرایش در حالت دسته‌ای. ویرایشگر پیام‌ها را به خروجی خطای استاندارد (stderr) ارسال می‌کند. برای مشخص کردن فایل‌هایی که باید اجرا شوند و توابعی که باید فراخوانی گردند، باید از گزینه‌های -l و -f استفاده کنید.
اجرای file به عنوان یک اسکریپت Emacs Lisp.
درج محتویات file در بافر جاری.
خروج از Emacs هنگامی که در حالت دسته‌ای قرار دارد.
افزودن dir به فهرست دایرکتوری‌هایی که Emacs در آن‌ها به دنبال فایل‌های لیسپ می‌گردد.

Emacs برای کارکرد بهینه با سامانه پنجره X (سامانه X Window) هماهنگ شده است. اگر Emacs را از محیط X اجرا کنید، پنجره اختصاصی خود را در X برای نمایش باز می‌کند. احتمالاً مایل خواهید بود که ویرایشگر را به عنوان یک فرایند پس‌زمینه اجرا کنید تا بتوانید همچنان از پنجره اولیه خود استفاده کنید.

Emacs می‌تواند با سوییچ‌های X زیر آغاز به کار کند:

تعیین نامی که باید به پنجره اولیه Emacs اختصاص یابد. این گزینه هم جستجوی منابع X و هم عنوان پنجره را کنترل می‌کند.
عدم بارگذاری منابع سامانه X.
تعیین عنوان برای پنجره اولیه X.
نمایش پنجره Emacs در حالت تصویر معکوس (reverse video).
تنظیم قلم پنجره Emacs روی قلم مشخص‌شده با font. قلم‌های مختلف X را در دایرکتوری /usr/lib/X11/fonts خواهید یافت. توجه داشته باشید که Emacs تنها قلم‌های با عرض ثابت (fixed width) را می‌پذیرد. طبق قراردادهای نام‌گذاری قلم در X11 Release 4، هر قلمی که در فیلد یازدهم نام آن مقدار "m" یا "c" باشد، یک فونت با عرض ثابت است. علاوه بر این، قلم‌هایی که نام آن‌ها به شکل widthxheight است نیز معمولاً عرض ثابت دارند، همانند قلم fixed. برای اطلاعات بیشتر xlsfonts(1) را ببینید.

هنگام مشخص کردن قلم، اطمینان حاصل کنید که بین سوییچ و نام قلم یک فاصله قرار داده‌اید.

تنظیم منابع X اضافی.
تغییر حالت رنگ برای ترمینال‌های متنی؛ mode به‌طور پیش‌فرض "auto" است و همچنین می‌تواند "never"، "auto"، "always" یا نام یک حالت مانند "ansi8" باشد.
تنظیم ضخامت حاشیه پنجره Emacs بر حسب تعداد پیکسل‌های مشخص‌شده با pixels. به‌طور پیش‌فرض یک پیکسل در هر طرف پنجره است.
تنظیم ضخامت حاشیه داخلی پنجره بر حسب تعداد پیکسل‌های مشخص‌شده با pixels. به‌طور پیش‌فرض یک پیکسل فاصله داخلی در هر طرف پنجره است.
تنظیم عرض، ارتفاع و موقعیت مکانی پنجره Emacs طبق مشخصات ارائه‌شده. مشخصات هندسه در قالب استاندارد X است؛ برای اطلاعات بیشتر X(7) را ببینید. عرض و ارتفاع بر حسب کاراکتر مشخص می‌شوند؛ مقدار پیش‌فرض برای فریم‌های گرافیکی عرض ۸۰ و ارتفاع بین ۳۵ تا ۴۰ است که به سیستم‌عامل و مدیر پنجره بستگی دارد. برای اطلاعات بیشتر درباره چگونگی تعامل اندازه پنجره با فعال یا غیرفعال کردن نوار ابزار، نوار تب و نوار منو، بخش «Options for Window Size and Position» را در راهنمای Emacs ببینید.
فاصله اضافی بین سطرها بر حسب پیکسل.
فعال‌سازی نوارهای پیمایش عمودی.
تنظیم ارتفاع فریم اول به اندازه ارتفاع کامل صفحه نمایش.
تمام‌صفحه کردن فریم اول.
تنظیم عرض فریم اول به اندازه پهنای کامل صفحه نمایش.
بیشینه‌سازی فریم اول، مانند «-fw -fh».
در نمایشگرهای رنگی، تنظیم رنگ متن.

از دستور M-x list-colors-display برای مشاهده فهرستی از نام‌های رنگ مجاز استفاده کنید.

در نمایشگرهای رنگی، تنظیم رنگ پس‌زمینه پنجره.
در نمایشگرهای رنگی، تنظیم رنگ حاشیه پنجره.
در نمایشگرهای رنگی، تنظیم رنگ مکان‌نمای متن پنجره.
در نمایشگرهای رنگی، تنظیم رنگ نشانگر ماوس در پنجره.
ایجاد پنجره Emacs روی نمایشگر تعیین‌شده با displayname. این باید نخستین گزینه مشخص‌شده در خط فرمان باشد.
عدم استفاده از تصویر gnu برای آیکون Emacs.
راه‌اندازی Emacs در حالت کوچک‌شده (آیکون).
غیرفعال‌سازی چشمک‌زدن مکان‌نما.
تنظیم پنجره والد.
دستور به Emacs برای عدم ایجاد فریم گرافیکی. اگر این سوییچ را هنگام فراخوانی Emacs از داخل یک پنجره xterm(1) به کار ببرید، نمایش در همان پنجره انجام می‌شود.
این گزینه بسیاری از ویژگی‌های نمایش را غیرفعال می‌کند؛ از آن برای عیب‌یابی Emacs استفاده نمایید.

شما می‌توانید مقادیر پیش‌فرض X را برای پنجره‌های Emacs در فایل .Xresources خود تعیین کنید (ببینید xrdb(1)). از قالب زیر استفاده کنید:

emacs.keyword:value

که در آن value مقدار پیش‌فرض keyword را تعیین می‌کند. Emacs به شما امکان می‌دهد مقادیر پیش‌فرض را برای کلیدواژه‌های زیر تنظیم کنید:

در نمایشگرهای رنگی، رنگ پس‌زمینه پنجره را تعیین می‌کند.
اگر مقدار bitmapIcon روی on تنظیم شده باشد، پنجره به شکل آیکون نمادین کوچک می‌شود.
در نمایشگرهای رنگی، رنگ حاشیه پنجره را تعیین می‌کند.
ضخامت حاشیه پنجره را بر حسب پیکسل تعیین می‌کند.
در نمایشگرهای رنگی، رنگ مکان‌نمای متنی پنجره را تعیین می‌کند.
تعیین می‌کند که آیا مکان‌نما چشمک بزند یا خیر. مقدار پیش‌فرض on است. از off یا false برای غیرفعال کردن چشمک‌زدن مکان‌نما استفاده کنید.
قلم متنی پنجره را تنظیم می‌کند.
در نمایشگرهای رنگی، رنگ متن پنجره را مشخص می‌کند.
اندازه تمام‌صفحه مورد نظر. مقدار می‌تواند یکی از fullboth، maximized، fullwidth یا fullheight باشد که به ترتیب با گزینه‌های خط فرمان «-fs»، «-mm»، «-fw» و «-fh» مطابقت دارند. توجه داشته باشید که این مقدار تنها روی فریم اولیه اعمال می‌شود.
هندسه پنجره Emacs را تنظیم می‌کند (همان‌طور که در بالا توضیح داده شد).
نام آیکون پنجره Emacs را تعیین می‌کند.
ضخامت حاشیه داخلی پنجره را بر حسب پیکسل تنظیم می‌کند.
فاصله اضافی بین سطرها بر حسب پیکسل.
اگر on باشد، به فریم‌ها نوار منو اختصاص می‌دهد؛ اگر off باشد فاقد نوار منو خواهند بود. برای آگاهی از نحوه کنترل ظاهر نوار منو، بخش‌های «Lucid Resources» و «Motif Resources» را در راهنمای Emacs ببینید.
اگر روی none تنظیم شود، مینی‌بافر درون این فریم ایجاد نمی‌شود؛ بلکه از یک فریم مجزا برای مینی‌بافر استفاده خواهد کرد.
نام قلم برای عناوین پنل منو در نسخه‌های بدون تول‌کیت از Emacs.
در نمایشگرهای رنگی، رنگ نشانگر ماوس را تنظیم می‌کند.
اگر on باشد، از یک نقشه رنگی اختصاصی استفاده می‌کند، در صورتی که کلاس پیش‌فرض بصری PseudoColor بوده و Emacs از آن استفاده کند.
اگر مقدار reverseVideo روی on تنظیم شده باشد، پنجره در حالت تصویر معکوس نمایش داده می‌شود.
تصحیح گامای رنگ‌ها، معادل پارامتر فریم "screen-gamma".
عرض نوار پیمایش بر حسب پیکسل، معادل پارامتر فریم "scroll-bar-width".
نام قلم برای گزینه‌های منوی بازشو در نسخه‌های بدون تول‌کیت از Emacs. (برای نسخه‌های دارای تول‌کیت، بخش‌های «Lucid Resources» و «Motif Resources» را در راهنمای Emacs ببینید.)
مدت زمان انتظار بر حسب میلی‌ثانیه برای دریافت پاسخ انتخاب. مقدار 0 به معنای انتظار تا هر زمان لازم است.
اگر on باشد، Emacs در حالت همگام (synchronous) اجرا می‌شود. حالت همگام برای اشکال‌زدایی مشکلات سامانه X بسیار سودمند است.
عنوان پنجره Emacs را تنظیم می‌کند.
تعداد سطرهای رزرو شده برای نوار ابزار.
تعداد سطرهای رزرو شده برای نوار تب‌ها.
در صورت تنظیم روی false یا off، استفاده از روش‌های ورودی X (XIM) را غیرفعال می‌کند.
اگر on باشد به فریم‌ها نوار پیمایش اختصاص می‌دهد؛ اگر off باشد نوارهای پیمایش را پنهان می‌کند.
کلاس بصری (visual) مورد استفاده سامانه X را مشخص می‌کند. این مورد به X می‌گوید که چگونه رنگ‌ها را مدیریت کند. مقدار باید با یکی از موارد TrueColor، PseudoColor، DirectColor، StaticColor، GrayScale و StaticGray شروع شود و به دنبال آن -depth, بیاید که در آن depth تعداد صفحه‌های رنگی است.

شما می‌توانید نسخه‌های چاپی «راهنمای گنو ایمکس» (GNU Emacs Manual) را از بنیاد نرم‌افزار آزاد که توسعه‌دهنده نرم‌افزارهای گنو است سفارش دهید. فروشگاه برخط را در نشانی https://shop.fsf.org مشاهده کنید.
ممکن است مدیر سیستم محلی شما نیز نسخه‌هایی از آن را در دسترس داشته باشد. همانند تمام نرم‌افزارها و انتشارات بنیاد نرم‌افزار آزاد، همگان مجاز به تهیه و توزیع نسخه‌های راهنمای Emacs هستند. کد منبع Texinfo این دفترچه راهنما نیز در توزیع منبع Emacs گنجانده شده است.

/usr/local/share/info — فایل‌های مرورگر مستندات Info. متن کامل راهنمای مرجع Emacs در یک ساختار درختی مناسب گنجانده شده است. این شامل «راهنمای مرجع لیسپ ایمکس» (Emacs Lisp Reference Manual)، مناسب برای علاقه‌مندان به برنامه‌نویسی با زبان الحاقی Emacs Lisp، و «مقدمه‌ای بر برنامه‌نویسی در Emacs Lisp» می‌شود.

/usr/local/share/emacs/$VERSION/lisp — فایل‌های منبع لیسپ و فایل‌های کامپایل‌شده‌ای که بیشتر دستورات ویرایشی را تعریف می‌کنند. برخی از قبل بارگذاری شده‌اند؛ بقیه در صورت نیاز به صورت خودکار از این دایرکتوری بارگذاری می‌شوند.

/usr/local/libexec/emacs/$VERSION/$ARCH — برنامه‌های گوناگونی که همراه با GNU Emacs استفاده می‌شوند.

/usr/local/share/emacs/$VERSION/etc — فایل‌های گوناگون حاوی اطلاعات.

/usr/local/share/emacs/$VERSION/etc/DOC.* — شامل رشته‌های مستندات مربوط به توابع اولیه (primitives) لیسپ و توابع از پیش بارگذاری‌شده لیسپ در GNU Emacs است. آن‌ها در اینجا ذخیره می‌شوند تا از حجم فایل اصلی Emacs کاسته شود.

یک لیست پستی به نشانی bug-gnu-emacs@gnu.org برای گزارش باگ‌ها و اصلاحات Emacs وجود دارد. اما پیش از گزارش هر موردی به عنوان باگ، لطفاً اطمینان حاصل کنید که واقعاً یک اشکال است، نه یک سوءتفاهم یا یک ویژگی عمدی نرم‌افزار. ما از شما می‌خواهیم بخش «Reporting Bugs» در راهنمای Emacs را برای دریافت نکاتی درباره چگونگی و زمان گزارش اشکالات مطالعه کنید. همچنین، شماره نسخه Emacs در حال اجرا را در تمام گزارش‌های ارسالی درج نمایید. معمولاً اشکالاتی که بتوان آن‌ها را مجزا و تفکیک کرد برطرف می‌شوند؛ بنابراین به نفع شماست که آن‌ها را به‌گونه‌ای گزارش دهید که به‌راحتی قابل بازتولید باشند.

انتظار پاسخ شخصی به گزارش اشکال را نداشته باشید. هدف از گزارش باگ‌ها رفع آن‌ها برای همگان در نسخه بعدی است. برای دریافت راهنمایی و پشتیبانی شخصی، دایرکتوری خدمات را در نشانی https://www.fsf.org/resources/service برای مشاهده فهرست افرادی که این خدمات را ارائه می‌دهند بررسی کنید.

لطفاً به جز گزارش باگ‌ها، پیام دیگری به این لیست پستی ارسال نکنید. برای مشاهده سایر لیست‌های پستی Emacs، نشانی https://savannah.gnu.org/mail/?group=emacs را ببینید.

Emacs آزاد است؛ هر فردی می‌تواند نسخه‌هایی از Emacs را تحت شرایط ذکرشده در مجوز عمومی همگانی گنو (GNU GPL) به هر فرد دیگری بازتوزیع کند. نسخه‌ای از این مجوز همراه با هر نسخه از Emacs ارائه شده و در راهنمای مرجع نیز آمده است.

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

ریچارد استالمن شما را تشویق می‌کند که Emacs را بهبود بخشیده و گسترش دهید، و تأکید دارد که افزوده‌های خود را به کتابخانه گنو اهدا کنید. در نهایت پروژه گنو (GNU: مخفف Gnu's Not Unix) یک جایگزین کامل برای یونیکس خواهد بود. همگان در استفاده، کپی، مطالعه و تغییر سیستم گنو آزاد خواهند بود.

emacsclient(1), etags(1), X(7), xlsfonts(1), xterm(1), xrdb(1)

Emacs توسط ریچارد استالمن و بنیاد نرم‌افزار آزاد (Free Software Foundation) نوشته شده است. برای مشاهده جزئیات دست‌اندرکاران و قدردانی‌ها، راهنمای GNU Emacs را ببینید.

حق نشر 1995–2026 متعلق به بنیاد نرم‌افزارهای آزاد (Free Software Foundation, Inc) است.

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

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

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

هیچ‌گونه ضمانتی (NO WARRANTY) تا میزانی که قانون اجازه دهد وجود ندارد.

2024-07-18 GNU Emacs 31.1