
آموزش قدم به قدم نصب ویرایشگر Emacs در لینوکس
در این مقاله میخوانید
Emacs یکی از ابزارهای قدیمی ویرایشگر متن است که تقریباً همه کاری برایتان انجام میدهد. نسخه گنو این نرمافزار ابتدا در سال ۱۹۸۴ نوشته و بیشتر بهدلیل ویژگیهای قدرتمند ویرایشیاش شناخته شد. این نرمافزار قابلیت سفارشیسازی زیادی دارد و حتی میتوان از آن بهعنوان محیط توسعه یکپارچه (IDE) برای زبانهای برنامهنویسی مانند Java و C و پایتون استفاده کرد. همچنین، برای افرادی که تجربه کار با نرمافزارهای دیگر ویرایش متن مانند VI یا ویرایشگر محبوب Nano را دارند، Emacs حالتی بینابینی دارد. درواقع، از یک طرف بسیاری از ویژگیهای VI را دارد و از طرف دیگر، منوها و فایلهای راهنما و کلیدهای فرمان آن بسیار به Nano نزدیک است.
در این مطلب از بلاگ پارس پک، قصد داریم نحوه نصب ویرایشگر Emacs روی سرور با توزیع Ubuntu 22.04 را گامبهگام به شما آموزش دهیم؛ پس تا پایان با ما همراه باشید.
پیشنیازها
برای اینکه بتوانید مراحل این آموزش را بهطورکامل انجام دهید، به سروری با توزیع Ubuntu 22.04 نیاز دارید. همچنین، یک کاربر با دسترسی Sudo و یک فایروال فعال روی سرور باید قرار گرفته باشد.
گام اول: نصب Emacs
ابتدا بررسی کنید که آیا Emacs ازقبل روی سرور شما نصب شده است یا خیر. این کار را میتوانید با استفاده از دستور زیر انجام دهید:
emacs
اگر نرمافزار روی سرور شما نصب شده باشد، ویرایشگر با پیغام خوشامد شروع به کار خواهد کرد؛ درغیراینصورت، با پیغامی مشابه زیر روبهرو خواهید شد:
Output Command 'emacs' not found, but can be installed with: sudo apt install e3 # version 1:2.82+dfsg-2 sudo apt install emacs-gtk # version 1:27.1+1-3ubuntu5 sudo apt install emacs-lucid # version 1:27.1+1-3ubuntu5 sudo apt install emacs-nox # version 1:27.1+1-3ubuntu5 sudo apt install jove # version 4.17.3.6-2 See 'snap info emacs' for additional versions.
برای نصب Emacs، از دستور زیر استفاده کنید:
sudo apt install emacs
گام دوم: استفاده از رابط کاربری
با استفاده از دستور Emacs، استفاده از نرمافزار را شروع کنید:
emacs
در این صورت، Emacs با بافر خالی ویرایش شروع به کار خواهد کرد و منتظر خواهد ماند تا شروع به تایپکردن در محیط نرمافزار کنید. البته درصورتیکه ویرایشگر بدون فایل مشخصی باز شود، پیغام خوشامد برای شما بهنمایش درخواهد آمد:
شروع کار با ویرایشگر Emacs
برای شروع کار، نشانگر را با استفاده از کلید Tab روی لینک Visit New File ببرید و با فشردن Enter آن را انتخاب کنید. برای این منظور میتوانید از کلیدهای ترکیبی Ctrl+X و سپس Ctrl+F نیز استفاده کنید. در این صورت، پیغامی برای شما بهنمایش درمیآید که نام فایل جدید را درخواست میکند:
نام فایل جدید را وارد کنید
نام فایل را در این قسمت وارد کنید. برای نمونه، ما در اینجا میخواهیم فایلی با نام myfile.txt را ایجاد و سپس ویرایش کنیم. بعد از واردکردن نام، کلید Enter را فشار دهید:
ایجاد ویرایشگر با نام myfile.txt
همانطورکه در شکل بالا نیز مشاهده میکنید، در بالای این صفحه، منویی وجود دارد و در زیر آن، فضای بزرگی قرار گرفته است که از آن برای ویرایش یا مشاهده متن فایل استفاده میکنیم. به این فضا «بافر اصلی» گفته میشود.
لازم است بدانید که وقتی با استفاده از Emacs فایل موجود را ویرایش میکنید، ابتدا یک کپی از همان فایل در حافظه بارگذاری و بعدازآن در پنجره اصلی نشان داده میشود. به این قسمت از حافظه هم «بافر» میگوییم. هنگامیکه مشغول کار روی فایل هستید، تمامی تغییرات روی حافظه بافر اِعمال خواهد شد. بهعبارتدیگر، فایل اصلی بدون تغییر باقی خواهد ماند. بدینترتیب، تغییرات هنگامی روی فایل اصلی ذخیره خواهد شد که بهصورت دستی فایل را Save کنید. همین موضوع برای فایلهای جدید نیز صادق است؛ یعنی تمامی تغییرات تا زمانیکه فایل را بهصورت دستی Save نکنید، روی بافر اِعمال خواهد شد.
در قسمت پایینی پنجره نیز نواری را مشاهده میکنید. به این نوار، نوار وضعیت (Status Bar) یا Mode Line گفته میشود. متنی که در این قسمت برایتان بهنمایش درمیآید، بستگی به حالتی دارد که Emacs در آن قرار گرفته است. در این نوار، نکات زیر به شما نشان داده میشود:
- نام فایلی که در حال ویرایش آن هستید
- محل قرارگیری فایل
- حالت ویرایش
- وضعیت فایل
پایین نوار وضعیت، خط دیگری هم وجود دارد که به آن «مینی بافر» گفته میشود و صفحه با آن بهپایان میرسد. فراموش نکنید Emacs ابزاری است که براساس فرمان کار میکند و مینی بافر نیز همان نقطهای است که میتوانید با Emacs ارتباط برقرار کنید. شما میتوانید دستورهای خود را در مینی بافر وارد کنید و خروجی آن نیز در همین قسمت به شما نشان داده میشود.
نسخه مبتنیبر متن Emacs با نسخهای که از رابط گرافیکی استفاده میکند، یک تفاوت اساسی دارد. باتوجهبه محدودیتهای موجود در کنسول یا ترمینال، شما نمیتوانید در نسخه متنی پنجرههای متعددی داشته باشید. بنابراین، هنگامیکه پنجره جدیدی را باز میکنید، مثلاً در مواقعی که به فایلهای راهنما یا آموزشهای Emacs نیاز دارید، بافر به دو قسمت تقسیم میشود. در این حالت نیمه بالایی، بافر اصلی و نیمه پایینی، محتوای جید را نشان میدهد.
آموزش نصب ویرایشگر Vim در لینوکس و دستورات پرکاربرد آن را در مقاله زیر بخوانید.
۱. دسترسی به منوهای Emacs
هنگامیکه Emacs را راهاندازی میکنید، این ابزار بهطورکامل تمامی فضای اسکرین شما را اِشغال خواهد کرد و بسیاری از گزینههای کاربردی ازطریق منوهایی که در بالای صفحه قرار دارند، دراختیارتان خواهد بود. همچنین برخلاف نرمافزارهای مبتنیبر رابط کاربری گرافیکی، در Emacs نمیتوانید منوها را با کلیک ماوس باز یا هر منو را انتخاب کنید و بین گزینههایی که در زیر هر منو قرار گرفته است، جابهجا شوید.
برای دسترسی به منوها باید از کلید F10 استفاده کنید. با این کار، پنجره دیگری در زیر بافر اصلی باز خواهد شد که در آن، فهرستی از کلیدها برای دسترسی به آیتمهای هر منو نشان داده میشود. در این حالت، مینی بافر از شما میخواهد تا کلید موردنیاز خود را وارد کنید. هنگامیکه کلید را وارد کنید، محتویات پنجره نیز تغییر خواهد کرد و زیر منوها و احتمالاً گزینههای همان آیتم به شما نمایش داده خواهد شد.
برای خارجشدن از منوها نیز بدون توجه به اینکه در کدام سطح از زیرمنوها هستید، کافی است ۳ بار کلید ESC را فشار دهید تا پنجره منوها بسته شود و به بافر اصلی بازگردید. درادامه، برخی از گزینههای مهم موجود در منو Tools را فهرست کردهایم:
- Calendar: تقویم
- Simple Calculator: ماشینحساب ساده
- Programmable Calculator: ماشینحساب برنامهریزیشدنی
- Searching a Directory: جستوجوی پوشه
- Encrypting and Decrypting Document: رمزگذاری و رمزگشایی از فایلها
- Send and read E-Mail: ارسال و خواندن ایمیل
- Search using grep: جستوجو با استفاده از فرمان grep
- Spell Checking: بررسی املای متنها
- Running shell commands and compiling code: اجرای دستورهای Shell و کامپایل کد
- Version control: کنترل نسخه
- Compare and merge files: مقایسه و ادغام فایلها
- Games: بازیها
۲. دسترسی به راهنما و آموزشها
Emacs سیستم راهنمایی گستردهای دارد که آموزش استفاده از این ابزار نیز در این سیستم قرار داده شده است. بهمنظور دسترسی به این سیستم، ابتدا کلید F10 را برای بازکردن منوهای برنامه فشار دهید و سپس با استفاده از کلیدهای جهت، گزینه Help را انتخاب کنید. همچنین، از کلیدهای ترکیبی Ctrl+H برای پیداکردن منو میتوانید استفاده کنید و سپس گزینه مدنظرتان را برگزینید. گزینههایی که بعد از استفاده از این کلید ترکیبی دراختیارتان خواهد بود، عبارتاند از:
- t: ورود به قسمت آموزش Emacs
- Ctrl+F: مشاهده سؤالات متداول
- Ctrl+P: آشنایی با مشکلات و اِشکالات شناختهشده قبلی
- Ctrl+R: مطالعه کتابچه راهنمای Emacs
- Ctrl+E: یافتن پکیجهای اضافی
گام سوم: استفاده از کلیدهای دستوری
بعد از آشنایی با رابط کاربری Emacs، باید درباره کلیدهای دستوری این نرمافزار نیز اطلاعاتی کسب کنید. هنگامیکه فایلی را باز میکنید، میتوانید همزمان شروع به تایپ و دستورها را صادر کنید.
توابع دستوری معمولاً شامل دو یا سه کلید است. رایجترین کلید Ctrl است و بعدازآن Alt و ESC کلیدهای پرکاربرد هستند. معمولاً کلید Ctrl بهطورخلاصه با حرف C نشان داده میشود؛ بنابراین، اگر در جایی از راهنمای Emacs با عباراتی مثل C-x C-c مواجه شدید، بدینمعنی است که ابتدا از کلیدهای ترکیبی Ctrl+X و سپس از Ctrl+C استفاده کنید. بهطورمشابه، مفهوم C-h t هم این است که ابتدا کلید ترکیبی Ctrl+H و سپس کلید t را فشار دهید.
کلیدهای Alt و ESC در Emacs بهعنوان کلیدهای متا شناخته میشوند. همچنین، بهیاد بسپارید که اگر از دستگاههای ساخت شرکت Apple استفاده میکنید، باید بهجای Alt کلید Command را بهکار ببرید. مانند آنچه درباره کلید Ctrl گفتیم، Emacs از کلیدهای متا نیز بهصورت توابع چندکلیدی بهره میبرد. بهعنوان نمونه، M-x بهمعنی استفاده همزمان از کلیدهای Alt یا Option بههمراه کلید X است. همچنین، میتوانید از کلیدهای ترکیبی ESC+X برای اجرای همان دستور استفاده کنید.
این نکته را نیز فراموش نکنید که کلید Enter در Emacs معمولاً با RET و کلید ESC با E نشان داده میشود. از کلید ESC میتوان برای خارجشدن از دستور استفاده کرد. بهعنوان نمونه، با ۳ بار فشردن کلید ESC میتوانید از منوها و زیرمنوهایی که در آن قرار دارید، خارج شوید. همچنین، با Ctrl+G میتوانید عملیاتی را لغو کنید.
۱. ذخیرهسازی و خروج
هنگامیکه تغییراتی را روی فایلی ایجاد کردید، با استفاده از Ctrl+X و سپس Ctrl+S، میتوانید آن را ذخیره کنید. در این صورت، در قسمت مینی بافر پیام زیر به شما نشان داده خواهد شد:
Output Wrote /home/sammy/myfile.txt
همچنین با استفاده از Ctrl+X و Ctrl+C، میتوانید از Emacs خارج شوید. اگر قبل از استفاده از این کلیدهای دستوری فایل خود را ذخیره نکرده باشید، پیغام زیر برای شما بهنمایش درخواهد آمد:
Output Save file /home/sammy/myfile.txt? (y, n, !, ., q, C-r, C-f, d or C-h)
با فشردن کلید Y، تغییرات روی فایل ذخیره خواهد شد. درصورتیکه کلید N را فشار دهید، پیغام زیر را دریافت خواهید کرد:
Output Modified buffers exist; exit anyway? (yes or no)
حالا اگر Yes را انتخاب کنید، بدون اینکه تغییرات روی فایل ذخیره شود، از نرمافزار خارج خواهید شد.
۲. پیمایش روی متن
اگر متن شما طولانی باشد، پیمایش در آن با استفاده از ابزارهایی که تاکنون آموختهاید، کاری سخت خواهد بود. خوشبختانه Emacs راهحلهای مختلفی برای این منظور پیشبینی کرده است که در جدول زیر به آنها اشاره کردهایم:
عملکرد | کلید دستوری |
رفتن به خط بعدی | Ctrl+N |
رفتن به خط قبلی | Ctrl+P |
یک کاراکتر به جلو حرکتکردن | Ctrl+F |
یک کاراکتر به عقب حرکتکردن | Ctrl+B |
یک کلمه به جلو حرکتکردن | Meta+F |
یک کلمه به عقب حرکتکردن | Meta+B |
رفتن به ابتدای خط | Ctrl+A |
رفتن به انتهای خط | Ctrl+E |
رفتن به ابتدای جمله | Meta+A |
رفتن به انتهای جمله | Meta+E |
رفتن به صفحه پایینی | Ctrl+V |
رفتن به صفحه بالایی | Meta+V |
رفتن به ابتدای فایل | Meta+< |
رفتن به انتهای فایل | Meta+> |
مجدداً یادآوری میکنیم که منظور از Meta این است که میتوانید از هریک از کلیدهای Alt ،ESC ،Option یا EDIT استفاده کنید.
ویرایشگر متن Vim چیست و چه کاربردی دارد؟ ویژگیهای ادیتور Vim چیست؟ در مقاله زیر بخوانید.
گام چهارم: توابع کاربردی برای ویرایش
Emacs در انجام کارهای تخصصیتر مانند وقتیکه میخواهید قسمتی از متنی را هایلایت کنید، شما را ناامید نخواهد کرد و مانند همه نرمافزارهای رایج دیگر، این کارها را نیز برایتان انجام خواهد داد.
۱. نحوه علامتگذاری قسمتی از متن
برای علامتگذاری قسمتی از متن خود، مراحل زیر را طی کنید:
- با استفاده از روشهایی که قبلاً آموزش دادیم، مکاننمای خود را به ابتدای محلی ببرید که میخواهید آن را علامتگذاری کنید.
- از کلیدهای ترکیبی Ctrl+Spacebar یا [email protected] برای انتخاب محل شروع هایلایتشدن متن استفاده کنید. در این صورت، در مینی بافر پیغام Mark Activated درج خواهد شد.
- مکاننما را به محلی ببرید که میخواهید علامتگذاری تا همانجا ادامه پیدا کند.
- حالا میتوانید مشاهده کنید که متنهای انتخابشده بهصورت هایلایتشده درخواهند آمد.
برای اینکه هایلایت متن را بردارید، کلیدهای ترکیبی Ctrl+Spacebar یا [email protected] را ۲ بار فشار دهید. در این صورت، میتوانید پیغام Mark Deactivated را در مینی بافر مشاهده کنید.
۲. Cut و Copy و Paste کردن متن
مثل همه ویرایشگرهای متن، در Emacs نیز دستورهای Cut و Copy و Paste قرار داده شده است. برای این منظور میتوانید از دستورالعمل زیر استفاده کنید:
- برای کپیکردن متنی که انتخاب کردهاید، از کلیدهای ترکیبی Meta+W استفاده کنید.
- برای Cut کردن متن انتخابشده، Ctrl+W کاربردی است.
- برای Paste کردن متن Cut یا Copy شده نیز، میتوانید از Ctrl+Y استفاده کنید.
۳. Delete کردن متن
حذف متن در Emacs، با استفاده از کلیدهای Delete و Backspace انجام میشود؛ البته انتظار دیگری هم جز این نداریم! چند نکته زیر را برای حذف متن در این نرمافزار بهیاد بسپارید:
- برای حذف سریع یک کلمه، مکاننما را با استفاده از روشهای گفتهشده، به ابتدای کلمه ببرید و از ترکیب کلیدهای Meta+D استفاده کنید. برای حذف چند کلمه که درادامه هم درج شدهاند، نیز کلید Meta را نگه دارید و بهطورمتوالی از کلید D استفاده کنید. خواهید دید که کلمات یکییکی حذف خواهند شد.
- برای حذف کامل یک خط نیز، میتوانید مکاننما را در ابتدای محل دلخواه قرار دهید و از Ctrl+K استفاده کنید. در این صورت، متن از محل قرارگیری مکاننما تا انتهای خط حذف خواهد شد.
- برای حذف یک جمله نیز، میتوانید از Meta+K استفاده کنید. بااینحال، بهتر است بدانید که اگر بعد از نقطه دو فاصله قرار نداشته باشد، Emacs ممکن است یک خط یا بیشتر را بهطورکامل حذف کند.
۴. Undo و Redo
یکی دیگر از کارهای متداولی که در ویرایشگرهای متن انجام میشود، Undo و Redo است. درصورتیکه بخواهید آخرین عملیات انجامشده را لغو کنید، میتوانید از Ctrl+X و سپس کلید U یا اینکه از Ctrl+_ استفاده کنید. ذکر این نکته ضروری است باتوجهبه اینکه برای درج _ باید از Shift استفاده کنید، استفاده از دستور Undo با Ctrl+Shift+- انجام خواهد شد. برای اینکه بتوانید آخرین تغییر ایجادشده را مجدداً بازگردانی کنید، ابتدا Ctrl+G و سپس Ctrl+_ را فشار دهید.
برای آشنایی با انواع توزیعها، مزایا، کاربرد و نحوه نصب لینوکس مقاله زیر را بخوانید.
گام پنجم: ورود به Modeها
یکی از عوامل مهمی که باعث شده است تا Emacs بهطورگسترده در بین جامعه یونیکس استفاده شود، توانایی آن در فرض Modeهای مختلف است. Modeها در افزایش عملکرد Emacs کاربرد دارند. بهعنوان نمونه، براساس Mode انتخابی شما، Emacs میتواند بهعنوان ویرایشگر متن بهکار برده شود یا با انتخاب Mode دیگر، میتوان از این نرمافزار برای کارهای پیشرفتهتر مانند نوشتن کدهای پایتون یا C یا Java استفاده کرد. بهطورکلی، Emacs دو مود اصلی دارد: یکی Major و دیگری Minor. درادامه، درباره هریک از آنها بیشتر صحبت خواهیم کرد.
۱. واردشدن به مود Major
در مود Major، از Emacs میتوان بهعنوان محیط توسعه یکپارچه (IDE) برای زبانهای برنامهنویسی یا اسکریپتنویسی استفاده کرد. در این صورت، برنامه قابلیتهای تخصصی برنامهنویسی مانند استفاده از رنگ در کدها، تورفتگی، گزینههای مربوط به منو خاص زبان و ارتباط خودکار با دیباگرها و کامپایلرها را دراختیارتان قرار خواهد داد.
برای نشاندادن این موضوع، میخواهیم عبارت معروف !Hello World را در زبان پایتون بنویسیم. برای این منظور، با استفاده از ترمینال در دایرکتوری Root، دستورهای زیر را وارد کنید:
cd ~
emacs hello.py
Emacs پسوند فایل را شناسایی و در Mode پایتون شروع به کار خواهد کرد. حالا در بافر اصلی، کد پایتون زیر را قرار دهید:
print "hello world!\n"
درادامه، مشاهده خواهید کرد که کلمات کلیدی حالا با رنگهایی معنیدار نوشته میشوند و این یعنی Emacs توانسته است زبان پایتون و درنتیجه کلمات کلیدی آن را بهدرستی تشخیص دهد. همچنین، توجه کنید که خط بالای مینی بافر، حالتی را به شما نشان میدهد که در حال کارکردن در آن هستید. گزینه جدید پایتون نیز به فهرست منوها اضافه شده است که این موضوع را میتوانید در شکل زیر ببینید:
ورود به مود Major در ویرایشگر Emacs
بافر را با استفاده از Ctrl+X و سپس Ctrl+S ذخیره کنید. برای تغییر مود نیز، باید از کلیدهای ترکیبی Meta+X استفاده کنید. در این صورت، مینی بافر منتظر پاسخ شما خواهد بود و حالا میتوانید Mode دیگری را وارد کنید. از این مودها میتوانید استفاده کنید:
- c-mode
- python-mode
- java-mode
- html-mode
- perl-mode
- shell-script-mode
- text-mode
۲. واردشدن به مود Minor
درمقایسهبا مود Major، مود Minor میتواند ویژگیهای خاصتری دراختیار کاربر قرار دهد. همچنین، میتوان همزمان چندین Mode فرعی را فعال کرد که این موضوع نیز یکی وجوه تمایز با مود اصلی است.
مودهای Minor را میتوان مشابه با سوییچها در نظر گرفت؛ یعنی ممکن است بهطورپیشفرض فعال یا غیرفعال باشند. درصورتیکه یکی از مودهای Minor ازقبل فعال شده باشد، با فراخوانی غیرفعال میشود و البته عکس این حالت نیز صادق است.
یکی از نمونههای مود Minor، حالت تکمیل خودکار است. برای ورود به این حالت، از کلیدهای ترکیبی Meta+X در Emacs استفاده و بعدازآن، مود Auto-Fill را انتخاب کنید. فعالکردن این حالت سبب میشود که متن طولانی بعد از ۷۰ کاراکتر به خط بعدی برود.
چند نمونه دیگر از مودهای Minor و کاربرد آنها عبارتاند از:
- auto-save-mode: باعث میشود که محتویات بافر اصلی در بازههای زمانی مشخص بهصورت خودکار ذخیره شوند.
- line-number-mode: نمایش شماره خط جاری در نوار وضعیت
- linum-mode: نمایش اعداد خطوط در لبه سمت چپ پنجره
- column-number-mode: نشاندادن مکان فعلی مکاننما در نوار وضعیت
- overwrite-mode: عملکردی مشابه با کلید INS صفحه کلید دارد.
- menu-bar-mode: روشن یا خاموش کردن منو اصلی
برای آشنایی با ۴۰ دستور پرکاربرد لینوکس مقاله زیر را بخوانید.
جمعبندی
Emacs یکی از ویرایشگرهای متن قدیمی و محبوب در لینوکس است. این نرمافزار علاوهبر استفاده بهعنوان ویرایشگر ساده، بهعنوان IDE نیز بهکار برده میشود. در این مقاله از بلاگ پارس پک، نحوه نصب Emacs را توضیح دادیم و دستورها و ابزارهای مفید آن را معرفی کردیم. مطلب حاضر میتواند برای شروع کار با این نرمافزار کاملاً کاربردی باشد.
سؤالات متداول
۱. Emacs چیست؟
Emacs یکی از نرمافزارهای ویرایشگر متن محبوب در سیستمعامل لینوکس است.
۲. آیا نصب و استفاده از Emacs رایگان است؟
بله، Emacs یکی از پروژههای قدیمی منبعباز بهحساب میآید که نصب و استفاده از آن رایگان است و توسعه آن نیز همچنان ادامه دارد.
۳. چطور میتوان Emacs را نصب کرد؟
برای نصب Emacs، میتوانید از دستور $ sudo apt install emacs در ترمینال لینوکس استفاده کنید.
۴. Emacs چه مودهایی دارد؟
Emacs شامل دو مود اصلی Minor و Major است؛ البته مودهای دیگری نیز در زیرمجموعه این دو قرار دارند.