چرا این قدر کلید؟
شاید بپرسید چرا این قدر کلید در برنامهی EMACS یا حتی سایر ویرایشگرها مانند Jed یا Vi وجود دارد؟ برای پاسخ به این پرسش باید به سالهای میانی دههی 1980 باز گردید، برنامهی EMACS زمانی وارد دنیای کامپیوتر شد که هنوز میط گرافیکی و ماوس وجود نداشتند، آن زمان اغلب مردم از ترمینالهای متنی یا دامب ترمینال ها استفاده میکردند، نویسندگان ایمکس یا وی-آی (Vi) کسانی هستند که در دههی 1960و1970 با پانچ کردن کارت و یا نوشتن مستقیم برنامهها در ترمینالها شروع به کار کردند و ایدهی کلیدهای داغ یا Hot keyها یکی از ایدههای انقلابی آن زما به شمار میاید. اگر میخواهید این موضوع را درک کنید برای مدتی ماوس را از سیستمتان جدا کنید، حالا برنامهی EMACS را باز کنید، مسلمابا این کلیدهای داغ و جذاب مشکلی نخواهید داشت .
به قابلیت ها و کلیدهای داغ موجود در برنامهی PE2 در MS-DOS نگاه کنید، قابلیتهای این دوبرنامه یعنی PE2 وEMACS را بایکدیگر مقایسه کنید، حتی میتوایند قابلیتهای WordPerfect نسخهی داس را با ایمکس مقایسه کنید، با این که ایمکس سالها قبل نوشته شده اما همواره یکی از برنامههای ویرایش متن عالی بوده. هر کاری که بخواهید با این برنامه میتوانید بکنید. البته از یک برنامهی ویرایشگر متن نباید انتظار یک برنامهی پردازشگر متن مانند OpenOffice writer یا MS Word را داشت چرا که این برنامهها هر کدام در یک حوزه قرار دارند و مقایسهی این دو با یکدیگر بسیار اشتباه است.
بنابراین میبینیم که این کلیدها چه ایدههای داغ و کار آمدی هستند که در EMACS یا Vi به خوبی از آنها استفاده شده است.
وارد کردن و پاک کردن
برای وارد کردن یا Insert کردن متن کافیست پس از باز کردن ویرایشگر شروع به تایپ کنید، هنگامی که نیاز داشتید به خط بعد بروید دکمهی <Return> را فشار بدهید، اغلب در صفحه کلیدها این دکمه Enter نامیده میشود.بد نیست بدانید کلمهی Return از ماشینهای نحریر قدیمی گرفته شده است، حتی امروزه برخی ماشینهای تحریر دستی با دکمهی Return وجود دارند که در ادارات ویا برخی موسسات تایپ از آنها استفاده میشود!
در صورتی که خط شمااز عرض صفحه بیشتر باشد یک بک اسلش یا \ در انتهای خط نشان داده میشود و در اگر از Xemacs یا همان رابط گرافیکی X استفاده میکنید یک فلش کوچک نمایش داده خواهد شد.
برای پاک کردن نیز باید از دکمهی <Delback> استفاده کنید، این دکمه اغلب در صفحه کلیدها با نوشتهی Backspace یا Del نمایش داده میشود. اگر در صفحه کلیدتان جز Backspace دکمهی Delete نیز دارید این دو کمی باهم متفاوتندو دکمهی Backsapace یا <Delback> کاراکتر قبل از نشانگر یا Cursor را پاک میکند و Delete کاراکتر زیر نشانگر را. در واقع در چنین صفحه کلیدهایی Delete معادل C-d است و Backspace ا این دومتفاوت.
برای پاک کردن متن در ایمکس چندین گزینهی مختلف دارید که برای این که این گزینهها را در یک محل جمع کرده باشیم تا بتوانید متمرکز تر برروی آنها فکر کنید، گزینههای عمده را در جدول زیر گردهم آوردهایم :

