آموزش Emacs ایمکس، ادیتوری برای همه ی نیازها!

“Emacs ادیتوری قابل گسترش، شخصی سازی، خود راهنما و Real time است.”

این شعار ایمکس است! ولی مثل تمام شعارها نباید بدون دلیل آن را پذیرفت. برای اینکه بتوانید این شعار را قبول کنید هر قسمت از این شعار را در یک مقاله توضیح خواهم داد. ولی برای شروع امکانات عمومی این ادیتور را در این مقاله قرار خواهم داد چون اساساً کار کردن با این نوع از ادیتور ها برای ما ایرانی ها که علاقه ی چندانی به برنامه های متن باز نداریم نا مانوس است.

فهرست مطالب این مقاله:

  • تاریخچه ی ایمکس
  • اطلاعاتی عمومی درباره ی ایمکس
  • زبان هایی که ایمکس به طور پیشفرض پشتیبانی میکند
  • نحوه ی دریافت و نصب ایمکس برای ویندوز
  • توضیحاتی راجع به عملکرد کلید ها و shortcut ها در ایمکس
  • مدیریت پنجره ها و فریم های ایمکس
  • استفاده اولیه از راهنمای ایمکس

تایخچه ی ایمکس

نام ایمکس از عبارت انگلیسی Editor MAcroS (به معنی ماکروهای ویرایشگر) برای ویرایشگر تیکو برگرفته شده‌است. این ماکروها نخستین بار توسط ریچارد استالمن نوشته و توسط گای استیل، دیْو مون، ریچارد گرینْبْلَت و چارلز فرنکْسْتون و دیگران به هم چفت‌وبند شد. نسخه‌های گوناگونی از ایمکس در طول سالیان به وجود آمده‌اند اما امروز از دو گونهٔ اصلی آن استفاده می‌شود: گنو ایمکس و ایکس‌ایمکس که در واقع شاخه‌ای جداشده از گنو ایمکس است. ایکس‌ایمکس ۱۹۹۱ میلادی رشد مستقل خود را آغاز کرد. با این حال تا به امروز تا حد بسیار زیادی با گنو ایمکس همخوانی دارد. پروژهٔ گنو ایمکس توسط خود استالمن در تاریخ ۱۹۸۴ آغاز به کار کرد و تا سال ۲۰۰۸ وظیفهٔ نگهداری از کد آن به عهدهٔ استالمن بود و پس از آن به Stefan Monnier و Chong Yidong داده شد. زبانی که برای گسترش امکانات ایمکس از آن استفاده می‌شود گویشی خاصی از زبان برنامه‌نویسی لیسْپ به نام لیسپ ایمکس است.

به نقل از ویکیپدیا فارسی

اطلاعاتی عمومی درباره ی ایمکس

ایمکس ادیتوریست که با داشتن بیش از ۲۰۰۰ دستور به صورت پیشفرض امکانات فوق تصوری را برای کاربران خود فراهم میکند. به همین دلیل هم توانسته است طرفداران زیادی را در بین کاربران به خصوص برنامه نویسان برای خود دست و پا کند.

باید توجه داشت که ایمکس صرفاً برای نوشتن متن طراحی نشده است و چون قابلیت گسترش فراوانی دارد در حال حاظر حتی امکاناتی چون برنامه نویسی، ویرایش فایل های Tex، چت، دریافت اخبار، خواندن ایمیل ها، مرور کردن اینترنت، تقویم فارسی(!)، بازی(!) و حتی مشاوره(!) در امور زندگی را در اختیار شما قرار میدهد.

شاید شما امکاناتی که نام برده شد را به صورت جداگانه در برنامه های مختلف دیده باشید، ولی ویژگی منحصر به فرد این ویرایشگر این است که تمام این امکانات را در یک برنامه به شما ارائه میکند و البته کیفیت کار و راندمان کار شما در ایمکس با کیفیت و راندمان کارتان در ادیتور های دیگر قابل مقایسه نخواهد بود. احتمالاً برای شما پیش آمده که در هنگام تایپ در یک ادیتور به مشکلی برخورده اید که در یک ادیتور دیگر به راحتی قابل رفع است، و آرزو کرده اید که ای کاش این ادیتور هم میتوانست مثلاً با استفاده از Regexp عملیات جستجو را انجام دهد.

ایمکس ادیتوریست که با آن هرگز این آرزو را نخواهید کرد! زیرا یا امکانات مورد نظر شما در این ادیتور به طور پیشفرض موجود است، یا میتوانید آن را با استفاده از یکی از پکیج های بیشمار ایمکس به آن اضافه کنید و یا در شرایط بسیار نادر آن را خودتان به ایمکس اضافه کنید.

زبان هایی که ایمکس به طور پیشفرض پشتیبانی میکند

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

