الأحد، 28 أغسطس 2005

نظرة على بعض المحررات النصية

إسأل خمسة مهوسيين بالحاسوب عن أفضل محرر نصي وستحصل على عشرة إجابات، أو قد تبدأ معركة بينهم حول لماذا المحرر النصي الفلاني الذي أستخدمه أفضل من محررك النصي؟ أما المستخدمين العاديين، أعني أولئك الذين لا يستخدمون الحاسوب إلا كأداة فقط وليس هوساً، ففي الغالب سيجيبون بأنهم لا يستخدمون أي محرر نصي، أو يستخدمون مايكروسوفت وورد فقط، وهو ليس محرراً نصياً.

لماذا الحديث عن المحررات النصية؟ لأن المتخصصين في الحاسوب يحتاجون المحررات النصية كل يوم لإنجاز الكثير من المهام، لننظر مثلاً إلى مطوري المواقع، المحررات النصية تساعدهم على تحرير ملفات HTML وCSS وجافاسكربت وربما PHP وربما ملفات إعدادات المزود، هؤلاء المطورين يتعاملون مع الملفات النصية يومياً ومن الأفضل لهم أن يبحثوا عن محرر نصي يساعدهم على إنجاز ما يريدون بأقل وقت وجهد.

لننظر كيف قام المبرمجون بإنشاء محررات نصية تناسبهم.

