السلام عليكم ورحمة الله وبركاته
* مُقدمة :
برامج تحرير الشفرات المصدرية هي البرامج التي يستخدمها المبرمج والمطور في عملية كتابة الشفرات البرمجية، وتعتبر الأداة الأولى من أدوات المبرمج؛ لما تقدمه له من تسهيل عملية كتابة الشفرة، وتلوينها، وتعديلها، وإكمال أجزاء منها، ترجمتها وغيرها. وفي هذه السلسلة من المقالات سوف أعرض لواحد من تلك البرامج الخفيفة القوية وهو برنامج
Gedit، والذي يأتي كمحرر افتراضي لبيئة سطح المكتب
گنوم، في محاولة لعرض مميزات هذا المحرر الذي يحتوي علي العديد من الخصائص التي تجعله بيئة تطويرية قوية للمبرمج.
سأعتمد في هذه المقالات بأذن الله على مشروع
القاموس التقني المقدم من فريق
عرب آيز في تعريب المصطلحات البرمجية، وان كنت قد لا ألتزم ببعض التعريبات الموجودة فيه؛ نظرًا لعدم إستقرار رأي المعربين على بعض المصطلحات أو لأنها قد يوجد لها تعريب أفضل. في نهاية هذه السلسلة سأضع إن شاء الله ملف نصي للمصادر التي أعتمدت عليها في كتابة هذه المقالات، والتي أسأل الله أن تكون مفيدة لكل من يطلع عليها.
* مُحررات النصوص :
قبل البدء في الحديث عن محررات الشفرات، سنلقي نظرة سريعة على محررات النصوص العادية كمدخل لمحررات الشفرات، فبرامج تحرير النصوص “Text Editors” هي نوعية من البرامج صُممت في الأساس لكتابة وتحرير النصوص والفقرات البسيطة، ويرجع تاريخ
أول محرر نصوص إلى الستينات من القرن الماضي، ومع الوقت تطورت محررات النصوص لتنتقل من شاشة سطر الأوامر السوداء التي كان لابد من إدخال الأوامر بها للقيام بمهام بسيطة – مثل : فتح ملف وإغلاقه والقيام ببعض التعديلات البسيطة عليه أو حفظه – لتصل إلى ما وصلت إليه الآن من واجهة رسومية و سهولة في تحرير النصوص والفقرات وتصحيح ما بها من أخطاء إملائية، كما تُستخدم أيضًا في تحرير ملفات إعدادات النظام “Configuration Files”، أو كتابة وتحرير الشفرات المصدرية.
كما ذكرنا ان برامج تحرير النصوص تستطيع تحرير الفقرات والنصوص، إلا انها ذات إمكانيات محدودة إذا أردنا تنسيق مقالة وتهيئتها بصورة إحترافية من حيث التنسيق العام للشكل من حيث نوع الخط وحجمه، جعله عريضًا أو رفيعًا، إضافة إطارات وصور، تلوين النص، تهيئته و طباعته بمقاسات معينة، في هذه الحالة لن تفيدك برامج تحرير النصوص و ستحتاج إلى برنامج مُعالجة الكلمات “Word Processor”، والتي منها علي سبيل المثال : برنامج Writer الموجود في حزمة الـ OpenOffice، برنامج Kword في الحزمة Koffice أو برنامج AbiWord المنفرد، أو أي برنامج آخر لمعالجة النصوص، فهو سيوفر لك إمكانيات أكبر في تعديل النص وتنظيمه وعرضه بصورة افضل من محررات النصوص.
محررات النصوص تأتي بصورة أساسية مع أنظمة التشغيل و
واجهات الإستخدام، فنجد على سبيل المثال أن نظام الـ Mac يأتي بمحرر افتراضي هو
TextEdit، واجهة الگنوم تأتي بمحرر Gedit، والأنيقة KDE تاتي بمحرر
Kate، أما نظام الويندوز فيأتي بمحرر بسيط هو الـ
Notepad.
Gedit
Kate
TextEdit
Notepad
* الفرق بين مُحرر النصوص ومُحرر الشفرة المصدرية :
محرر الشفرة المصدرية – “Source Code Editor” – عبارة عن محرر صُمم بإمكانيات لتساعد المبرمج على أداء عمله البرمجي، فنجدها تدعم إبراز الصياغة Syntax highlighting للكثير من لغات البرمجة – تلوين الشفرة -، ترقيم السطور، دعمها للملحقات ” Plugins “، وغيرها من الخصائص والتي لا تتواجد في محررات النصوص العادية، والأمثلة بالأعلى بإمكاننا أن نطلق عليها بأنها محررات شفرات برمجية؛ لما تحتويه من هذه الخصائص وغيرها عدا الـ Notepad والذي يُستخدم كمحرر نصوص؛ لإفتقاره للخصائص المذكورة وغيرها . لذا فأغلب محررات النصوص الحديثة يمكن ان يُطلق عليها بأنها محررات شفرات.
وإضافة لهذه الأمثلة، يوجد الكثير من محررات الشفرات الأخرى والتي منها علي سبيل المثال :
*
jEdit : واحد من أقوى 5 محررات مفتوحة المصدر، تم كتابته بالـ
Java، ويدعم الكثير من المميزات الرائعة، بجانب دعمه لما يقارب من 130 لغة برمجة. يتميز البرنامج عن غيره بوجود مدير للإضافات بداخله “Plugin Manager”، يتيح لك تحميل الإضافات – وتحديثاتها إن وجدت – من موقع البرنامج دون الحاجة إلى جلبها وإضافتها يدويًا – وقت كتابة هذه المقالة كان هناك 178 إضافة متاحة للتحميل -، وتمكنك هذه الإضافات القوية من تحويل البرنامج من مجرد محرر للشفرات إلى بيئة تطوير متكاملة “
IDE“، تحتوي على مترجم للشفرات، تصحيح الأخطاء البرمجية، تكملة للشفرة البرمجية لبعض اللغات. البرنامج نتاج تطوير مئات من المبرمجين ويحتوي على مزيد من الخصائص. من
هنا تستطيع الوصول للتوثيق الرسمي للتعامل مع البرنامج.
*
SciTE : مُحرر تم بنائه اعتمادًا علي مكتبة تدعي
Scintilla، تمت كتابتها بالـ ++C والـ GTK، طُورت لكتابة وتحرير وتصحيح الشفرات البرمجية، وأعتمد عليها كثير من برامج تحرير الشفرات البرمجية والبيئات التطورية المتكاملة المشهورة مثل Notepad++ – Anjuta – Geany. وهو محرر خفيف و سريع وقوي، تنقسم شاشته إلى جزء لكتابة الشفرة وجزء لرؤية ناتج تنفيذ الشفرة وإظهار رسائل الخطأ التي تظهر ان وجدت. يعتمد البرنامج على لغة
Lua لكتابة أمتدادات له Extensions، لإضافة خواص جديدة للمحرر أواللغات التي يدعمها من تلوين الشفرة أو شكلها أو التكملة للشفرة في بعض اللغات، فتعطي للبرنامج قوة كبيرة ليخصصه المبرمج كما يريد- أطلع من
هنا على مجموعة من الأمتدادت لتطوير البرنامج بشكل كبير – .
*
Komodo Edit : محرر مفتوح المصدر ومجاني تم بنائه علي منتج تجاري وهو
Komodo IDE، تم بنائه عن طريق مشروع يدعى
Open Komodo، وهو المسئول عن تطوير البرنامج. تم الإعتماد على مكتبة Scintilla في بناء المحرر، وهو يدعم تقريبًا كل لغات الاسكربت المعروفة، بجانب لغات تطوير الويب بالإضافة إلى إطار تصميم تطبيقات الويب
جانكو و
CakePHP.
* مُحررات نافذة سطر الأوامر :
بجانب هذه الأمثلة من المُحررات ذات الواجهة الرسومية، هناك أيضًا مُحررات تُستخدم عن طريق نافذة سطر الأوامر “Console Based Editors”، التي لا توجد لها نافذة رسومية، حيث تُستخدم لوحة المفاتيح في هذه المحررات لكتابة أوامر فتح وتعديل وحفظ وإغلاق الملف وغيرها. وتتميز عن الواجهة الرسومية بأنها أخف من حيث استهلاك الذاكرة وسرعة تنفيذ الأمر، وبإستخدامها ستعرف الكثير من إختصارات لوحة المفاتيح. لعل من أشهر الأمثلة على محررات نافذة سطر الأوامر هو
Vim، والذي طُور عن طريق
Bram Moolenaar؛ إعتمادًا على محرر آخر يُدعى
Vi فيُعتبر إمتداد وتطويرًا له؛ لإضافة خواص تساعد على تحرير الشفرات البرمجية، بجانب تحرير النصوص العادية وملفات إعدادت النظام وغيرها. وكلمة Vim هي إختصار لـ Vi Improved، وهي أداة قوية تمت كتابتها بالـ
C و الـ
Vim Script، وهي لغة سكربت خاصة بالبرنامج تُستخدم لتطويره. يوجد إصدارة من البرنامج بواجهة رسومية تدعى gVim – تمت كتابتها بمكتبات الـ
2+GTK – إلا انه يُستخدم بصورة رئيسية من خلال سطر الأوامر.
بعض الفروق التي تميز Vim عن Vi :
1- يعمل على كل الأنظمة المعروفة تقريبًا وغير المعروفة : Linux – Windows – Dos – Macintosh – BeOS – OS/2 وغيرها .
2-يحتوي على مدقق إملائي.
3- يدعم تلوين الشفرات لكثير من اللغات المشهورة، و تكملة الشفرات لبعض اللغات.
4- يدعم الإضافات باستخدام لغة الـ Vim Script ولغات الإسكربت المعروفة Ruby – Python – Perl – Lua – Shell وغيرها.
5- إمكانية تعديل ملفات بداخل حزم مضغوطة.
6- يدعم عرض العربية بداخل نافذة سطر الأوامر والواجهة الرسومية (لبرامج النوافذ التي تدعم العربية).
بالإضافة لـ Vim، يوجد أيضًا العديد من المحررات الأخرى مثل :
Nano ,
Diakonos
Vim
Nano
Diakonos
ومن الجدير بالذكر ان Diakonos قـد تم كتابته بالـ Ruby، وهو يدعم تلوين الشفرات للعديد من اللغات مثل : Java , Ruby , Python , XML , CSS
* مُقدمة تعريفية بـ Gedit :
برنامج
Gedit هو أحد برامـج مُحررات النصوص والشفرات القوية والخفيفة بالنسبة لإستهلاك الذاكرة، حيث يأتي كمحرر أساسي لبيئة سطح المكتب
گنوم . تم تطويره بواسطة كل من :
Paolo Maggi , Paolo Borelli , Federico Mena , Chema Celorio , James Willcox
حيث تمت كتابته بالـ
C وبعض من الـ
Python؛ إعتمادا علي مكتـبات الـ+GTK و
مكتبات الـگنوم
ملحوظة : بامكانك معرفه المزيد عن مكتبات الـ +Gtk، عن طريق مقالة مميزة قام بكتابتها الأخ فهد السعيدي من هنا أو تحميلها بصيغة PDF من هنا .
علي الرغـم من بساطة واجهة الـ Gedit إلا أنه يأتي بالعديد من المميزات :
• دعـم الأمور الأساسية لأي محرر كـ( القص واللصق والنسخ والتراجع عن اخر خطوة )
• دعمه لتلوين الشفرات البرمجية للكثير من اللغات والتي منها :
Ruby , Java , C , C++ , Python , PHP , Tcl , C# , SQL , Lua , Pascal , XML , CSS , HTML , Shell Script
• ملخص يعطيك عدد الحروف والكلمات والأسطر
• ترقيـم السطور
• دعمـه لتحـرير العديد من الملفات في نـافذة واحدة Taps
• دعمـه للغات التي تُكتب من اليمين الي اليسـار (العربية – العبرية)
• يدعـم خاصية الطباعة والعرض قبل الطبع
•دعمه لخاصية البحث وإستبدال الكلمات والذهاب لسطر معين
• تعديل نوع الخط المستخدم في القراءة و الكتابة
• أخـذ نسخة إحتياطية من الملف بصورة مستمرة دون تدخل منك
• إمكانيـة فتح أي ملف يدعم البرنامج امتداده من رابط بطريقة مباشرة دون الحاجة لتنزيل الملف
• وجود مدقق إملائي للغة الإنگليزية
• الـ Plugins، و هي عبارة عن برمجيات صغيرة يتـم تركيبها داخل البرنامج لدعم خيارات جديدة به
* مميزات البرنامج تفصيلًا :
تتسم واجهة البرنامج بالبساطة وعدم وجود كثير من الخيارات مما يُعطي للمستخدم للوهله الأولي بأنه لا يحتوي علي الكثير من المميزات او الخواص .
واجهة البرنامج الرئيسية
– تحتوي الواجهة الرئيسية للبرنامج على مجموعة من الخيارات والقوائم التي سنتناولها بالشرح بأذن الله :
1- Menubar ( شريط القوائم ) : يحتوي هذا الشريط علي مجموعة من القوائم التي تحوي كل الأوامر التي تستخدمها للتعامل مع البرنامج .
2- Toolbar ( شريط الادوات ) : يحتوي علي مجموعه من الاوامر للتعديل علي الملف , وهي عباره عن اختصارات خارجيه للأوامر الموجوده في شريط المهام .
3- Side pane ( الجانب الفرعي ) : يحتوي علي الملفات المفتوحه حالياً , بجانب بعض ايكونات بعض الـ Plugins .
4- Display area ( منطقه العرض ) : المكان المخصص لكتابه النصوص او الأكواد .
5- Statusbar ( شريط الحاله ) : ويعرض لك رقم السطر والعمود الذي تقف عليه بمؤشر الفأره الآن , واذا نظرنا الي يمين الشريط نجد ان هنـاك كلمه INS , ويعني ان البرنامج الان في حاله الـ Insert mode اي وضع الادخـال , والذي بأمكانك تغييره الي الوضع OVR – والتي تعني Overwrite Mode – عن طريق الزر Insert الموجود لديك علي لوحة المفاتيح , ولكن ما معني الـ Insert mode والـ Overwrite mode ؟
@ مُعظم برامج معالجه الكلمات وبرامج تحرير النصوص يحتويان علي هاتان النوعيتان من عمليات الأدخال:
* الـ Insert mode : هي عمليه ادخال الحروف من لوحه المفاتيح الي الملف , ونجد ان مؤشر الفأره مع كل ضغطة زر يعمل علي طبعه ثم يترك مسافه للأمام , وبأمكاننا في هذه الحاله الرجوع للخلف ووضع حرف بين الأحرف السابقه .
* الـ Overwrite mode : علي عكس الحاله السابقه فأنك لو رجعت للخلف ووضعت حرف نجد ان الحرف الذي قمت بالوقوف عليه قد تم حذفه و استُبدل بالحرف الجديد .
6- الملفات المفتوحه Taps .
– وقبل البدء في شرح كل قائمه وشريط علي حدا سوف اقوم بعرض اختصارات لوحه المفاتيح للبرنامج :
# اختصارات البحث داخل الملف
* Ctrl+F : للبحــث عن كلمـه معينـه .
* Ctrl+G : للذهاب الي النتيجه التاليه من نتائج البحث .
* Ctrl+Shift+G : للذهاب الي النتيجه السابقه من نتائج البحث .
* Ctrl+I : للذهـاب الي سطـر معين .
* Ctrl+H : للبحث عن كلمه معينه او نص معين واستبداله بـاخر .
* Ctrl+K : بحث تفاعلي ,بمعني انه بمجرد ان تضغط علي حرف معين يقوم بتظليل جميع الكلمات التي تحتوي علي هذا الحرف الي أن ينحصـر البحث في كلمه واحده .
* Ctrl+Shift+K : عندما نقوم بالبحث عن كلمه معينه فان جميع النتائج تُظلل , فنستخدم هذا الاختصار لحذف التظليل عن النتائج .
# اختصارات تحرير الملف :
* Ctrl+N : لتقـوم بانشـاء ملف جديد .
* Ctrl+O : لفتـح ملف تم انشاءه من قبل .
* Ctrl+I : لفتـح ملف من سايت معين .
* Ctrl+S : لحفـظ التغيـرات علي الملف .
* Ctrl+Shift+S : لحفـظ الملف بالتغيرات الجديده في ملف جديد .
* Ctrl+P : لطبـع الملف عن طريق الطابعـه او بصيغة PDF ( سيتم شرح هذه الطريقه بالتفصيل في شريط القوائم ) .
* Ctrl+Shift+P : لعرض الملف اولاً بالصـوره التي سيتـم طبعـه عليهــا للتـاكد منها .
* Ctrl+W : اغـلاق الملف الحالي .
* Ctrl+Q : للخروج من البرنامج .
# اختصارات التعديـل علي الملف
* Ctrl+Z : التراجع عن اخر خطوه قمت بتنفيذها ككتابة كلمه بطريقه خاطئه .
* Ctrl+Shift+Z : عكس الأمر السابق ,بمعني انه اذا قررت التراجع عن اخر خطوه قمت بتنفيذها وقمت بالضغـط علي Ctrl+Z فتستطيع ارجاعها مرة اخري عن طريق هذا الأختصار .
* Ctrl+C : اخذ نسخـه من النص او الكـود وذلك بعد القيــام بتظليله .
* Ctrl+X : القيـام بقص كلمه او نص بعد تظليله .
* Ctrl+V : القيام بلصق الكلمه او النص .
* Ctrl+A : تظليل النص بالكامل .
* Ctrl+D : حذف السطر الذي تقف عليه الآن .
# اختصارات التحكم بالملفات المفتوحه ( Taps )
* Ctrl+Alt+PageDown : للتنقل بين الملفات المفتوحه ناحية اليسار .
* Ctrl+Alt+PageUp : للتنقل بين الملفات المفتوحه ناحيه اليمين .
* Ctrl+W : إغلاق الملف المفتوح حالياً بالبرنامج .
* Ctrl+Shift+W : لغلق جميع الملفات المفتوحه بالبرنامج امامك .
* Ctrl+Shift+L : حفظ التعديلات علي جميع الملفات .
____________________________________________________
أنتهى الجزء الأول بحمد الله