لیست پکیج های نصب شده به صورت پیشفرض (در رابطه با برنامه نویسی) و توضیحاتی کوتاه در مورد آنها (در مورد مودهای ایمکس در مقالات بعدی توضیح خواهم داد):

  • Hideshow: مود ماینور برای نمایش و مخفی کردن بلوک های کامنت و کد برنامه
  • Lisp: پشتیبانی از زبان های Lisp و Elisp
  • C: پشتیبانی برای زبان C و زبان های مرتبط
  • Postscript: مود Postscript برای ایمکس
  • Ada: مود ماژور برای ویرایش و کامپایل سورس Ada در ایمکس
  • Antlr: مود ماژور برای فایل های گرامری ANTLR
  • Asm: مود ماژور برای ویرایش کد Assembly
  • Cfengine: مودی برای فایل های Cfengine
  • Cperl: مود ماژور برای ویرایش کد Perl
  • Css: مود ویرایش فایل های CSS
  • Dcl: مود ماژور برای ویرایش فایل های دستور DCL
  • Delphi: مود ماژور برای ویرایش سورس Delphi در ایمکس
  • F90: مود ماژور برای ویرایش کد فرمت آزاد Fortran 90 ,95
  • Fortran: مود ماژور برای ویرایش کد فرمت ثابت Fortran
  • Icon: مود ویرایش کد Icon
  • IDLWAVE: مود ماژور برای ویرایش فایل های IDL .pro
  • Info Lookup: مود ماژور ایجنت حساس راهنما
  • JavaScript: متغیر های شخصی سازی برای مود Javascript
  • Ld Script: دستورات ویرایش کد GNU Linker
  • M4: دستورات ویرایش کد M4 برای ایمکس
  • Meta Font: مود ماژور برای ویرایش سورس Metafont یا MetaPost
  • Modula2: مود ماژور برای ویرایش کد Modula-2
  • Nxml: مود ویرایش جدید XML
  • Octave: مود ماژور برای ویرایش سورس Octave
  • Pascal: مود ماژور برای ویرایش سورس Pascal
  • Perl: مود ماژور برای ویرایش سورس Perl
  • Prolog: مود ماژور برای ویرایش و اجرای دستورات Prolog در ایمکس
  • Python: مود ماژور برای ویرایش سورس Python
  • Relax Ng: معتبر سازی XML با استفاده از RELAX NG
  • Sgml: مود ویرایش SGML
  • Sh: ابزار های برنامه نویسی Shell
  • Sieve: مدیریت script های Sieve
  • Simula: مود ماژور برای ویرایش سورس Simula
  • Smie: موتور ساده ی تو رفتگی (indentation)
  • Tcl: مود ماژور برای ویرایش سورس Tcl در ایمکس
  • Vera: شخصی سازی برای مود Vera
  • Verilog Mode: فراهم سازی ویرایش آسان برای سورس Verilog
  • Vhdl: شخصی سازی برای مود VHDL

نحوه ی دریافت و نصب ایمکس برای ویندوز

برای دریافت ایمکس اینجا کلیک کنید و در انتهای صفحه، روی یکی از لینک ها که شبیه به عبارت emacs-xx.x-bin-i386.zip کلیک کنید. (x ها نشان دهنده ی نگارش های مختلف ایمکس هستند.)

پس از اتمام دانلود، فایل زیپ را در مسیر دلخواه Extract کرده، در شاخه ی emacs-xx.x وارد شاخه ی bin شوید و روی runemacs.exe دابل کلیک کنید. ایمکس شما در حال اجراست!

توضیحاتی راجع به عملکرد کلید ها و shortcut ها در ایمکس

ایمکس به دلیل داشتن توابع بسیار، دارای کلید های shortcut بسیاری نیز هست. هر یک از این ترکیبات یک تابع مشخص شده را فراخوانی و اجرا میکند.

این کلید های shortcut اساساً از ترکیب کلید های کنترلی (مانند کلید های کنترل، شیفت، آلت و اسکیپ) با کلید های دیگر تشکیل میشوند. به هنگام تایپ کردن این کلید های ترکیبی، میتوانید نام کلید فشرده شده را در قسمت Minibuffer ملاحظه نمایید. (مینی بافر قسمت کوچکی در پایین پنجره ایمکس است که اموری مانند نمایش پیام های کوتاه برنامه، نمایش فعالیت فعلی، ترکیبات کلید ها و دریافت دستورات و پارامتر ها در آن صورت میگیرد) نحوه نمایش این ترکیبات برای مثال به این صورت است: C-x C-s

در مثال بالا ‘C’ نمایانگر کلید کنترل است، ‘-‘ نشاندهنده ی همزمان فشرده شدن کلید با کلید بعدی و ‘x’ هم کلیدیست که همزمان با کلید کنترل فشرده شده است. C-s هم نشان دهنده ی این است که پس از ترکیب کنترل و x ترکیب کنترل و s فشرده شده است. این ترکیبات حداکثر تا سه ترکیب ممکن است ادامه داشته باشد.

