إد (محرر نصوص)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

إد (بالإنجليزية: ed) محرر نصوص سطري مخصص للعمل على أنظمة يونكس، يعتبر إد واحداً من أوئل البرامج المخصصة لمستخدمي أنظمة الحاسوب على منصات يونكس و يعتبر إد أحد أهم البرامج المعيارية على أنظمة يونكس منذ إطلاق النسخة الأولى منها [1][2] ، كتبت النسخة الأصلية لإد باستخدام مجمـِّع لغة الآلة PDP-11/20 و كان ذلك في عام 1971 على يد كين ثومبسون.

التاريخ والتأثير[عدل]

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

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

g/re/p means globally search for the regular expression re and print the lines containing it

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

الميزات[عدل]

ميزات إد تتضمن:

  • وجوده و بشكل رئيسي على جميع أنظمة يونكس (و بشكل إلزامي في الأنظمة التي تطبق مواصفات يونكس المنفردة).
  • محرر متعدد الوسائط فهو يدعم نمط واجهة سطر الأوامر و النمط النصي بالإضافة إلى نمط الإظهار.
  • دعم التعابير النمطية.
  • دعم قوي للتشغيل الآلي "الأوتوماتيكي" عن طريق أوامر التغذية من قنوات الأدخال المعيارية (Standard Input).

و يشتهر إد باختصاراته في التعامل مع المستحدمين حيث أنه تقريبأ لا يقوم باعطاء نتائج مرئية للوظائف التي يقوم بتنفيذها أو رسائل الأخطاء، على سبيل المثال فإن الرسالة التي يقوم إد بإظهارها في حالة حدوث خطأ معين أثناء تنفيذ أمر هي طباعة الإشارة "?" و كذلك الأمر في حالة التأكد من قيام المستخدم بإنهاء عملية التحرير. و من المعلوم أن إد لا يدعم بشكل تلقائي إظهار إسم الملف المحرر أو سطر النص أو حتى أظهار نتائج التغيير على النصوص إلا في حال تم تحديد ذلك، هذه الإختصارات كانت مناسبة و في مكانها في الإنطلاقات الأولى ليونكس و يرجع السبب في ذلك إلى ضعف العتاد المرئي لأجهزة الحاسوب في ذلك الوقت حيث أنه لم يكن متطوراً كما هو عليه الان بالإضافة إلى أن الذاكرة الرئيسية لم تكن بالحجم المتعارف عليه في الوقت الحاضر من حيث الكم الذي تستطيع تخزينه من البيانات و المعلومات، و لهذا السبب و مع تطور العتاد المرئي لأجهزة الحاسب فقد أصبحت المحررات المرئية هي المحررات المعيارية في الوقت الحاضر. تعد الأستخدامات التفاعلية لإد قليلةً في الوقت الحاضر و لكنه يستخدم في بعض البرامج النصية "Shell Scripts" و يندرج إد تحت محررات النصوص مثل في آي و إيماكس، و نظراً لتواجده في جميع أنظمة يونكس و توزيعات لينكس يعتبر إد محرر النصوص الوحيد الذي يمكن استخدامه في هذه الأنظمة في حالة حدوث خطأ أو في حالة عدم وجود محررات نصوص اخرى في النظام مما يجعل وجوده في هذه الأنظمة ضرورياً بشكل نسبي. تم تقليد أوامر إد و مصطلحاته الوظيفية في عدد من محررات النصوص الأخرى مثل إدلين و ذلك في أنظمة إم إس-دوس القديمة و في أنظمة ويندوز إن تي العاملة على هيكلية 32 بت.

مثال[عدل]

و كمثال لاستخدام إد في تحرير النصوص نسرد المقطع التالي و نرجو الإنتباه إلى أن الأوامر و النصوص التي يكتبها المستخدم تم تمييزها بالخط العادي و مخرجات إد تم تمييزها بالخط الغليظ:

a
إد محرر النصوص المعياري في يونكس.
هذا السطر رقم إثنان.
.
2i
  
.
%l
إد محرر النصوص المعياري في يونكس.$
$
هذا السطر رقم إثنان.$
%l,/ثلاثة/إثنان/
إد محرر النصوص المعياري في يونكس.$
$
هذا السطر رقم ثلاثة.$
w text.txt
54
q

النتيجة النهائية لأوامر المثال هي ملف بسيط يحوي النص التالي:

إد محرر النصوص المعياري في يونكس.
  
هذا السطر رقم ثلاثة.

يبدأ المثال بمعالجة ملف فارغ حيث أن الأمر a يقوم بإلحاق أو إلصاق النصوص ببعضها البعض (من المفيد أن نذكر هنا أم جميع أوامر إد هي عبارة عن أحرف وحيدة فقط) كما و يقوم الأمر أيضاً بوضع إد على نمط الإدخال بحيث يقوم بإدخال الحروف تباعاً و يتوقف عند طباعة النقطة على السطر "."، و السطرين اللذين تم طباعتهما قبل النقطة يتم إدخالهم المنطقة المخصصة لتحرير الملف على الذاكرة الرئيسية "File Buffer"، يقوم الأمر 2i أيضاً بإعلام إد استخدام وضع أو نمط الإدخال و من ثم سيقوم بإدخال النص (سطر فارغ في مثالنا هذا) قبل السطر رقم 2، و من الجدير ذكره أنه بالإمكان سبق الأمر برقم لمعالجة السطر الذي يمثل ذلك الرقم.

في السطر %l الحرف "l" (الحرف الصغير من الحرف L) يعني تنفيذ امر "السرد" (List) و تم سبق الأمر بنطاق ليتم معالجة النص ضمن هذا النطاق و في هذه الحالة تمثل إشارة % اختصاراً للنطاق $,1 و النطاق هو الفرق بين رقمي سطرين مفصولين بفاصلة أنجليزية "," و إشارة "$" تعني الرمز لآخر سطر في الملف، و بناءً عليه فإن إد سيقوم بسرد أو إظهار جميع السطور من أول سطر إلى اَخر سطر (و يمكن تجريب ذلك بتبديل الرقم 1 برقم آخر و يمكنك أيضاً تبديل "$" برقم آخر).

و عند إدخال السطر الفارغ في السطر رقم 2 فإن السطر المكتوب فيه "هذا السطر رقم إثنان" سيصبح في السطر الثالث و تم تبديل كلمة "إثنان" بكلمة "ثلاثة" في المثال للدلالة على ذلك و يظهر ذلك جلياً في الأمر /ثلاثة/إثنان/3s و هو أمر يفيد تبديل الكلمات حيث يتم تفسيره كالاَتي:

  1. يقسم الأمر إلى ثلاثة أقسام و هي (3s، إثنان، و ثلاثة) بالترتيب.
  2. القسم الأول يفيد تحديد رقم السطر المراد معالجته و تحديد عملية الإستبدال (3s).
  3. القسم الثاني يحوي الكلمة المراد استبدالها (في مثالنا الكلمة المراد استبالها هي "إثنان").
  4. القسم الثالث يحوي الكلمة المراد الإستبدال بها (في مثالنا الكلمة المراد الاستبدال بها هي "ثلاثة").

و يفصل بين الأمر و الاَخر الفاصلة الأنجليزية "," و لذلك نرى و كجزء من الأمر "l%," و يعني ذلك أنه بعد تنفيذ أمر الإستبدال سيتم القيام بتنفيذ أمر "السرد" (List). الأمر "w text.txt" يفيد بتنفيذ عملية الحفظ و كتابة محتويات الملف تحت إسم "text.txt" و يتم تنفيذ ذلك عن طريق الأمر "w" و هو اختصار لكلمة "write" و تعني بالإنجليزية "أكتب" أو "إحفظ" و هذا الأمر يجعل إد يقوم بطباعة 54 و هذا الرقم يمثل عدد الأحرف التي تم حفظها في الملف و أخيراً يوعز الأمر "q" لإد القيام بالخروج من بيئة محرر النصوص، حيث أن حرف "q" يمثل الإختصار للكلمة الإنجليزية "quit" و التي تعني حرفياً "إنهاء".

بيل جوي[عدل]

على الرغم من كون بيل جوي هو من قام بتطوير محرر النصوص المعروف في آي لاستبداله بإد و في مقابلة تمت له في العام 1984 حيث أفصح أنه و في زياراته خارج مختبرات صن ميكروسيستمز إلا أنه كان يستخدم إد في تلك المواقف على الرغم من إنتشار في آي في ذلك الوقت و ذلك لأنه لم يكن متأكداً أن نسخة في آي المنصوبة على الجهاز الذي يستعمله ستعمل كما أراد لها أن تعمل.

أنظر أيضاً[عدل]

المراجع[عدل]

  1. ^ http://roguelife.org/~fujita/COOKIES/HISTORY/V6/ed.1.html
  2. ^ It is included in Linux, NetBSD, FreeBSD and its derivatives like Apple OSX and PC-BSD.