آنچه در این برنامه باید به عنوان قاعدهای به یاد داشته باشید تفاوت Delete و Kill است که من پاک کردن و حذف کردن ترجمه میکنم.بله پاک کردن و حذف کردن با یکدیگر متفاوتند ! کلمهای که پاک میشود دیگر قابل وارد کردن یا Inserting نیست اما کلمهای که حذف میشود یا Kill میشود قابل بازگردانی و Inserting است.
زمانی که متنی را Detele یا پاک کردید دیگر از دست رفته ! اما اگر متنی را Kill بکنید میتوانید باز گردانیدش ! به زبان امروزیتر وقتی یک متن را Kill میکنید یعنی آن را Cut کردهاید و با عمل Yanki یا Paste میتوانید باز گردانیدش، بله این لغات پدران Cut و Paste امروزی هستند. ابلته بعد از مدتی خواهید دید که دقیقا هم این دو به یک معنی واحد نیستند اما میتوان معدل یکدیگر فرضشان کرد.
بریدن و چسباندن متن
آنچه در مرحله ی قبل به شما نشان داده شد پاک رکدن متن بود برای Cut کرد شما ابتدا باید متن خود را علامت بزنید، به اتدای محلی که میخواهید ببرید یا Cut کنید بروید، حالا @-C یا C-SPC را بزنید، برای این کار کنترل با Shift و 2 را بگیرید یا برای سادی کار از کنترل و Space برای علامت زدن استفاده کنید، خوب در قسمت وایین EMACS برایتان مینویسد "Mark set" حالا به پایان متنتان بروید برای نمونه پایان همان پاراگراف، کافیست C-w را بزنید تا متن شما حذف کند یعنی Kill شود. خوب متن شما پاک نشده بلکه فقط از قسمتی از متن حذف شده حالا به محل مورد نظر بروید و C-y را بزنید تا عمل چسباندن یا Paste انجام شود. y در C-y ابتدای Yanki یا همان عمل paste است.
فرض کنید متنی را Cut کردید و چسبانید، متن دوم را Cut می کنید و میچسبانید حالا متن سوم را Cut کنید و بچسبانید، اگر نیاز داشته باشید متن دومرا دوباره بچسبانید چه میکنید؟ از ابتدا متن دوم را علامت میزنید؟ ریچارد برایتان راه چارهای اندیشیده، برای Yank یا Paste کردن متن دوم کافیست به جای C-y از M-y استفاده کنید، یعنی با زدن Altو y میتوانید متن بار دوم یا حتی بار اول را یانک کنید ، با هربار زدن این دکمهها متنهای پیشینی که Kill یا Cut کرده بودید مرحله به مرحله یانک میشوند ! این همان امکانی است که مایکروسافت یک دهه و اندی بعد کمی کاملتر به عنوان Office Clipboard ارائه کرد ! به این دلیل است که برنامهی EMACS تا به این حد طرفدار دارد.
برای Cut کردن از C-w استفاده کردید، برای کپی کردن از M-w استفاده کنید. یعنی به ابتدای قسمتی که قرار است کپی شود بروید و C-SPC یا C-@ را بزنید و سپس به انتهای متن مورد نظر بروید و M-w را بفشارید تا متن علامت خورده کپی شود. حالا هر جا که میخواهید آن را یانک کنید. یعنی Paste کنید ;)
استفاده از مقادیر برای صرف جویی در وقت
یکی از امکانات بسیار جذاب ایمکس استفاده از مقادیر عددی برای سرعت در عمل است. شما با استفاده از ترکیب C-u میتوانید در انجام کارهای تکراری سریعتر عمل کنید. برای نمونه اگر میخواهید ۵ صفحه به جلو حرکت کنید :
C-u 5 C-v
یابرای تایپ ۱۴ ستاره یا * در کنار هم :
C-u *
اگر میخواهید به۶ دستور قبلتر بروید یعنی میخواهید ۶بار Undo کنید :
C-u 6 C-x u
و برای سایر دستورات نیز همین روال وجود دارد.البته توجه داشته باشید برخی دستورات در این نظام کمی تغیییر میکنند برای نمونه اگر دوبار پشت سرهم دستور C-k را بفشارید ابتدا محتوات خط پاک خواهد شد و سپس خود خط، اما با زدن C-u 2 C-k خطی که در آن هستید و خط بعد از آن هردو به طور کامل پاک خواهند شد. میتوانید آزمایش کنید.
بافر ایدهای برای ذخیرهی زمان
بازهم به دههی ۱۹۸۰ باز گریم، نه محیط گرافیکی بود که بتوانیم چند پنجره را همزمان باز کنیم نه از Tab ها که امروزه مرسومند خبری بود، شما یک ترمینال یا کنسول داشتید و دیگر هیچ، حال اگر کسی میخواست بیش از یک فایل را همزمان ویرایش کنید باید یکی را ویرایش میکرد و پس از بستن به سراغ دیگری میرفت. این موضوع برای ریچارد استالمن که آن زمان برروی کامپیوترهای TimeSharing کار میکرد خوشایند نبود. بنابراین ایدهای را در ایمکس به کار گرفت به نام Buffer.
شما یک فایل را با دستور C-x C-f بازکنید، حال راهنمای ایمکس را با C-h t باز کنید ، فایل قبلی از دست نفرفته بلکه، هربار که یک فایل جدید باز میکنید EMACS یک بافر جدید برای آن ایجاد میکند که فایل را در آن قرار میدهد، حالا میوانید ۱۰ -۲۰ یا بشتر فایل را در کنار هم باز کنید، نتیجه این است که به همین تعداد بافر باز خواهد شد، این مفهوم Multi Task یا چند کار در یک زمان است :)
بسیار خوب برای دیدن یک لیست کامل از این بافرها از دستور C-x C-b استفاده کنید، هم اکنون لیستی از بافرای بازشده در EMACS در مقابل شماست. هربافربرای خود یک نام دارد و البته در مقابل آن اطلاعات بیشتری دربارهی فایل برایتان نوشته شده است.
برای انتخاب یک بافر کافیست ابتدا C-x وb را بزنید و سپس نام بافر را بنویسید تا به آن بافر منتقل شوید، بای نمونه برای رفتن به بافر tux.txt که TUX نام دارد بزنید : C-x b TUX حتما متوجه شدهاید که دی اینجا C-b نداریم و فقط از کلید b به صورت منفرد استفاده شده است.
اگر صفحهی شما به دو قسمت تقسیم شده است و میخواهید فقط یک بافر نمایش داده شود از کلیدهای داغ C-x 1 استفاده کنید، برای این کار به بافری که میخواهید نمایش داده شود بروید و بزنید C-x 1 ، همه چیز درست است.
کمک !
اگر زمانی یکی از کلیدهای داغ یا hot keyهارا فراموش کردید چه باید کرد؟ اگر از مدل صفحه کلیدی لذت نمیبرید؟ برای این کار این برنامه بازهم چارهای اندیشیده اگر از XEMACS استفاده نمیکنید و به منوها نیز دسترسی ندارید بازدن دکمههای داغ ` ESC یا همان ESC و ` میتوانید از طریق منوهای برنامه با این برنامه کار کنید .
اگر با کلیدها مشکلی ندارید اما میخواهید بیشتر و بیشتر بدانید، در ایمکس راهتان باز است کافیست از ترکیب کنترل و h استفاده کنید !! برای یک تور مجانی در ایمکس به زبان انگلیسی آمادهاید؟ اگر بله پس کلیدهای C-h t را بزنید یعنی کنترل وh را بزنید و سپس t را ، شما وارد یک راهنما میشوید که شخص ریچارد استالمن آن را نوشته، حتما این راهنما را بخوانید . البته بعد از خواندن شباهتهاییی بین این راهنمای FDL و مقالهی من نیز خواهید یافت ;)
شاید یک کلید را دیدهاید اما نمیدانید چطور باید استفاده کرد، خوب یک برنامه ی هوشمند همیشه یک دستیار در کنارتان قرار میدهد کافیست بزنید C-h k ودر قسمت پایین برنامه در محلی که کاملا نمایان است کلید خود را بزنید برای نمونه بزنید C-h k برای زدن این کلیدها نباید آن را تایپ کنید بلکه همان کنترل و h را گیرید و k را فشار دهید برنامهی EMACS میتواند این دستور را درک کند، در جواب شما نوشته خواهد شد :
C-h k runs the command describe-key which is an interactive compiled Lisp function in `help'.
(describe-key KEY) Display documentation of the function invoked by KEY. KEY is a string.
برای دستیابی به تمام گزینههای راهنما بزنید C-h C-h بدین ترتیب به مجموعهای از گزینههای راهنما دست پیدا خواهید کرد.
میدانید که تاریخچهی پروژهی گنو مدتهاست در سیستم شما وجود دارد؟ اگر بله که حتما مطالعه کردهاید اگر نه کافیست بزنید C-h C-p تا به تاریخچهای از پروژهی گنو دست پیدا کنید .
سایر کلیدها
در این قسمت به سایر کلیدهای اصلی موجود در EMACS که کاربرد زیادی دارند اشاره خواهم کرد :

سایر امکانات
این برنامه امکانات بسیاری دارد برای نمونه برای کنترل New Group یا گروه خبری که در آن هستید یا به روز کردن فایلهای CVS یا مقایسهی دومتن با یکدیگر، SGMLها، کنترل پست الکترونیک، تقویم حتی بازیهای محبوب هکرها و بسیاری امکانات دیگر میتوانید از این برنامه استفاده کنید. امیدوارم بتوانم در آینده به بررسی این امکانات بپردازم.
درپایان باید یاد آور شوم این برنامه متاسفانه هنوز از زبان فارسی پشتیبانی مناسبی ندارد، البته برنامه با یونیکد و استاندارد UTF-8 هیچ مشکلی ندارد اما به دلیل نبود فونت فارسی مناسب هنوز قابلیت فارسی نویسی در این برنامه وجود ندارد برای دیدن نمونهای از زبانهای موردشتیبانی این برنامه میتوانید C-h h را تایپ کنید وببیند چه زبانهایی به درستی در این برنامه نمایش داده میشوند.
درپایان امیدوارم این مقاله مقالهی مفیدی برای شما کاربر گنو/لینوکس باشم تا بتوانید از برنامهی محبوب لینوکس دوستان یعنی GNU EMACS به بهترین شکل استفاده کنید.
علاقه مندی ها (بوک مارک ها)