خانه » استفاده از ویرایشگر Emacs
آموزش لینوکس

استفاده از ویرایشگر Emacs

ریچارد ام. استالمن، بنیانگذار جنبش نرم‌افزار آزاد و پروژه گنو، توسعه Emacs را در دهه ۱۹۷۰ آغاز کرد و مانند vi، به یکی از اجزای اصلی دنیای یونیکس/لینوکس تبدیل شده است. Emacs مخفف Editor MACroS است که استالمن آن را در MIT توسعه داد تا بتواند از ویرایشگر نسبتاً دشوار TECO راحت‌تر استفاده کند. استالمن توسعه نسخه فعلی، GNU Emacs، را در سال ۱۹۸۴ آغاز کرد. این سنگ بنای برنامه‌های پروژه گنو است. پس از نزدیک به دو دهه توسعه، ویژگی‌های بیشتری دارد که می‌توانید به آنها تکیه کنید. برای مستندسازی تمام کارهایی که Emacs اکنون می‌تواند انجام دهد، به یک دایره‌المعارف نیاز است. کاربران دیگر Emacs را یک شبه‌عامل نامیده‌اند. با این حال، کاری که ما در اینجا انجام خواهیم داد، صحبت در مورد ویژگی‌های ویرایش متن آن است.

ایمکس برای X-window و XEmacs

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

مقدمه‌ای بر کلیدهای ایمکس

مانند vi، برای استفاده از ایمکس، باید برخی از اصول اولیه کلیدها را بدانید. اکثر دستورات ایمکس بر اساس ترکیبی از CTR+?، CTR+x+?، CTR+c+?، ESC+? هستند (که در آن ? یک کلید است). همچنین ویژگی اضافه شده فشار دادن ALT+x وجود دارد که چیزی به نام mini-buffer را باز می‌کند. اما قبل از اینکه در مورد مینی بافرها صحبت کنیم، بیایید در مورد بافرهای کامل صحبت کنیم.

ایمکس فایل‌ها را در چیزی که به عنوان بافر شناخته می‌شود، باز می‌کند. این امر به ویژه هنگامی که از ایمکس در حالت متنی استفاده می‌کنید، مفید است. این بافرها مانند شبه‌پنجره‌ها می‌شوند. می‌توانید با تایپ کردن CTRL+x+f یک فایل/بافر جدید باز کنید. می‌توانید با تایپ CTRL+x+b بین فایل‌ها جابجا شوید. مینی بافر یک بافر کوچک و نازک است که می‌توانید دستورات ایمکس را در آن اجرا کنید. تنها کاری که باید انجام دهید این است که ALT+x را تایپ کنید و مکان‌نما در مینی بافر شروع به چشمک زدن می‌کند. فقط کافی است یک حرف را تایپ کنید و ایمکس شروع به نمایش تمام دستوراتی می‌کند که با آن حرف شروع می‌شوند. فرض کنید می‌خواهید املای متن را در بافر با برنامه ‘ispell’ بررسی کنید. شما تایپ می‌کنید:

ALT +x +i + TAB

مینی بافر شروع به کوچک‌تر شدن می‌کند و شما شروع به دیدن تمام دستوراتی می‌کنید که با حرف ‘i’ شروع می‌شوند. البته، می‌دانید که ispell با ‘isp’ شروع می‌شود، بنابراین اگر به تایپ کردن آن حروف ادامه دهید، به دستورات ispell خواهید رسید. به تایپ حروف ادامه دهید تا دستور ispell مورد نظر خود را دریافت کنید، که در مورد ما ‘ispell-buffer’ خواهد بود. Enter را فشار دهید و Emacs برای بررسی کل فایل متنی شما، ispell را فراخوانی می‌کند.

مینی بافر دوست شماست: دستوراتی که در مینی بافر تایپ می‌کنید تا زمانی که Emacs را نبندید، از بین نمی‌روند، بنابراین لازم نیست به تایپ کردن همان دستورات ادامه دهید. فقط فلش ​​بالا را فشار دهید تا دستوری را که قبلاً استفاده کرده‌اید پیدا کنید.

ویرایش اولیه با ایمکس

برای باز کردن یک فایل در ایمکس، تنها کاری که باید انجام دهید این است که تایپ کنید:

ایمکس فایل

اگر می‌خواهید فایل دیگری را باز کنید، تایپ کنید:

CTRL+x+f
و شروع به تایپ کنید. وقتی می‌خواهید متن خود را ذخیره کنید، کافیست کلید‌های زیر را فشار دهید:

CTRL+x+s

وقتی کارتان تمام شد، می‌توانید بافر را ببندید :

CTRL+x+k
همچنین می‌توانید با فشار دادن کلید‌های زیر، همزمان عملیات حذف (می‌دانم که کمی زننده به نظر می‌رسد!) و ذخیره را انجام دهید:

CTRL+x+c
و از شما خواسته می‌شود که فایل خود را ذخیره کنید یا فقط خارج شوید.

کلیدهای بیشتر = قدرت بیشتر

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

حذف کردن چیزها

چگونه از شر کلمه‌ای که نمی‌خواهید خلاص می‌شوید؟ آن را می‌کشیم. برای “کشتن” یک کلمه، باید فشار دهید:

ESC+d

بیایید تصور کنیم که چیزی کمی عجیب تایپ کرده‌اید:

“باران در بلغارستان عمدتاً روی زمین می‌بارد”

مشکل: شما آن خط را در متن نمی‌خواهید. راه حل؟ کشتن بیشتر. مکان‌نمای خود را در ابتدای آن خط قرار دهید و فشار دهید:

CTRL+k
و این خط ناپدید می‌شود.

پیدا کردن و جایگزینی

اگر در ابتدای یک فایل متنی هستید و می‌خواهید یک یا چند کلمه را در یک متن پیدا کنید، تنها کاری که باید انجام دهید این است که فشار دهید:

CTRL+s

این یک مینی بافر باز می‌کند و می‌توانید متن مورد نظر خود را وارد کنید. Emacs به طور خودکار به دنبال آن می‌گردد. اگر در انتهای یک فایل هستید، می‌توانید با تایپ کردن موارد زیر جستجوی معکوس انجام دهید:

CTRL+r
یک بار دیگر، آنچه را که به دنبالش هستید در مینی بافر تایپ کنید.

همچنین می‌توانید با فشار دادن موارد زیر کلمات را جایگزین کنید:

ESC+% (درصد)
ایمکس شما را به مینی بافر منتقل می‌کند و ابتدا از شما می‌پرسد که می‌خواهید کدام کلمه را جایگزین کنید و سپس جایگزین را از شما می‌خواهد. کلمات را یکی یکی نشان می‌دهد و از شما رضایت می‌خواهد. فقط ‘y’ را تایپ کنید تا آن را تأیید کنید. اگر می‌خواهید هر نمونه از آن کلمه را جایگزین کنید، فقط ‘!’ (علامت تعجب) را تایپ کنید و ایمکس همه آنها را به طور همزمان تغییر می‌دهد.

لغو کارها

تصور کنید که همین الان یک کلمه را “کشته‌اید”. اگر احساس گناه می‌کنید، می‌توانید با فشار دادن موارد زیر، کلمه خود را دوباره زنده کنید:

CTRL+x+u
آخرین تغییرات خود را لغو خواهید کرد. اگر به فشار دادن آن ادامه دهید، هر کار دیگری را که قبل از آن انجام داده‌اید تا جایی که ویرایش را شروع کرده‌اید، لغو می‌کنید.

کلیدهای میانبر دیگری هم برای انجام همین کارها وجود دارند. برای مثال، CTRL+SHIFT+- (خط تیره) برای لغو عمل نیز عمل می‌کند. ALT+SHIFT+% (درصد) نیز به شما امکان یافتن و جایگزینی می‌دهد. گزینه‌ای را انتخاب کنید که راحت‌تر یا راحت‌تر به خاطر سپرده می‌شود.

دستورات Emacs – Unleashed Power Turbo Edition

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

تغییر حروف بزرگ و کوچک متن

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

ESC + l

برای تغییر به حروف بزرگ:

ESC + u

برای بزرگ کردن یک کلمه، مکان‌نما را روی حرف اول قرار دهید و فشار دهید:

ESC + c

برش و چسباندن

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

ابتدا، برای انتخاب یک کلمه، برش و چسباندن آن، مراحل زیر را انجام دهید:

برای انتخاب یک کلمه، این کار را انجام دهید:

ESC – @

حالا برای برش کلمه، این کار را انجام دهید:

CTRL + w

حالا برای چسباندن کلمه، این کار را انجام دهید:

CTRL + y
همچنین می‌توانید این کار را با جملات، پاراگراف‌ها و کل بافر انجام دهید. فقط باید مرحله اول بالا را تغییر دهید. مرحله دوم و سوم یکسان باقی می‌مانند.

برای انتخاب یک جمله یا یک عبارت، مراحل زیر را انجام دهید:

CTRL + SPACE + SHIFT
و فلش سمت راست را حرکت دهید و مقدار متن مورد نظر خود را انتخاب کنید.

انتخاب یک پاراگراف کمی آسان‌تر است:

CTRL + h
برای انتخاب کل بافر متن، مشابه است:

CTRL + x + h

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

ESC + w
سپس می‌توانید آن را به یک بافر دیگر ببرید یا یک بافر جدید باز کنید و متن را با CTRL + y بچسبانید.

بررسی املای خود