توجه کنید که کلید Alt در ایمکس به نام Meta شناخته شده و با ‘M’ نمایش داده میشود و این به خاطر این است که ایمکس به جز PC بر روی کامپیوترهایی از انواع دیگر نیز استفاده میشود که ممکن است به جای کلید Alt کلیدی با نام دیگر داشته باشند.

غیر از کلید های صفحه کلید، از ترکیبات کلیدهای موس هم در ترکیبات ایمکس استفاده میشود که با نام هایی مانند <mouse-1> نمایش داده میشوند.

میتوانید با باز کردن منوهای یرنامه، کلید های ترکیبی مشخص شده برای هر آیتم در منو را در جلوی آن مشاهده کنید. البته برای مشاهده ی لیست تمامی ترکیبات کلیدها میتوانید با فشردن C-h b لیست ترکیبات کلیدیی را که در بافر فعلی فعال هستند را به همراه نام تابعی که اجرا میکنند را ببینید. در صورتی که اشتباهاً ترکیبی را وارد کرده اید، میتوانید با سه بار فشردن کلید ESC و یا با C-g ترکیبات وارد شده را لغو کنید.

ترکیب های مربوط به عملیات Cut Copy Paste (در فرهنگ ایمکس: Kill Copy Yank) با ترکیباتی که کاربران برنامه های ویندوزی با آن عادت دارند متفاوت است. این ترکیبات در ایمکس از این قرار است:

Cut: C-w, Copy: M-w, Paste: C-y

توصیه میشود که از این ترکیبات استفاده کنید ولی اگر ترک عادت موجب مرض میشود میتوانید با انتخاب گزینه ی

C-x/C-c/C-v Cut and Paste (CUA)

از منوی Options از همان ترکیبات برنامه های ویندوز برای این اعمال استفاده کنید.

در مورد چگونگی تغییر دادن این ترکیبات، ایجاد ترکیبات جدید، دریافت راهنما در مورد ترکیبات و توابع در بخش های بعدی مقاله بیشتر توضیح خواهم داد.

مدیریت پنجره ها و فریم های ایمکس

پنجره ی اصلی ایمکس قادر است بنا به نیاز کاربر به صورت عمودی یا افقی به چندین قسمت مختلف برای نمایش بافر های مختلف تقسیم شود. (بافر اساساً اطلاعاتی است که از یک منبع خوانده شده و در حال حاضر در حافظه موجود است. این اطلاعات میتواند محتویات یک فایل، یک ارتباط اینترنتی، یک بافر موقتی با هر نوع دیگر از اطلاعات باشد.)

در فرهنگ لغات ایمکس پنجره (Window) به بخشی از برنامه گفته میشود که محتویات یک بافر را نمایش میدهد و به مجموعه ی بافرها، منوها، نوار ابزار و حاشیه ها یک فریم (Frame) یا قاب گفته میشود.

برای تقسیم پنجره به صورت افقی از ترکیب C-x 2 استفاده کنید.

برای تقسیم پنجره به صورت عمودی از ترکیب C-x 3 استفاده کنید.

برای تمام صفحه کردن پنجره فعلی از ترکیب C-x 1 استفاده کنید.

برای ایجاد یک فریم جدید از ترکیب C-x 5 2 استفاده کنید.

برای بستن یک فریم از ترکیب C-x 5 0 استفاده کنید.

برای تغییر بافر یک پنجره، کلید کنترل را نگه داشته و ردی پنجره ی مورد نظر کلیک کنید و از منوی لیت بافر های ظاهر شده، بافر مورد نظر را انتخاب کنید و یا از منوی Buffer موجود در فریم، بافری را انتخاب کنید.

استفاده اولیه از راهنمای ایمکس

در زیر چند ترکیب مفید که میتواند برای یادگیری ایمکس بسیار مفید باشد را میبینید. این ترکیبات به طور پیشفرض در منوی Help برنامه موجود است:

C-h t: آموزش گام به گام ایمکس در خود برنامه که دستورات و ترکیبات اولیه را با تمرین و مثال به کاربر مبتدی می آموزد.

C-h m: توضیحاتی راجع به مود ماژور و مود های مینور در بافر فعلی به شما ارائه میکند.

C-h k: با وارد کردن ترکیب کلید ها اطلاعاتی راجع به عملکرد کلید و تابعی که ترکیب مورد نظر اجرا میکند به کاربر ارائه میکند.

C-h f: نمایش راهنمای توابع با وارد کردن نام تابع. توجه: در هنگام وارد کردن نام تابع پس از وارد کردن بخشی از نام مثلاً ‘delete’میتوانید با فشردن کلید Tab لیستی از توابعی که نامشان با ‘delete’ شروع میشود را ببینید و یا با وارد کردن ‘*’ قبل از نام عبارت ‘delete’ لیستی از نام تمام توابعی که عبارت ‘delete’ در آنها موجود است را ببینید.

C-h r: نمایش فایل راهنمای ایمکس که شامل اطلاعات بسیار مفید و طبقه بندی شده در مورد مسائل مختلف مربوط به ایمکس است.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *