به نقل از ویکیپدیا : ایمکس (به انگلیسی: Emacs) نام دستهای از ویرایشگرهای متن با قابلیتهای گشترشپذیری بالاست. ایمکس نزد برنامهنویسان رایانه خصوصاً لینوکس/یونیکسکاران سخت محبوبیت دارد. در واقع ویرایشگر ویآی (vi) و ایمکس دو رقیب اصلی در عرصهٔ ویرایش متن در دنیای لینوکس/یونیکس محسوب میشوند.
نام ایمکس از عبارت انگلیسی Editor MAcroS (به معنی ماکروهای ویرایشگر) برای ویرایشگر تیکو برگرفته شدهاست. این ماکروها نخستین بار توسط ریچارد استالمن نوشته و توسط گای استیل، دیْو مون، ریچارد گرینْبْلَت و چارلز فرنکْسْتون و دیگران به هم چفتوبند شد. نسخههای گوناگونی از ایمکس در طول سالیان به وجود آمدهاند اما امروز از دو گونهٔ اصلی آن استفاده میشود: گنو ایمکس و ایکسایمکس که در واقع شاخهای جداشده از گنو ایمکس است. ایکسایمکس ۱۹۹۱ میلادی رشد مستقل خود را آغاز کرد. با این حال تا به امروز تا حد بسیار زیادی با گنو ایمکس همخوانی دارد. پروژهٔ گنو ایمکس توسط خود استالمن در تاریخ ۱۹۸۴ آغاز به کار کرد و تا سال ۲۰۰۸ وظیفهٔ نگهداری از کد آن به عهدهٔ استالمن بود و پس از آن به Stefan Monnier و Chong Yidong داده شد. زبانی که برای گسترش امکانات ایمکس از آن استفاده میشود گویشی خاصی از زبان برنامهنویسی لیسْپ به نام لیسپ ایمکس است.
ایمکس یکی از قویترین ویرایشگرهای متن در حال حاضر است. باید توجه داشت که ایمکس برای ویرایش متن است و نه واژهپردازی. از این رو هدف اصلی آن کنترل اندازه یا نوع قلم و امثال آن نیست، بلکه دستکاری در کلمات و بندها (شامل جابجایی و پسوپیش کردن و پاککردن و …) و رنگآمیزی متن برای آسانسازی ویرایش برنامههای رایانهای و امثال آن است. از طریق ایمکس میتوان برنامههای رایانهای را نوشته، اجرا و حتی غلطگیری (debug) کرد. اصولاً میتوان ایمکس را برای کار با هر زبان برنامهنویسی دلخواهی بهینهسازی و تنظیم کرد. و تمام این گسترشها از طریق زبان ایمکس لیسپ است.
چنان که گفته شد به ایمکس قابلیتهای بیشماری به کمک زبان برنامهنویسی ایمکس لیسپ میتوان افزود. این امکاناتافزایی تا جایی پیش رفتهاست که امروز بسیاری از ایمکسکاران حرفهای بسیاری از کارهای روزمرهٔ خود را حتی وبگردی (به صورت متنی) و نوشتن و دریافت پستالکترونیکی و کارهای بسیاری که از یک ویرایشگر عادی بر نمیآید، با ایمکس انجام میدهند.
دستورات به ایمکس به صورت ترکیبی از فشردن کلیدهای کنترلی و کلیدها (و احیاناً سپس تایپ دستور) است. هنگام ذکر این دستورها در راهنماها معمولاً فشردن همزمان کلید Ctrl با کلیدی دیگر (مثلاً x) را به صورت C-x
و فشردن کلید Alt با کلیدی دیگر مثلاً x را به صورت M-x
*[۱] نشان میدهند. مثلاً برای بازکردن یک پرونده در ایمکس از دستور C-x C-f
استفاده میشود که یعنی فشردن همزمان Ctrl و x و سپس فشردن همزمان Ctrl و f. (/پایان نقل)
بسیاری کاربران همیشه برای یادگیری هر چیزی ابتدا به دنبال منابع آموزشی جامع میگردند؛ منابعی که از سیر تا پیاز مبحث را برایشان توضیح دهد و آنها هم با خواندن آن به مهارت برسند. ولی آیا این شیوه آموزش فایدهای دارد؟ الیته… این شیوه حافظه کوتاه مدت شما را سرشار از مطالب بدیع خواهد کرد؛ ولی آیا باعث حضور ذهن، خلاقیت، تجربه، مهارت و… هم خواهد شد؟ مسلما خیر. در زیر ترجمهای از مطلبی که یک کاربر نرمافزار ایمکس در وبلاگ خود منتشر کرده است آورده شده که خواندن آن خالی از لطف نیست. این توضیحات را با اندکی تغییر میتوان به تمامی جنبههای دانش، بخصوص دانش فنی تعمیم داد.
یک روز ایمیلی با این مضمون که “چگونه Emacs را یاد بگیرم” دریافت کردم. این جواب (ویرایش شده) من به آن ایمیل است:
من میدانم که شما یک Emacs کار فوقالعاده هستید در نتیجه بهتر است این سوال را من از شما بپرسم که: من چگونه Emacs را یاد بگیرم؟ برای چندین سال متوالی از Emacs استفاده کردهام ولی هنوز که هنوز است فکر میکنم چیز زیادی از آن نمیدانم و مهارتهای من در خصوص آن افزایش چشمگیری نداشته است.
جواب کوتاه این پرسش این است که شما بایستی Emacs را در دراز مدت (چیزی حدود یک دهه) فرا بگیرید، لازم است بیشتر توضیح بدهم:
اواخر ۱۹۹۷ بود که من به عنوان یک تازهوارد به کالج شروع به استفاده از Emacs کردم. بعد از یک سال استفاده یا بیشتر از آن، چیزی که یاد گرفته بودم دهها کلید ترکیبی (البته بدون شمارش دستوراتی که خودم با self-insert-command تهیه کرده بودم) و تنها تعداد انگشت شماری از مدهای ماژور (c-mode, java-mode, makefile-mode, ممکن است از این جمله باشند) بود. اساسا بعد از این مدت استفاده، تفاوت چندانی با کاربران عادی Notepad نداشتم. به وضوح به یاد میآورم که در سال دوم دانشگاهم، زمانی که در دفتر یک پروفسور در مورد اسنادی صحبت میکردم از دیدن چند کار خیره کنندهٔ او با Emacs به وجد آمدم. ساختن ویرایشهای ظاهرا پیچیده در مقدار کمی از زمان. من در میان دانشجویان به “پسر ایمکسی” معروف بودم ولی هنوز حتی نمیدانستم چطور ماکروهای کیبورد را ذخیره یا استفاده کنم؛ واقعا خجالت آور بود.
من در تمام این مدت به استفاده از Emacs ادامه دادم و مشخص است که در این زمان نسبتا طولانی موارد زیادی را در زمینهی کار با آن فرا گرفته و همچنان فرا میگیرم. البته موضوع کلی این است که تنها Emacs نیاز به ۱۰ سال آموزش برای یاد گرفتن ندارد بلکه برای یادگیری هر چیزی در حد خیلیخوب و یا عالی یک دهه وقت لازم است. از نورویج (تأکید خود او):
محققین (بلوم (۱۹۸۵)، برایان و هارتر (۱۸۹۹)، هایس (۱۹۸۹)، سیمون و چیس (۱۹۷۳)) نشان دادند که ده سال زمان میبرد تا در هر زمینهای به صورت گسترده با تجربه شوید، از جمله شطرنج بازی کردن، ساخت موسیقی، ارسال تلگراف، نقاشی کردن، نواختن پیانو، شنا، تنیس، و تحیقیق در روانشناسی و مکان شناسی. کلیدش در یادگیری با تامل است: نه فقط با تکرار دوباره و دوباره، بلکه با به چالش کشیدن خودتان با چیزی که فراتر از قابلیتهایتان است، امتحانش کنید، کاراییتان را قبل و بعد از آن بررسی کنید، و هر اشتباهی را تصحیح کنید. سپس تکرار کنید. و دوباره تکرار کنید. هیچ راه میانبر واقعیای وجود نخواهد داشت. حتی موزارت، اعجوبهی موسیقی در قرن چهارم، ۱۳ سال طول کشید تا کلاس جدیدی در موسیقی جهانی ایجاد کند. در یک ژانر دیگر راک نوازان انگلیسی Beatles به نظر میرسد با یک تک آهنگ و ظاهر شدن در Ed Sullivan سال ۱۹۶۴ شکوفا شدند اما واقعیت این است که آنها از ۱۹۵۷ با اجرا در کلوپهای کوچک لیورپول و هامبورگ در سال ۱۹۵۷ کار خودشان را آغاز کرده بودند.
حالا حتما میپرسید شما چطور به این باور برسید که از Emacs زیاد استفاده کنید و در وقتهای بیکاری کتابخانههای آن را برای سرگرمی هک کنید؟ در ابتدا برای انجام کارهای مربوط به ویرایش ولی کم کم Emacs تمام پروسههای کامپیوترتان را به دست خواهد گرفت. در حقیقت شما این اجازه را به او میدهید که این کار را انجام دهد.
به عنوان مثال یکی از کارهای محبوبی که مردم برای توسعهٔ Emacs-fuشان دوست دارند که انجام بدهند خواندن ایمیل با Emacs است (اینجا را ببینید). پیشنهاد میکنم که Gnus را امتحان کنید. هفتهها وقت تلف خواهید کرد تا بفهمید چطور Gnus میلسرورتان را شناسایی کند. بیشتر از این که به خودش توجه کرده باشید آن قدر چیز یاد گرفتهاید که دیوانهتان کند.
ایمکس اینطور شناخته میشود: «ویرایشگر توسعه پذیر، قابل شخصی سازی، خود مستند ساز و Real Time». من میخواهم شما را متوجه بخش خود مستندساز کنم. شاید پایهایترین فنونی که از ایمکس برای پیشرفتتان نیاز دارید این است که چطور ویژگیهای کمک ایمکس را جستجو کنید، که بسیار هم پهناور است. تایپ کنید C-h C-h تا به نقطهی مورد نظر برسید.
من elisp را با ترکیبی از سعی و خطا، یوزنت و Glickstein یاد گرفتم اما صادقانه بگویم، فکر میکنم راهنما و آموزش elisp (که همراه خود راهنمای emacs است) بسیار بهتر از روشی است که من استفاده کردم. (به هر حال اگر دوست داشتید میتوانید کتاب پر غلط و قدیمی Glickstein من را به امانت بگیرید).
- میتوانید با استفاده از این دستورات به آموزش همراه elisp برسید: C-h I d m emacs lisp intro RET
- میتوانید با استفاده از تایپ کردن این دستورات به راهنمای همراه elisp برسید: C-h I d m elisp RET
- میتوانید با تایپ کردن دستورات روبرو به راهنمای همراه ایمکس برسید: C-h I d m emacs RET
در اینجا به توضیح دستورات فوق میپردازیم تا بهتر متوجه شوید که هر بخشی مربوط به کجاست:
C-h I
- رابط ایمکس را به info، سیستم مستندسازی گنو وارد میکند.
D
- به منوی ریشهی info وارد میشود (در شرایطی که شما کاملا در جای دیگری از info قرار دارید)
m emacs RET
- آیتم منوی info به اسم emacs را باز میکند.
برای کمک گرفتن از حرفهایهای مهربان هم میتوانید از کانال IRC ایمکس به آدرس #emacs روی freenode مراجعه کنید. در حقیقت ممکن است مایل باشید از داخل ایمکس به IRC متصل شوید! چندین کلاینت IRC وجود دارد، به خصوص دو تایی که با خود ایمکس میآیند.