با Emacs، می‌توانید به راحتی املای خود را بررسی کنید. برای بررسی املای یک کلمه، فقط مکان نما را روی کلمه قرار دهید و موارد زیر را فشار دهید:

ALT + SHIFT + $ (علامت دلار)

پیمایش بافر می‌توانید به راحتی با فشردن کلیدها از ابتدا تا انتهای فایل خود بروید – نیازی به استفاده از دکمه‌های جهت‌نما نیست!

ESC + <
شما را به ابتدای فایل می‌برد

ESC + >
شما را به انتها می‌رساند.

برای حرکت بین پاراگراف‌ها، از ترکیب کلیدهای ‎
ESC + } ‎برای رفتن به ابتدای پاراگراف و ‎
ESC + { ‎برای رفتن به انتهای پاراگراف استفاده کنید.

تقسیم پنجره‌ها

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

CTRL + x + 2

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

CTRL + x + 1

حتی می‌توانید بافر را دوباره تقسیم کنید و سه، چهار یا چند بخش داشته باشید. کافیست در هر بخش کلیدهای CTRL + x + 2 را فشار دهید.

همچنین می‌توانید پنجره را به صورت افقی با کلیدهای زیر تقسیم کنید:

CTRL + x + 3
CTRL + x + 1 همچنین برای بازگشت Emacs به حالت عادی استفاده می‌شود.

تغییرات Emacs

اگر از عملکرد پیش‌فرض Emacs راضی نیستید، می‌توانید یک فایل را در دایرکتوری خانگی خود تغییر دهید و رفتار Emacs را به دلخواه خود تغییر دهید.

در دایرکتوری خانگی خود، در میان فایل‌های “نقطه‌ای” فراوانتان، فایلی به نام .emacs پیدا خواهید کرد.

این فایل با Emacs Lisp نوشته شده است که گونه‌ای از زبان برنامه‌نویسی Lisp است. بنابراین نه تنها فایل .emacs خود را تغییر می‌دهید، بلکه در این فرآیند کمی برنامه‌نویسی Lisp نیز یاد خواهید گرفت.

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

یک تغییر ساده

یکی از اولین تغییراتی که اکثر کاربران در فایل .emacs خود ایجاد می‌کنند، اضافه کردن خطی است که متن پیش‌فرضی را که هنگام شروع Emacs ظاهر می‌شود، حذف می‌کند. اگر شما هم می‌خواهید این کار را انجام دهید، کافیست فایل .emacs خود را باز کنید (البته در خود Emacs!) و این خط را اضافه کنید:

(setq inhibit-startup-message t)

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

;; پیام شروع را نشان نده
(setq inhibit-startup-message t)

یک نکته کوچک دیگر که به نظرم مفید است، این تغییر است:

; کاری کنید که همه درخواست‌های «بله یا خیر» به جای «y» یا «n» نمایش داده شوند.

(fset ‘yes-or-no-p ‘y-or-n-p)

این کار باعث می‌شود وقتی ایمکس از من می‌پرسد که آیا می‌خواهم بدون ذخیره کردن از برنامه خارج شوم یا نه، مجبور نباشم کل کلمه «yes» (که رفتار پیش‌فرض ایمکس است) را بنویسم. حالا فقط باید حروف «y» یا «n» را تایپ کنم. نه اینکه این موضوع در طرح سلطنتی چیزها خیلی مهم باشد، اما روی هم رفته، صرفه‌جویی در مصرف انرژی با ۲ ضربه ممکن است باعث شود کیبورد شما ۳.۷۶ روز بیشتر دوام بیاورد.

میانبرهای صفحه کلید

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

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

;; make CTRL+x+g goto-line(global-set-key “C-xg” ‘goto-line)

همانطور که به یاد دارید، میانبرهای صفحه کلید بر اساس کلیدهای CTRL، ALT و ESC هستند، بنابراین هنگام ایجاد میانبرهای صفحه کلید، باید از کاراکترهایی استفاده کنید که ایمکس لیسپ برای آن کلیدها می‌فهمد. آنها عبارتند از:

CTRL = \C-
ESC = \e-
ALT = \M-
اگر از Emacs برای نوشتن ایمیل استفاده می‌کردید، می‌توانید یک میانبر برای نوشتن ایمیل ایجاد کنید:

;; open mail in other ‘buffer’
(global-set-key “M-m” ‘mail-other-window)

واقعاً هیچ محدودیتی برای کارهایی که می‌توانید برای تغییر رفتار Emacs خود انجام دهید وجود ندارد. این نرم‌افزار می‌تواند در انجام وظایف مدیریت سیستم به شما کمک بی‌حد و حصری کند.

مهدی منصوری

من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم. هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

درباره نویسنده

مهدی منصوری

من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم.
هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

افزودن نظر

برای ارسال نظرات خود اینجا را کلیک کنید