نحوه استفاده از ویرایشگر Emacs در سرور لینوکس چگونه است و به چه صورت میتوان آن را در سرور ابری رایگان نصب و راه اندازی کرد؟
Emacs یکی از قدیمیترین ویرایشگرهای متن باز است که برای سیستم عامل لینوکس و دیگر سیستمهای مبتنی بر یونیکس موجود است.
در اصل، نسخه GNU Emacs در سال ۱۹۸۴ نوشته شد و به دلیل ویژگیهای ویرایشی قدرتمند و غنی خود مشهور است.
این ویرایشگر قابلیتهای بسیاری از جمله ویرایش متن، کدنویسی، مدیریت فایلها، اجرای دستورات و … دارد.
از جمله این قابلیتها میتوان به پشتیبانی از زبانهای برنامهنویسی مختلف، پشتیبانی از ویرایش فایلهای بزرگ، پشتیبانی از انواع فرمتهای فایل و بسیاری از ویژگیهای دیگر اشاره کرد.
ویرایشگر Emacs را میتوان با حالتهای مختلف سفارشی و گسترش داد و مانند یک محیط توسعه یکپارچه (IDE) برای زبانهای برنامه نویسی مانند Java ،C و Python استفاده کرد.
همچنین، برای افرادی که تجربه کار با ویرایشگرهای متن Vi و یا ویرایشگر محبوب Nano را دارند، Emacs یک میانبر برای آنها تلقی میشود.
درواقع، نقاط قوت و ویژگیهای آن شبیه به Vi است و از طرف دیگر، منوها و فایلهای راهنما و کلیدهای فرمان آن به Nano نزدیک است و با آن مقایسه میشوند.
در این مقاله، نحوه نصب Emacs بر روی سرور لینوکسی با توزیع اوبونتو و استفاده از آن برای ویرایش متن پایه را خواهید آموخت.
پیش نیازها
برای دنبال کردن این آموزش، به یک سرور ابری با سیستم عامل اوبونتو نیاز دارید که با یک کاربر non-root با امتیازات 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 را فشار دهید.
یک فایل خالی برای وارد کردن متن آماده خواهد شد.
همانطور که در تصویر بالا مشاهده میکنید، در بالای صفحه یک منو وجود دارد. بعد از منو، فضای ویرایش بزرگی قرار گرفته است که به این فضا بافر اصلی گفته میشود، در این قسمت میتوانید متن خود را تایپ کنید یا محتویات یک فایل را مشاهده نمایید.
این ویرایشگر، هنگامی که فایل موجود روی دیسک را ویرایش میکند، ابتدا یک کپی از آن سند در حافظه بارگذاری و سپس در پنجره اصلی ویرایش نمایش داده میشود. این بخش در حافظه، بافر نامیده میشود.
زمانی که مشغول کار روی یک سند میباشید، تمام تغییراتی که در فضای ویرایش ایجاد میکنید، روی بافر اعمال میشود، درحالی که فایل اصلی روی دیسک بدون تغییر باقی میماند.
بیشتر بدانید : SELinux چیست
بدینترتیب، تغییرات هنگامی روی فایل اصلی ذخیره خواهد شد که بهصورت دستی فایل را ذخیره کنید. همین موضوع برای فایلهای جدید نیز صادق است.
یعنی تمامی تغییرات تا زمانیکه فایل را بهصورت دستی ذخیره نکنید، روی بافر اعمال خواهد شد. فضای اصلی ویرایش در Emacs، دید شما به بافر است.
پس از بافر اصلی، یک نوار متن برجسته در نزدیکی پایین صفحه نمایش داده میشود. به این نوار، نوار وضعیت (Status Bar) یا Mode Line گفته میشود.
متنی که در این قسمت برای شما بهنمایش درمیآید، بستگی به حالتی دارد که Emacs در آن قرار گرفته است. در این نوار، نکات زیر به شما نشان داده میشود.
- نام فایل فعلی
- مکان ذخیره فایل فعلی
- حالت ویرایش فعلی
- وضعیت فایل (– برای یک فایل اصلاح نشده، ** برای یک فایل با تغییرات ذخیره نشده و %% برای فایلهای فقط خواندنی)
در نهایت پس از نوار وضعیت که صفحه نمایش به پایان میرسد، یک خط فضا وجود دارد. در این مثال، متن “(New File)” نمایش داده میشود. این ناحیه بافر کوچک نامیده میشود.
Emacs یک ابزار مبتنی بر دستور است و مینی بافر نقطه اصلی تعامل شما میباشد. شما میتوانید دستورهای خود را در مینی بافر وارد کنید و خروجی آن نیز در همین قسمت به شما نشان داده میشود.
نسخه مبتنی بر متن Emacs با نسخهای که از رابط گرافیکی GUI استفاده میکند، یک تفاوت اساسی دارد. باتوجه به محدودیتهای موجود در ترمینال، شما نمیتوانید در نسخه متنی پنجرههای متعددی داشته باشید.
بنابراین، هنگامیکه پنجره جدیدی را باز میکنید، مثلاً در مواقعی که به فایلهای راهنما یا آموزشهای Emacs نیاز دارید، بافر به دو قسمت تقسیم میشود. در این حالت نیمه بالایی، بافر اصلی و نیمه پایینی، محتوای جدید را نشان میدهد.
نمونهای از ایجاد یک پنجره جدید توسط Emacs زمانی است که شما به فایلهای کمکی یا آموزشهای آن دسترسی دارید.
دسترسی به منوها
هنگامی که Emacs راه اندازی میشود، معمولاً کل صفحه را اشغال میکند. بسیاری از عملکردهای آن از طریق نوار منو واقع در بالای صفحه قابل دسترسی هستند.
برخلاف برنامههای مبتنی بر GUI، در Emacs منوهای مبتنی بر متن را نمیتوان با یک کلیک ماوس باز کرد. در واقع، نمیتوانید با یک کلید میانبر منوها را هایلایت کرده و اسکرول کنید.
برای دسترسی به منوها، کلید F10 را فشار دهید. با این کار پنجره دیگری در زیر بافر اصلی باز می شود و فهرستی از کلیدها برای دسترسی به آیتمهای منو نمایش داده میشود.
در این حالت، بافر کوچک از شما می خواهد که کلید مورد نیاز را وارد کنید. هنگامی که آن کلید را فشار دهید، محتویات پنجره جدید تغییر میکند و سطح بعدی گزینهها را نمایش داده خواهد شد.
برای خروج از منوها بدون توجه به اینکه در کدام سطح از زیرمنوها هستید، کافیست کلید ESC را سه بار فشار دهید. این کار، پنجره منو را بسته و شما را به بافر اصلی بازمیگرداند.
منوی ابزارها
در ادامه مطلب نحوه استفاده از ویرایشگر Emacs در سرور لینوکس، برخی از گزینههای موجود از منوی ابزارها را مشاهده میکنید.
- اجرای دستورهای Shell و کامپایل کد (Running shell commands and compiling code)
- رمزگذاری و رمزگشایی از فایلها (Encrypting and decrypting document)
- جستوجو با استفاده از فرمان grep (Search files using grep)
- ماشینحساب برنامهریزیشدنی (Programmable calculator)
- مقایسه و ادغام فایلها (Compare and merge files)
- ماشینحساب ساده (Simple calculator)
- جستوجوی پوشه (Searching a directory)
- ارسال و خواندن ایمیل (Send and read e-mails)
- بررسی املای متنها (Spell checking)
- کنترل نسخه (Version control)
- تقویم (Calendar)
- بازیها (Games)
دسترسی به راهنما و آموزش
Emacs دارای یک سیستم کمکی گسترده همراه با آموزش است که استفاده از این ابزار نیز در این سیستم قرار داده شده است.
برای دسترسی به این سیستم، ابتدا کلید F10 را برای بازکردن منوهای برنامه فشار دهید و سپس کلیدهای جهتنمای راست یا چپ را فشار دهید تا Help را انتخاب کنید. همچنین برای پیداکردن منو میتوانید CTRL+H و سپس کلید مربوطه را فشار دهید.
برای مثال، میتوانید پس از فشار دادن CTRL+H یکی از کلیدهای زیر را برای بررسی سؤالات متداول، آموزشها، اخبار و موضوعات دیگر وارد کنید:
- t : برای ورود به آموزش Emacs
- CTRL+F : برای پرسش متداول
- CTRL+P : برای آگاهی با اشکالات و مشکلات شناخته شده
- CTRL+R : برای خواندن کتابچه راهنمای Emacs
- CTRL+E : برای یافتن بستههای اضافی
استفاده از کلیدهای دستوری
اکنون که با رابط کاربری آشنا شدید، لازم است درباره کلیدهای دستوری این نرمافزار نیز اطلاعاتی کسب نمایید و با آن آشنا شوید.
هنگامی که فایلی را باز میکنید، میتوانید همزمان شروع به تایپ و صدور دستورات کنید.
توابع دستوری معمولا شامل دو یا سه کلید هستند. رایجترین کلید CTRL و پس از آن کلید ALT یا ESC است. CTRL در محیط Emacs به صورت کوتاه به شکل “C” نشان داده میشود.
یادداشتهایی در Emacs مانند C-x C-c به این معنی است که کلیدهای CTRL+X را با هم فشار دهید، سپس CTRL+C را فشار دهید.
به طور مشابه، C-h t، به این معنی است که CTRL+H را با هم فشار دهید، سپس هر دو کلید را رها کنید و t را فشار دهید.
کلیدهای ALT و ESC در Emacs به عنوان کلیدهای متا شناخته میشوند. در دستگاههای اپل به جای ALT، از کلید OPTION استفاده کنید.
بیشتر بدانید : نصب و استفاده از ویرایشگر Vim در لینوکس سرور
کیبوردهای دیگر از کلید EDIT استفاده میکنند. همانند کلید CTRL ،Emacs از توابع چند کلیدی با کلید متا استفاده میکند.
به عنوان مثال، یک نماد مانند M – x به این معنی است که شما ALT یا OPAGE و x را با هم فشار می دهید. به همین ترتیب، می توانید از ESC ⁇ X برای انجام همین دستور استفاده کنید.
مانند آنچه درباره کلید Ctrl گفته شد، Emacs از کلیدهای متا نیز بهصورت توابع چند کلیدی استفاده میکند.
به عنوان مثال، M-x بهمعنی استفاده همزمان از کلیدهای Alt یا Option بههمراه کلید X است. همچنین، میتوانید از کلیدهای ترکیبی ESC+X برای اجرای همان دستور استفاده کنید.
نمادی مانند 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)
پیمایش متن
پیمایش در یک فایل طولانی یا موضوع با استفاده از ابزارهایی که تاکنون آموختهاید، ممکن است یک کار خسته کننده باشد. در ویرایشگر Emacs راههای مختلفی برای پیمایش یک فایل وجود دارد، در ادامه مطلب نحوه استفاده از ویرایشگر 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، OP و یا EDIT استفاده کنید.
ویرایش توابع
اگر نیاز به انجام کارهای تخصصیتری مانند انتخاب یا هایلایت کردن بخش خاصی از یک فایل متنی دارید، میتوانید این کار را در ویرایشگر Emacs انجام دهید.
علامتگذاری قسمتی از متن
در ادامه مطلب نحوه استفاده از ویرایشگر Emacs در سرور لینوکس، برای علامت گذاری یک قسمتی از متن مراحل زیر را دنبال کنید.
- مکان نما را به موقعیتی که میخواهید انتخاب شروع شود، حرکت دهید. برای حرکت مکان نما میتوانید از روشهایی که قبلا توضیح داده شد استفاده کنید.
- از کلیدهای CTRL+SPACEBAR یا @+CTRL را فشار دهید تا یک علامت برای شروع هایلایت کردن متن خود تنظیم کنید. در این صورت، در مینی بافر پیام Mark Activated را نشان میدهد.
- با استفاده از هر یک از کلیدهای ترکیبی که قبلا توضیح داده شد. مکان نما را به موقعیتی که میخواهید علامتگذاری به پایان برسد، حرکت دهید.
- متن تا جایی هایلایت خواهد شد که مکان نما اکنون در آن قرار دارد.
- کلیدهای ترکیبی Ctrl+Spacebar یا Ctrl+@ را ۲ بار فشار دهید تا برای اینکه هایلایت متن را بردارید،
- در این صورت، میتوانید پیغام Mark Deactivated را در مینی بافر مشاهده کنید.
- کلیدهای Ctrl+Spacebar یا @+Ctrl را دو بار فشار دهید تا هایلایت متن برداشته شود. در این صورت، میتوانید پیغام Mark Deactivated را در مینی بافر مشاهده کنید.
همچنین، می توانید کلید SHIFT را نگه دارید و مکان نمای خود را با کلیدهای UP یا Down فلش روی کیبورد حرکت دهید تا انتخاب خود را انجام دهید.
بیشتر بدانید : فعال سازی رندرینگ سمت سرور برای React App
اگر میخواهید پاراگرافی که مکان نما در حال حاضر در آن قرار دارد را انتخاب کنید، META+H را فشار دهید. با فشار دادن مداوم META+h پس از آن، پاراگرافهای بعدی در فایل متنی شما انتخاب میشوند.
اگر میخواهید تمام محتویات بافر اصلی را انتخاب کنید (“Select all”)، CTRL+X و سپس h را فشار دهید.
حذف متن در ویرایشگر Emacs
پاک کردن متن با استفاده از کلیدهای Backspace و Delete انجام میشود. برای حذف سریع یک کلمه، مکان نما را به ابتدای کلمه ببرید و META+D را فشار دهید.
برای حذف چند کلمه، کلید META را فشار داده و نگه دارید و به طور مداوم D را فشار دهید. کلمات یکی یکی حذف میشوند.
در ادامه مطلب نحوه استفاده از ویرایشگر Emacs در سرور لینوکس، برای حذف یک خط کامل، مکان نما را در جایی که میخواهید قرار دهید، سپس CTRL+K را فشار دهید. این کار، متن را تا انتهای خط حذف میکند.
برای حذف یک جمله، META+K را فشار دهید. با این حال، لطفا توجه داشته باشید که اگر دو فاصله پس از توقف کامل وجود نداشته باشد، Emacs یک یا چند خط کامل را حذف خواهد کرد.
لغو و انجام مجدد
در ادامه مطلب نحوه استفاده از ویرایشگر Emacs در سرور لینوکس، شما را با Undo و Redo یکی دیگر از کارهای متداولی که در ویرایشگرهای متن انجام میشود، آشنا خواهیم کرد.
آخرین عملیات انجام شده را میتوانید با فشار دادن CTRL+X و سپس u لغو کنید و یا از یک ترکیب کلید جایگزین +CTRL استفاده کنید.
برای اینکه بتوانید آخرین تغییر ایجادشده را مجدداً بازگردانی کنید، ابتدا Ctrl+G و سپس _ +CTRL را فشار دهید.
Cut و Copy و Paste کردن متن
در Emacs نیز مانند دیگر ویرایشگرهای متن، دستورهای Cut و Copy و Paste قرار داده شده است. برای این منظور میتوانید از دستورات زیر استفاده کنید.
- برای کپی کردن متنی که انتخاب کردهاید، META+W را فشار دهید.
- برای Cut کردن متن انتخابی، CTRL-W را فشار دهید.
- برای Paste کردن متن انتخاب شده، CTRL-Y را فشار دهید.
ورود به حالتهای Emacs
یکی از دلایلی که Emacs به طور گسترده در جامعه UNIX پذیرفته شده است، توانایی آن برای در نظر گرفتن حالتهای مختلف است. یک حالت میتواند عملکرد Emacs را افزایش دهد.
بسته به حالت انتخاب شده، Emacs میتواند به عنوان یک ویرایشگر متن برای نوشتن فایلهای متنی استفاده شود، یا میتوان آن را برای کارهای پیشرفته مانند نوشتن کد پایتون، C یا جاوا تطبیق داد.
بهطورکلی، دو نوع مختلف از حالتهای Emacs به نام Major و Minor وجود دارد. درادامه مطلب نحوه استفاده از ویرایشگر Emacs در سرور لینوکس، درباره هریک از آنها بیشتر صحبت خواهیم کرد.
ورود به مود Major
در این حالت، Emacs میتواند به عنوان یک محیط توسعه یکپارچه (IDE) برای زبانهای برنامه نویسی یا اسکریپت استفاده شود.
در این حالت، برنامه ویژگیهای خاصی مانند ترکیب رنگها، هایلایت کردن، درج و قالب بندی، گزینههای منوی خاص زبان، یا ارتباط خودکار با دیباگرها و کامپایلرها را ارائه میدهد.
برای نشاندادن این موضوع، میتوانید عبارت معروف !Hello World را در زبان پایتون بنویسید. برای این منظور، با استفاده از ترمینال در دایرکتوری Root، دستورهای زیر را وارد کنید.
cd ~
emacs hello.py
Emacs پسوند فایل را تشخیص میدهد و در حالت پایتون شروع به کار میکند. در بافر اصلی، کد پایتون زیر را وارد کنید.
print "hello world!\n"
اکنون، کلمات کلیدی با هایلایت کردن ترکیب رنگ نشان داده میشوند. همچنین، توجه داشته باشید که خط بالای بافر کوچک، حالتی که در حال حاضر در آن هستید را نشان میدهد. منوی اصلی نیز یک ورودی جداگانه مخصوص پایتون دارد.
بافر را با CTRL+X CTRL+S ذخیره کنید.
برای تغییر حالت مود، META+X را فشار دهید. بافر کوچک منتظر پاسخ شما خواهد بود. سپس میتوانید حالت دیگری را وارد کنید.
در ادامه چند نمونه از حالتهای major آورده شده است:
- c-mode
- python-mode
- java-mode
- html-mode
- perl-mode
- shell-script-mode
- text-mode
ورود به مود Minor
درمقایسه با مود Major، مود Minor ویژگیهای خاصتری را ارائه می دهند. این ویژگیها میتوانند به یک مود major خاص متصل شوند یا صرف نظر از مود major، تأثیری در کل سیستم داشته باشند.
همچنین، بر خلاف حالتهای major، میتوان در هر زمان چندین حالت Minor را در نظر گرفت.
مودهای Minor مانند سوئیچها هستند، برخی به طور پیش فرض فعال و برخی دیگر فعال نیستند. اگر یک مود minor از قبل فعال شده باشد، با فراخوانی آن، غیرفعال میشود و اگر خاموش باشد، مجددا روشن خواهد شد.
یکی از نمونههای مود Minor، حالت تکمیل خودکار است. برای ورود به این مود، از کلیدهای ترکیبی Meta+X در Emacs استفاده و سپس، مود Auto-Fill را انتخاب کنید. فعالکردن این حالت سبب میشود که متن طولانی بعد از ۷۰ کاراکتر به خط بعدی برود.
در ادامه مطلب نحوه استفاده از ویرایشگر Emacs در سرور لینوکس، با چند مورد ازحالتهای Minor و کاربرد آنها آشنا خواهیم شد.
- auto-save-mode: این ویژگی، ذخیره خودکار را تغییر میدهد که به صورت دورهای محتویات بافر اصلی را ذخیره کند.
- column-number-mode: موقعیت فعلی مکان نما را در نوار وضعیت نشان میدهد.
- overwrite-mode: عملکردی مشابه با کلید INS صفحه کلید دارد.
- linum-mode: نمایش اعداد خطوط را در لبه سمت چپ پنجره تغییر میدهد.
- line-number-mode: با این کار نمایش شماره خط فعلی در نوار وضعیت تغییر میکند.
- menu-bar-mode: این ویژگی، میتواند منوی اصلی را روشن یا خاموش کند.
جمع بندی
Emacs یک ویرایشگر متن باز و قدرتمند است که برای کار با فایلهای متنی و کدنویسی بسیار مناسب میباشد. با مطالعه و تمرین مستندات آن، میتوانید از قابلیتهای بسیاری که این ویرایشگر دارد، بهرهمند شوید. برای استفاده از Emacs در سرور لینوکس، ابتدا آن را در سرور ابری لینوکسی خود نصب کنید و سپس با استفاده از دستورات مختلف، فایلهای خود را ویرایش و تغییرات را ذخیره کنید. در این آموزش، شما را با دستورات مختلف، ویژگیهای ویرایش و حالتهای Emacs آشنا نمودهایم تا بدین وسیله بتوانید از قابلیتهای این ویرایشگر محبوب بهرهمند شوید.
[yasr_overall_rating]