### جنو إيماكس (GNU Emacs)
[إيماكس](http://www.gnu.org/software/emacs/) ليس مجرد محرر نصي، وهو بالتأكيد ليس برنامجاً يمكن تعلمه خلال دقائق، هذا البرنامج عمره الآن 21 عاماً تقريباً، برمجه [ريتشارد ستالمن](http://en.wikipedia.org/wiki/Richard_Stallman) انطلاقاً من فكرة تطوير محرر نصي آخر اسمه [تيكو](http://en.wikipedia.org/wiki/Text_Editor_and_Corrector)، كان تيكو يستخدم في مختبرات أم آي تي، وطور ستالمن له برامج "ماكرو" مختلفة، هذه البرامج الصغيرة تختصر العديد من المهمات، عندما قام ستالمن بإنشاء منظمة البرامج الحرة كان أول برنامج يقوم بإنشاءه هو محرر إيماكس الذي اقتبس أفكاراً كثيرة من تيكو.

إيماكس مبرمج بحيث يمكن إضافة المزيد من الخصائص له، ويمكن تعديله بشكل كامل ليتناسب مع احتياجات المستخدم، لذلك يمكن للمستخدم أن يعتمد كلياً على إيماكس لإنجاز كل شيء يريده من حاسوبه، يمكنه في إيماكس أن يتصفح المواقع، يقرأ البريد الإلكتروني، بالتأكيد يكتب البرامج وبمختلف اللغات، يستمع إلى ملفات MP3، يدردش في قنوات IRC، يستهلك بعض وقته في الألعاب، ينظم وقته ومواعيده، يقوم بإنشاء ويكي خاص به، السؤال ليس "ماذا يمكن لإيماكس أن يفعل؟" بل "ما الذي لا يستطيع إيماكس أن يفعله؟" بعض مستخدمي إيماكس يعتبرونه نظام تشغيلهم الخاص ولينكس مجرد نواة للتعامل مع الجهاز.

إيماكس لا يأتي تلقائياً مع كل هذه الخصائص، فكيف يستطيع المستخدمون إضافتها؟ إيماكس يحوي في داخله لغة برمجة هي [إيماكس لسب](http://en.wikipedia.org/wiki/Emacs_Lisp) التي يستطيع المستخدم من خلالها توسيع خصائص إيماكس وتغييرها لتتناسب مع احتياجاته، هذه اللغة استخدمت لإنشاء برامج تعمل في إيماكس، مثل برنامج [منظم المعلومات الشخصية](http://sacha.free.net.ph/notebook/wiki/PlannerMode.php)، وبرنامج آخر [لقراءة البريد الإلكتروني](http://www.wonderworks.com/vm/) وبرنامج [ويكي](http://repose.cx/emacs/wiki/) وغيرها الكثير من البرامج والألعاب.

لقراءة المزيد حول إيماكس:

* إيماكس في [ويكيبيديا](http://en.wikipedia.org/wiki/Emacs).
* [ويكي إيماكس](http://www.emacswiki.org/cgi-bin/wiki)
* [إيماكس للمبتدئين](http://www.rootprompt.org/article.php3?article=359)

#### نسخ إيماكس الأخرى
ظهرت العديد من المحررات النصية التي تحاكي إيماكس، وهذه قائمة ببعضها:

* [أكس إيماكس](http://www.xemacs.org/)، نسخة من إيماكس بدأت كمشروع منفصل عن إيماكس في عام 1991م، أضيف لهذه النسخة العديد من الخصائص التي كان يفتقر لها إيماكس والتي وجدت طريقها لاحقاً إليه.
* [زايل](http://zile.sourceforge.net/)، محرر نصي يحاكي أوامر إيماكس، فقط محرر نصي دون أي خصائص أخرى، صغير الحجم (أقل من 400 كيلوبايت).
* [تينتوير](http://tintware.sourceforge.net/index.html)، نسخة من إيماكس تعمل في ويندوز، ماك ولينكس.
* [فريماكس](http://www.freedos.org/jhall/freedos/freemacs/)، نسخة إيماكس مصغرة جداً (21 كيلوبايت فقط)، تعمل في نظام دوس.

### فيم (VIM)
البرنامج المنافس لإيماكس، والطرف الثاني في [حرب المحررات النصية](http://en.wikipedia.org/wiki/Editor_war) التي تدور رحاها إلى اليوم بين محبي ومتعصبي هذه المحررات، عالم مهوسيي الحاسوب غريب بعض الشيء، لديهم استعداد كامل للدفاع عن أدواتهم التي يحبون استخدامها وسيبذلون في سبيل ذلك الكثير من الوقت والجهد! على أي حال، [فيم](http://www.vim.org/) طور على أساس محرر آخر هو [Vi](http://en.wikipedia.org/wiki/Ex/vi) والذي يعتبر المحرر النصي الأساسي لأنظمة يونكس حتى ظهر إيماكس ومنذ ذلك الوقت لم يهدأ الصراع بينهما أو بالأحرى بين المتعصبين لهما.

يتميز فيم بأنه يعتمد على اختصارات سهلة لا يحتاج فيها المستخدم سوى الضغط على حرف واحد في لوحة المفاتيح، على عكس إيماكس الذي يعتمد بشكل كبير على استخدام زر CTRL أو ALT مع الحروف الأخرى.

فيم يختلف عن باقي المحررات النصية في كونه يفصل بين عملية الكتابة والتحرير، ماذا يعني ذلك؟ لكي تكتب عليك أولاً أن تضغط على الحرف i لتدخل في ما يسمى (insert mode) ثم تكتب ما تريد وإذا انتهيت إضغط على زر Esc لتعود إلى حالة (command mode) والتي تتيح لك تحرير وتعديل النص كأن تنسخ بعض الأسطر أو تصحح بعض الكلمات إملائياً أو تتجول في أرجاء ملفك النصي.

فيم يدعم نظام الإضافات، ويحوي موقع فيم الرئيسي على قسم خاص لهذه [الإضافات](http://www.vim.org/scripts/index.php)، وهذه مجموعة من الروابط حول فيم:

* [درس مختصر لاستخدام فيم](http://www.apmaths.uwo.ca/~xli/vim/quickstart.html)
* [ويكي فيم](http://www.vi-improved.org/wiki/)
* [نقاش مفيد حول فيم](http://www.43folders.com/2005/03/remainders_vim_.html)

### المفكرة أو Notepad
هذا البرنامج يأتي مع كل إصدارات ويندوز، محرر نصي بدائي لا يحوي أية خصائص تقريباً، مع ذلك هو المحرر الذي أستخدمه معظم الوقت، لأنه بسيط، سريع وصغير الحجم، وكل مواضيعي التي أكتبها في هذا الموقع كتبتها في المفكرة أولاً ثم نقلتها إلى موقعي.

هناك أناس قاموا بإنشاء [مواقع](http://www.jdrn.com/notepad/) [متخصصة](http://www.notepad.org/) لهذا البرنامجه والبعض قام بإنشاء [بدائل](http://www.flos-freeware.ch/notepad2.html) للبرنامج، لأنهم يريدون المزيد من الخصائص.

حسناً، لم كل هذه الضجة على برنامج لا يحوي أية خصائص تقريباً؟ الجواب هو البساطة، هذا البرنامج يستطيع أن يفتح أي ملف نصي تقريباً، وهو مناسب لمن يريد تعلم كتابة ملفات HTML أو البرامج بدون مساعدة، هكذا يتدرب المرء على إتقان كتابة وتنسيق الأوامر، على أي حال البرنامج ليس كاملاً، فهو لا يستطيع أن يفتح أكثر من ملف واحد، والملفات النصية التي كتبت في أنظمة لينكس ويونكس لن يعرضها بشكل جيد، لأنه لا يفهم أمر السطر الجديد الذي يستخدم في أنظمة يونكس.

### تكست مايت (Textmate)
محرر يعمل في نظام ماك، ويتميز [تكست مايت](http://macromates.com/) بأنه يركز على حاجات المبرمجين، فهناك خاصية snippets التي تختصر على المبرمج كتابة الأوامر، ويستطيع المحرر إدارة المشاريع بحيث يجد المبرمج كل الملفات التي تتعلق بمشروع ما في مكان واحد، وهناك الكثير من المميزات الأخرى التي تجدونها مشروحة بالصور في موقع البرنامج.

### مون إيدت (MoonEdit)
يختلف هذا [البرنامج](http://moonedit.com/) عن غيره بأنه محرر جماعي، ماذا يعني ذلك؟ أي أنه يمكن عدة مستخدمين من المشاركة في تحرير ملف واحد عبر الشبكة، وهناك [درس قصير](http://moonedit.com/tutor.htm) في موقع البرنامج يشرح كيفية عمل جلسة تحرير لملف نصي، برنامج يستحق الذكر لأنه فعلاً مميز.

### أين المحرر النصي العربي؟
هل هناك محررات نصية عربية؟ على حد علمي هناك [كاتوب](http://www.arabeyes.org/project.php?proj=Katoob)، فهل هناك أي محررات أخرى؟ أتمنى أن يخبرني من يعرف أي محرر آخر، نحن بحاجة إلى تشكيلة من المحررات النصية، ما بين البسيطة ذات الخصائص القليلة وحتى الكبيرة ذات الخصائص الكثيرة، يجب أن تدعم اتجاه النص العربي (من اليمين إلى اليسار) بشكل صحيح، يجب أن توفر أدوات لغوية مثل المصحح الإملائي، يجب أن تعرض النص العربي بشكل صحيح أيضاً.

ماذا عن إيماكس وفيم؟ على حد علمي هما يدعمان العربية، لكن لم أستطع شخصياً أن أجعلهما يكتبان بالعربية، فهل يعرف أحدكم كيف نفعل ذلك؟