JOE()

الاسم
JOE - محرر جو الخاص

بناء الجملة
joe [global-options] [ [local-options] filename ]...
jstar [global-options] [ [local-options] filename ]...
jmacs [global-options] [ [local-options] filename ]...
rjoe [global-options] [ [local-options] filename ]...
jpico [global-options] [ [local-options] filename ]...

الوصف
إنّ JOE محرر شاشة صدفة قوي. يمتلك واجهة مستخدم "عديمة الأطوار" تشبه العديد من محررات الحاسوب الشخصي سهلة الاستخدام. سيشعر مستخدمو لغات Micro-Pro's WordStar أو Borland's "Turbo" وكأنهم في منزلهم. مع ذلك، فإنّ JOE محرر شاشة يونكس كامل المزايا، ويوفر العديد من الخصائص لتحرير البرامج والنصوص.

يُحاكي JOE أيضًا عدة محررات أخرى. JSTAR هو تقليد قريب لـ WordStar مع العديد من امتدادات "JOE". أما JPICO فهو تقليد قريب لمحرر PICO الخاص بنظام بريد Pine، ولكن مع العديد من الامتدادات والتحسينات. JMACS هو تقليد لـ GNU-EMACS. وRJOE هي نسخة مقيدة من JOE، تسمح لك بتحرير الملفات المحددة في سطر الأوامر فقط.

على الرغم من أن JOE هو في الواقع خمسة محررات مختلفة، إلا أنه لا يتطلب سوى ملف تنفيذي واحد، ولكن بخمسة أسماء مختلفة. اسم المحرر متبوعاً بـ "rc" يعطي اسم ملف تهيئة JOE، والذي يحدد سمات المحرر.

إنّ JOE برمجية حرة؛ يمكنك توزيعها و/أو تعديلها بموجب شروط رخصة جنو العمومية كما نشرتها مؤسسة البرمجيات الحرة. يتوفر JOE عبر الإنترنت على http://www.sourceforge.net/projects/joe-editor.

الاستخدام
لبدء المحرر، اكتب joe متبوعاً بصفر أو أكثر من أسماء الملفات التي تريد تحريرها. يمكن أن يسبق كل اسم ملف إعداد خيار محلي (انظر جدول الخيارات المحلية أدناه). كما يمكن وضع خيارات شاملة أخرى، تنطبق على المحرر ككل، في سطر الأوامر (انظر جدول الخيارات الشاملة أدناه). إذا كنت تحرر ملفاً جديداً، يمكنك إما إعطاء اسم الملف الجديد عند استدعاء المحرر، أو داخل المحرر عند حفظ الملف الجديد. يُوفر بناء جملة معدل لأسماء الملفات للسماح لك بتحرير مخرجات البرنامج، أو الإدخال/الإخراج القياسي، أو أجزاء من الملفات أو الأجهزة. انظر قسم أسماء الملفات أدناه للحصول على التفاصيل.

بمجرد دخولك إلى المحرر، يمكنك كتابة النص واستخدام تسلسلات محارف التحكم الخاصة لأداء مهام التحرير الأخرى. لمعرفة ماهية تسلسلات محارف التحكم، اقرأ بقية صفحة الدليل هذه أو اكتب ^K H للحصول على المساعدة داخل المحرر.

والآن لبعض المعلومات الحاسوبية الغامضة:

تعني العلامة ^ أن تضغط باستمرار على مفتاح Control أثناء الضغط على المفتاح التالي (بنفس الطريقة التي يعمل بها مفتاح Shift للحروف الكبيرة). يُكرر عدد من تسلسلات مفاتيح التحكم على مفاتيح أخرى، بحيث لا تحتاج إلى الضغط على مفتاح التحكم: سيعمل Esc بدلاً من ^[، وسيعمل Del بدلاً من ^?، وسيعمل Backspace بدلاً من ^H، وسيعمل Tab بدلاً من ^I، وسيعمل Return أو Enter بدلاً من ^M، وسيعمل Linefeed بدلاً من ^J. قد تسبب لك بعض لوحات المفاتيح مشكلة مع بعض مفاتيح التحكم. يمكن عادةً إدخال ^_ و ^^ و ^@ دون الضغط على مفتاح العالي (أي جرب ^- و ^6 و ^2). قد تعيد لوحات المفاتيح الأخرى تعيين هذه المفاتيح إلى مفاتيح أخرى. جرب: ^. و ^, و ^/. يمكن عادةً استخدام ^Space بدلاً من ^@. يتم تفسير ^\ و ^] بواسطة العديد من برامج الاتصال، بما في ذلك telnet و kermit. عادةً ما تضغط فقط على المفتاح مرتين لجعله يمر عبر برنامج الاتصال.

في بعض لوحات المفاتيح، الضغط باستمرار على مفتاح Alt أثناء الضغط على مفتاح آخر هو نفسه كتابة Esc قبل كتابة المفتاح الآخر.

بمجرد كتابة ^K H، تظهر نافذة المساعدة الأولى في أعلى الشاشة. يمكنك الاستمرار في إدخال النص وتحريره بينما نافذة المساعدة مفتوحة. للتصفح عبر مواضيع أخرى، اضغط على Esc , و Esc . (أي Esc , و Esc .). استخدم ^K H لإغلاق نافذة المساعدة.

يمكنك تخصيص تخطيط لوحة المفاتيح، وشاشات المساعدة، وعدد من السلوكيات المبدئية عن طريق نسخ ملف تهيئة JOE (عادةً /etc/joe/joerc) إلى .joerc في دليلك الرئيسي ثم تعديله. انظر قسم joerc أدناه.

لاستخدام JOE كمحررك المبدئي للبريد الإلكتروني والأخبار، تحتاج إلى ضبط متغيرات البيئة EDITOR و VISUAL في ملف تهيئة الصدفة الخاص بك (.cshrc أو .profile) للإشارة إلى JOE (يوجد JOE عادةً في /usr/bin/joe).

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

خيارات سطر الأوامر
يمكن أيضًا تحديد هذه الخيارات في ملف joerc. يمكن ضبط الخيارات المحلية بناءً على امتداد اسم الملف. البرامج (الامتدادات .c أو .h أو .p) عادةً ما يكون الإزاحة التلقائية مفعلة فيها. ولف الكلمات مفعل في الملفات الأخرى، ولكن ملفات rc يكون معطلاً فيها.

يُفعل الخيار عندما يُعطى بهذا الشكل:

    -wordwrap

يُعطل الخيار عندما يُعطى بهذا الشكل:

    --wordwrap

تأخذ بعض الخيارات وسائط. تُعطى الوسائط بهذا الشكل:

    -lmargin 5

يمكن تحديد الخيارات الشاملة التالية في سطر الأوامر:

•   asis
    ستُرسل المحارف التي تزيد رموزها عن 127 إلى الطرفية كما هي، بدلاً من إرسالها كعكس للمحرف المقابل الأقل من 128. إذا لم ينجح ذلك، فافحص خادم الطرفية الخاص بك. ليس لهذا الخيار أي تأثير في حال استُخدم ترميز UTF-8.

•   assume_256color
    افترض أن محاكي الطرفية الشبيه بـ ANSI يدعم 256 لوناً حتى لو ذكر مدخل termcap أنه لا يدعمها.

•   assume_color
    افترض أن محاكي الطرفية الشبيه بـ ANSI يدعم الألوان حتى لو ذكر مدخل termcap أنه لا يدعمها.

•   text_color color
    اضبط لون النص.

•   status_color color
    اضبط لون شريط الحالة.

•   help_color color
    اضبط لون المساعدة.

•   menu_color color
    اضبط لون القوائم.

•   prompt_color color
    اضبط لون المحثات.

•   msg_color color
    اضبط لون الرسائل.

•   autoswap
    بادل آلياً بين ^K B و ^K K إذا لزم الأمر لتمييز كتلة صالحة أثناء أوامر نسخ/نقل الكتل.

•   backpath path
    يضبط المسار إلى دليل حيث ستُخزن جميع ملفات النسخ الاحتياطي. إذا لم يُضبط هذا (الوضع المبدئي)، ستُخزن ملفات النسخ الاحتياطي في الدليل الذي يحتوي على الملف.

•   baud nnn
    اضبط معدل البود لأغراض تحسين شاشة الطرفية (يتجاوز القيمة التي أبلغ عنها stty). يُدرج JOE تأخيرات لمعدلات البود الأقل من 19200، مما يتجاوز تخزين tty المؤقت بحيث يقطع الإدخال المسبق مخرجات الشاشة. لن تُستخدم أوامر التمرير لمعدل 38400 بود فما فوق. هذا مفيد لـ X-terms وأجهزة tty للصدفة الأخرى التي لا تمر فعلياً عبر خط تسلسلي.

•   beep
    مكّن التنبيهات الصوتية عندما ترجع أوامر التحرير أخطاءً، على سبيل المثال عندما يتجاوز المؤشر الحدود القصوى.

•   break_links
    عند تمكينه، يحذف JOE الملف أولاً قبل كتابته من أجل كسر الروابط الصلبة والروابط الرمزية.

•   break_hardlinks
    عند تمكينه، وإذا لم يكن الملف رابطاً رمزياً، يحذف JOE الملف أولاً قبل كتابته من أجل كسر الروابط الصلبة.

•   brpaste
    عندما يبدأ JOE، يُرسل أمراً إلى محاكي الطرفية يمكن "وضع اللصق المجمع" (ولكن فقط إذا بدت الطرفية تدعم مجموعة أوامر ANSI). في هذا الوضع، يُجمع النص الملصق في النافذة بين ESC [ 2 0 0 ~ و ESC [ 2 0 1 ~.

•   columns nnn
    اضبط عدد الأعمدة في محاكي الطرفية (في حال كان مدخل termcap خاطئاً). هذا مفيد فقط في الأنظمة القديمة التي لا تحتوي على ioctl "get window size".

•   csmode
    مكّن وضع البحث المستمر: تكرر ضغطات ^K F المتعاقبة البحث الحالي بدلاً من المطالبة ببحث جديد.

•   dopadding
    مكّن JOE من إرسال محارف NUL للحشو إلى الطرفية (للطرفيات القديمة جداً).

•   exask
    عند ضبطه، يطالب ^K X باسم جديد قبل حفظ الملف.

•   floatmouse
    عند ضبطه، يمكن لنقرات الفأرة وضع المؤشر بعد نهايات السطور.

•   guess_crlf
    عند ضبطه، يحاول JOE تخمين تنسيق الملف سواء كان MS-DOS أو UNIX.

•   guess_indent
    عند ضبطه، يحاول JOE تخمين محرف الإزاحة وخطوة الإزاحة بناءً على محتويات الملف. الخوارزمية هي العثور على القاسم المشترك الأكبر للإزاحات الثلاث الأكثر شيوعاً الموجودة في الملف.

•   guess_non_utf8
    عند ضبطه، مكن تخمين الملفات التي ليست بترميز UTF-8 في المحليات التي تستخدم UTF-8.

•   guess_utf8
    عند ضبطه، مكن تخمين ملفات UTF-8 في المحليات التي لا تستخدم UTF-8.

•   guess_utf16
    عند ضبطه، مكن تخمين ملفات UTF-16. إذا اكتُشف ملف UTF-16BE أو UTF-16LE، فسيُحول إلى UTF-8 أثناء التحميل، ويُحول مرة أخرى إلى UTF-16 أثناء الحفظ.

•   helpon
    عند ضبطه، ابدأ والمساعدة الفورية مفعلة.

•   help_is_utf8
    عند ضبطه، يُفترض أن نص المساعدة في ملف joerc هو بترميز UTF-8.

•   icase
    عند ضبطه، يكون البحث غير حساس لحالة الأحرف بشكل مبدئي.

•   joe_state
    مكن قراءة وكتابة ملف ~/.joe_state

•   joexterm
    اضبط هذا إذا ضُبط xterm بخيار --paste64 لدعم أفضل للفأرة.

•   keepup
    يُحدث رقم العمود في شريط الحالة باستمرار عند ضبط هذا الخيار، وإلا فإنه يُحدث مرة واحدة في الثانية فقط.

•   language language
    يضبط لغة aspell.

•   lightoff
    أوقف تمييز ^K B و ^K K آلياً بعد إجراء عملية على الكتلة.

•   lines nnn
    اضبط عدد السطور في محاكي الطرفية (في حال كان مدخل termcap خاطئاً). هذا مفيد فقط في الأنظمة القديمة التي لا تحتوي على ioctl "get window size".

•   marking
    مكّن وضع العلامات: يميز ما بين ^K B والمؤشر.

•   menu_above
    ضع القوائم فوق المحث بدلاً من تحتها.

•   menu_explorer
    ابق في القائمة عند اختيار دليل (وإلا سيُضاف الدليل إلى المسار ويقفز المؤشر عائداً إلى المحث).

•   menu_jump
    اقفز إلى قائمة اختيار الملفات عند ضغط Tab Tab.

•   mid
    إذا ضُبط هذا الخيار وتحرك المؤشر خارج النافذة، فستُمرر النافذة بحيث يصبح المؤشر في المركز. يُفرض هذا الخيار في الطرفيات البطيئة التي لا تمتلك أوامر تمرير.

•   left nn
    يضبط هذا عدد الأعمدة التي تمررها الشاشة إلى اليسار عندما يتجاوز المؤشر الحافة اليسرى أو عند إصدار أمر crawll. إذا كان nn سالباً، فإنه يمثل كسر الشاشة المراد تمريره. على سبيل المثال، -2 يعني تمرير 1/2 الشاشة.

•   right nn
    يضبط هذا عدد الأعمدة التي تمررها الشاشة إلى اليمين عندما يتجاوز المؤشر الحافة اليمنى أو عند إصدار أمر crawlr. إذا كان nn سالباً، فإنه يمثل كسر الشاشة المراد تمريره. على سبيل المثال، -3 يعني تمرير 1/3 الشاشة.

•   mouse
    مكّن دعم فأرة xterm.

•   nobackups
    عطل ملفات النسخ الاحتياطي.

•   nocurdir
    عطل بادئة الدليل الحالي في المحثات.

•   noexmsg
    عطل رسالة الخروج ("لم يتغير الملف لذا لا يلزم التحديث")

•   nolinefeeds
    عطل إرسال تغذية السطور للحفاظ على تأريخ الشاشة في مخزن التمرير الخلفي لمحاكي الطرفية (ذو صلة فقط عند تمكين وضع notite).

•   nolocks
    عطل أقفال الملفات المتوافقة مع EMACS.

•   nomodcheck
    عطل الفحص الدوري لتعديل الملف.

•   nonotice
    يمنع هذا الخيار عرض إشعار حقوق النشر عند بدء المحرر.

•   nosta
    يزيل هذا الخيار شريط الحالة العلوي. إنه جيد عندما تريد فقط رؤية نصك على الشاشة أو إذا كنت تستخدم vt52.

•   notagsmenu
    عطل قائمة الاختيار للبحث عن الوسوم ذات النتائج المتعددة.

•   notite
    عطل تسلسلات ti و te في termcap والتي تُضبط عادةً لحفظ واستعادة محتويات شاشة الطرفية عند بدء وخروج JOE.

•   pastehack
    إذا ورد مدخل لوحة المفاتيح ككتلة واحدة، فافترض أنه لصق بالفأرة وعطل الإزاحة التلقائية ولف الكلمات.

•   noxon
    عطل التحكم في التدفق ^S و ^Q، مما قد يسمح باستخدام ^S و ^Q كمفاتيح للمحرر.

•   orphan
    اجعل الملفات الإضافية المعطاة في سطر الأوامر يتيمة بدلاً من إنشاء نوافذ لها (تُحمل الملفات، ولكنك تحتاج إلى استخدام أوامر تبديل المخزن المؤقت للوصول إليها).

•   pg nnn
    اضبط عدد السطور المراد الاحتفاظ بها أثناء التمرير لأعلى ولأسفل (استخدم -1 لنصف حجم النافذة).

•   regex
    استخدم بناء جملة التعبيرات النمطية القياسي بشكل مبدئي، بدلاً من بناء جملة JOE (حيث يكون للمحارف الخاصة معناها فقط عندما تسبقها شرطة مائلة عكسية).

•   استعد
    اضبط لاستعادة مواضع المؤشر إلى آخر مواضع في الملفات المحررة سابقاً.

•   rtbutton
    بادل بين زري الفأرة الأيسر والأيمن.

•   search_prompting
    أظهر سلسلة البحث السابقة في أمر البحث (كما في PICO).

•   skiptop nnn
    عند ضبطه على N، لا يستخدم JOE أول N من السطور في شاشة الطرفية وتُترك بدلاً من ذلك بمحتوياتها الأصلية. هذا مفيد للبرامج التي تستدعي JOE لترك رسالة للمستخدم.

•   square
    فعل وضع الكتلة المستطيلة.

•   transpose
    اقلب الصفوف مع الأعمدة في جميع القوائم.

•   عنوان
    اعرض السياق (العناوين) في سطر الحالة. عند التفعيل، يظهر هذا السطر الأول من الدالة التي يتواجد فيها المؤشر في سطر الحالة. يحدد ملف بناء الجملة context.jsf السطور التي تعد سطور عناوين.

•   نوع
    اختر نوع الملف، متجاوزاً النوع المحدد آلياً. تُعرف أنواع الملفات في ملف ftyperc.

•   undo_keep nnn
    يحدد عدد سجلات التراجع التي يجب الاحتفاظ بها (0 يعني غير محدود).

•   usetabs
    اضبط للسماح لعمليات الكتلة المستطيلة باستخدام علامات الجدولة.

•   wrap
    فعل التفاف البحث إلى بداية الملف.

الخيارات المحلية التالية يمكن تحديدها في سطر الأوامر:

•   +nnn
    يبدأ المؤشر عند السطر المحدد.

•   إزاحة آلية
    فعل وضع الإزاحة الآلية. عندما تضغط على Enter في سطر مُزاح، تُكرر الإزاحة في السطر الجديد.

•   c_comment
    فعل تجاوز ^G لتعليقات لغة C من النمط /.../

•   cpara محارف
    يحدد قائمة المحارف التي يمكنها إزاحة الفقرات.

•   cnotpara محارف
    يحدد قائمة المحارف التي تبدأ بها السطور التي لا تعد قطعاً جزءاً من الفقرات.

•   cpp_comment
    فعل تجاوز ^G لتعليقات لغة ++C من النمط // ...

•   crlf
    يستخدم JOE تسلسل CR-LF كنهاية للسطر بدلاً من مجرد LF. هذا مخصص لتحرير ملفات MS-DOS أو VMS.

•   encoding الترميز
    اضبط ترميز الملف (مثل utf-8 أو 8859-1).

•   flowed
    اضبط لفرض مسافة إضافية بعد كل سطر من فقرة باستثناء الأخير.

•   force
    عند ضبطه، يُلحق سطر جديد في نهاية الملف إذا لم يكن موجوداً عند حفظ الملف.

•   french
    عند ضبطه، تُدرج مسافة واحدة فقط بعد النقاط عند إعادة تنسيق الفقرات بدلاً من مسافتين.

•   hex
    فعل وضع التفريغ الست عشري.

•   إبراز
    فعل إبراز بناء الجملة.

•   highlighter_context
    فعل استخدام ملف بناء الجملة لتحديد التعليقات والسلاسل النصية التي يجب تجاوزها أثناء مطابقة ^G.

•   indentc nnn
    يحدد محرف الإزاحة للإزاحة يساراً ويميناً (^K , و ^K .). استخدم 32 للمسافة Space، و 9 لعلامة الجدولة Tab.

•   indentfirst
    عند ضبطه، يقفز مفتاح Home الذكي إلى نقطة الإزاحة أولاً، وإلا فإنه يقفز إلى العمود 1 أولاً.

•   istep nnn
    يحدد خطوة الإزاحة.

•   linums
    فعل عرض أرقام السطور.

•   lmargin
    اضبط الهامش الأيسر.

•   lmsg
    حدد رسالة شريط الحالة في الجانب الأيسر.

•   overwrite
    فعل وضع الكتابة الفوقية. الكتابة تمحو المحارف الموجودة بدلاً من الإدراج قبلها.

•   صورة
    فعل وضع "الصورة"- يسمح للمؤشر بتجاوز نهايات السطور.

•   pound_comment
    يتجاهل ^G تعليقات # ...

•   purify
    أصلح الإزاحة إذا لزم الأمر قبل الإزاحة أو المسافة الخلفية الذكية. على سبيل المثال، إذا كانت الإزاحة تستخدم مزيجاً من علامات الجدولة والمسافات، وكان indentc هو المسافة، فستُحول الإزاحة إلى مسافات بالكامل قبل عملية الإزاحة.

•   rdonly
    اضبط وضع القراءة فقط.

•   rmargin nnn
    اضبط الهامش الأيمن.

•   rmsg سلسلة
    حدد رسالة شريط الحالة في الجانب الأيمن.

•   semi_comment
    يتجاهل ^G تعليقات ; ...

•   single_quoted
    يتجاهل ^G السلاسل '...'

•   smartbacks
    فعل المسافة الخلفية وعلامة الجدولة الذكية. عند ضبط هذا الوضع، تقوم المسافة الخلفية وعلامة الجدولة بالإزاحة أو إلغاء الإزاحة بناءً على قيم خياري istep و indentc.

•   smarthome
    مفتاح Home يحرك المؤشر أولاً إلى بداية السطر، ثم إذا ضُغط عليه مجدداً، إلى أول محرف غير فارغ.

•   smsg سلسلة
    حدد تنسيق أمر الحالة عندما يكون المؤشر على محرف.

•   مسافات
    أدرج مسافات عند الضغط على مفتاح Tab.

•   syntax بناء_الجملة
    اضبط بناء الجملة لإبراز بناء الجملة.

•   tab nnn
    اضبط عرض وقفة علامة الجدولة.

•   text_delimiters قائمة محددات الكلمات
    أعطِ قائمة بمحددات الكلمات التي سيتنقل خلالها ^G.

على سبيل المثال، "begin=end:if=elif=else=endif" يعني أن ^G سيقفز بين if و elif و else و endif المتطابقة.

•   vhdl_comment
    يتجاهل ^G تعليقات -- ...

•   wordwrap
    يقوم JOE بلف الكلمة السابقة عندما تكتب متجاوزاً الهامش الأيمن.

•   zmsg سلسلة
    حدد تنسيق أمر الحالة عندما يكون المؤشر في نهاية الملف.

•   xmsg سلسلة
    حدد رسالة بدء التشغيل (عادة ما تكون إشعار حقوق النشر).

•   aborthint سلسلة
    أعطِ تسلسل المفاتيح ليظهر في المحثات للإجهاض (عادة ^C).

•   helphint سلسلة
    أعطِ تسلسل المفاتيح ليظهر في المحثات للمساعدة (عادة ^K H).

  الألوان والسمات
اجمع بين السمات وما يصل إلى لون أمامي واحد ولون خلفي واحد لإنشاء وسائط لخيارات الألوان مثل text_color. على سبيل المثال: bold+bg_green+blue

•   السمات: عريض (bold)، وعكسي (inverse)، ووامض (blink)، وباهت (dim)، ومسطر (underline)، ومائل (italic)

•   ألوان الواجهة: أبيض، سماوي، أرجواني، أزرق، أصفر، أخضر، أحمر، أو أسود

•   ألوان الخلفية: bg_white، bg_cyan، bg_magenta، bg_blue، bg_yellow، bg_green، bg_red أو bg_black

مع محاكي طرفية بـ 16 لوناً أو 256 لوناً (export TERM=xterm-16color)، تصبح هذه الألوان الأكثر سطوعاً من المعتاد متاحة:

•   الواجهة: WHITE، CYAN، MAGENTA، BLUE، YELLOW، GREEN، RED أو BLACK

•   الخلفية: bg_WHITE، bg_CYAN، bg_MAGENTA، bg_BLUE، bg_YELLOW، bg_GREEN، bg_RED أو bg_BLACK

مع محاكي طرفية بـ 256 لوناً (export TERM=xterm-256color)، تصبح هذه متاحة:

•   fg_RGB و bg_RGB، حيث تتراوح قيم R و G و B من 0 - 5. لذا: fg_500 هو أحمر ساطع.

•   تعطي fg_NN و bg_NN تدرجات الرمادي، حيث تتراوح الشدة، NN، من 0 - 23.

  سلاسل تعريف سطر الحالة
يحدد -lmsg السلسلة المحاذات لليسار ويحدد -rmsg السلسلة المحاذات لليمين. المحرف الأول من -rmsg هو محرف ملء الخلفية.

يحدد -smsg أمر الحالة (^K Space). ويحدده -zmsg عندما يكون المؤشر في نهاية الملف. المحرف الأخير من smsg أو zmsg هو محرف الملء.

يمكن استخدام تسلسلات الهروب التالية في هذه السلاسل:

    %t  التوقيت بنظام 12 ساعة
    %u  التوقيت بنظام 24 ساعة
    %T  حرف O لوضع الكتابة فوق النص، وحرف I لوضع الإدراج
    %W  حرف W إذا مُكنت ميزة لف النص
    %I  حرف A إذا مُكنت ميزة المسافة البادئة التلقائية
    %X  مؤشر وضع المستطيل
    %n  اسم الملف
    %m  ’(مُعدل)‘ إذا غُير الملف
    %*  ’*‘ إذا تم تغيير الملف
    %R  مؤشر للقراءة فقط
    %r  رقم الصف (السطر)
    %c  رقم العمود
    %o  إزاحة البايت في الملف
    %O  إزاحة البايت في الملف بالسداسي عشري
    %a  قيمة ASCII للحرف الموجود تحت المؤشر
    %A  القيمة ASCII للحرف الموجود تحت المؤشر بالصيغة السداسية العشرية
    %w  عرض الحرف الموجود تحت المؤشر
    %p  النسبة المئوية لموقع المؤشر في الملف
    %l  عدد الأسطر في الملف
    %k  مفاتيح البادئة التي تم إدخالها
    %S  ’*SHELL*‘ إذا كان هناك شل قيد التشغيل في النافذة
    %M  رسالة تسجيل الماكرو
    %y  الصيغة
    %e  الترميز
    %x  السياق (أول سطر غير مسافة بادئة بالرجوع للخلف)
    %dd اليوم
    %dm الشهر
    %dY السنة
    %Ename%  قيمة متغير البيئة
    %Tname%  قيمة الخيار (ON أو OFF للخيارات المنطقية)

يمكن أيضًا إعطاء تسلسلات هروب التنسيق هذه:

    \i  عكسي
    \u  مسطر
    \b  عريض
    \d  باهت
    \f  وامض
    \l  مائل

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

اضغط على مفتاح Enter أو Return لإدراج فاصل أسطر. على سبيل المثال، إذا كان المؤشر في منتصف سطر وضغطت على Enter، فسيُقسم السطر إلى سطرين مع ظهور المؤشر في بداية السطر الثاني. اضغط Backspace في بداية السطر للتخلص من فاصل الأسطر.

استخدم مفاتيح الأسهم للتنقل في الملف. إذا كانت لوحة المفاتيح لا تحتوي على مفاتيح أسهم (أو إذا كانت لا تعمل لسبب ما)، فاستخدم ^F للتحرك للأمام (يميناً)، و ^B للتحرك للخلف (يساراً)، و ^P للتحرك إلى السطر السابق (لأعلى)، و ^N للتحرك إلى السطر التالي (لأسفل). مفاتيح الأسهم اليمنى واليسرى تتحرك ببساطة للأمام أو للخلف محرفاً واحداً في كل مرة عبر النص: إذا كنت في بداية سطر وضغطت على السهم الأيسر، فستنتهي في نهاية السطر السابق. مفاتيح الأسهم للأعلى والأسفل تتحرك للأمام وللخلف بعدد كافٍ من المحارف بحيث يظهر المؤشر في نفس العمود الذي كان فيه في السطر الأصلي.

إذا كنت تريد إزاحة النص الذي تدخله، يمكنك استخدام مفتاح Tab. يقوم هذا بإدراج محرف تحكم خاص يجعل المحارف التي تتبعه تبدأ عند وقفة علامة الجدولة التالية. تحدث وقفات علامات الجدولة عادةً كل 8 أعمدة، ولكن يمكن تغيير ذلك باستخدام أمر ^T D. غالباً ما يضبط مبرمجو PASCAL و C وقفات علامات الجدولة عند كل 4 أعمدة.

إذا اختلت شاشة الطرفية لسبب ما (على سبيل المثال، إذا تلقيت إشعار بريد من biff)، يمكنك جعل المحرر يُحدث الشاشة عن طريق الضغط على ^R.

هناك العديد من المفاتيح الأخرى لحذف النص والتنقل في الملف. على سبيل المثال، اضغط على ^D لحذف المحرف الذي يقف عليه المؤشر بدلاً من الحذف للخلف مثل Backspace. كما سيحذف ^D فاصل الأسطر إذا كان المؤشر في نهاية السطر. اكتب ^Y لحذف السطر بأكمله الذي يتواجد فيه المؤشر أو ^J لحذف النص من موضع المؤشر إلى نهاية السطر فقط.

اضغط ^A لتحريك المؤشر إلى بداية السطر الذي يتواجد فيه. اضغط ^E لتحريك المؤشر إلى نهاية السطر. اضغط ^U أو ^V لتمرير المؤشر للأعلى أو للأسفل بمقدار نصف شاشة.
"التمرير" يعني أن النص الموجود على الشاشة يتحرك، لكن المؤشر يبقى في نفس المكان بالنسبة للشاشة. اضغط ^K U أو ^K V لتحريك المؤشر إلى بداية أو نهاية الملف. انظر إلى شاشات المساعدة في المحرر لتجد المزيد من أوامر الحذف والتحريك.

إذا ارتكبت خطأً، يمكنك الضغط على ^_ للتراجع عنه. في معظم لوحات المفاتيح تضغط فقط على ^- للحصول على ^_، ولكن في بعضها قد تضطر إلى الضغط على مفتاحي Shift و Control معاً في نفس الوقت للحصول عليه. إذا تراجعت أكثر من اللازم، يمكنك إعادة التغييرات للوجود بالضغط على ^^ (اكتب هذا باستخدام ^6 فقط في معظم لوحات المفاتيح).

  تاريخ موضع المؤشر
إذا كنت تحرر في مكان واحد داخل الملف، ثم اضطررت مؤقتاً للنظر أو التحرير في مكان آخر داخل الملف، يمكنك العودة إلى المكان الأصلي بالضغط على ^K -. يعيدك هذا الأمر فعلياً إلى آخر مكان أجريت فيه تغييراً في الملف. يمكنك التنقل عبر تاريخ الأماكن باستخدام ^K - و ^K =، بنفس الطريقة التي يمكنك بها التنقل عبر تاريخ التغييرات باستخدام أوامر "التراجع" و "الإعادة".

  الحفظ والخروج
عند الانتهاء من تحرير الملف، اضغط ^K X للخروج من المحرر. سيُطلب منك اسم ملف إذا لم تكن قد سميت الملف الذي كنت تحرره بالفعل.

عندما تحرر ملفاً، فإنك في الواقع تحرر نسخة من الملف فقط. لذا إذا قررت أنك لا تريد التغييرات التي أجريتها على ملف خلال جلسة تحرير معينة، يمكنك الضغط على ^C للخروج من المحرر دون حفظها.

إذا حررت ملفاً وحفظت التغييرات، تُنشأ نسخة احتياطية من ذلك الملف في الدليل الحالي، مع إلحاق ~ بالاسم، والتي تحتوي على النسخة الأصلية للملف.

  عمليات الملفات
يمكنك الضغط على ^K D لحفظ الملف الحالي (ربما باسم مختلف عما كان يسمى الملف في الأصل). بعد حفظ الملف، يمكنك الضغط على ^K E لتحرير ملف مختلف.

إذا كنت تريد حفظ جزء محدد فقط من الملف، فراجع قسم الكتل أدناه.

إذا كنت تريد تضمين ملف آخر في الملف الذي تحرره، فاستخدم ^K R لإدراجه.

  أسماء الملفات
أينما يتوقع JOE منك إدخال اسم ملف، سواء في سطر الأوامر أو في المحثات داخل المحرر، يمكنك أيضًا كتابة:

•   !command

لقراءة البيانات أو كتابتها من أمر صدفة أو إليه. على سبيل المثال، استخدم joe '!ls' للحصول على نسخة من سرد دليلك لتحريرها، أو من داخل المحرر استخدم ^K D !mail jhallen@world.std.com لإرسال الملف الذي يُحرر إليّ.

•   >>اسم_الملف

استخدم هذا لجعل جو (JOE) يلحق النص المُحرر بنهاية الملف "اسم_الملف".

•   اسم_الملف,البداية,الحجم

استخدم هذا للوصول إلى قسم ثابت من ملف أو جهاز. يمكن إدخال البداية و الحجم بالنظام العشري (مثال: 123) أو الثماني (مثال: 0777) أو الست عشري (مثال: 0xFF). على سبيل المثال، استخدم joe /dev/fd0,508,2 لتحرير البايتات 508 و 509 من محرك الأقراص المرنة الأول في لينكس.

•   -

استخدم هذا للحصول على المدخلات من الدخل القياسي أو لكتابة المخرجات إلى الخرج القياسي. على سبيل المثال، يمكنك وضع جو (JOE) في أنبوب من الأوامر: quota -v | joe | mail root، إذا كنت ترغب في الشكوى من حصتك المنخفضة.

  استخدام جو (JOE) في سكريبت صدفة
اعتاد جو (JOE) استخدام /dev/tty للوصول إلى الطرفية. تسبب هذا في مشكلة مع قاتلي الجلسات الخاملة (كانوا يقتلون JOE لأن جهاز tty الحقيقي لم يكن يُوصَل إليه لفترة طويلة)، لذا الآن يستخدم JOE الجهاز /dev/tty فقط إذا كنت بحاجة لتمرير ملف عبر أنبوب إلى JOE، كما في:

    echo "hi" | joe

إذا أردت استخدام جو (JOE) في سكريبت صدفة أُعيد توجيه دخله القياسي/خرجه القياسي ولكنك لست بحاجة للتمرير إليه عبر أنبوب، فيجب عليك ببساطة إعادة توجيه الدخل والخرج القياسي لـ JOE إلى /dev/tty:

    joe اسم_الملف  </dev/tty >/dev/tty

  التفاف الكلمات والتنسيق
إذا كتبت متجاوزاً الحافة اليمنى للشاشة في ملف لغة C أو PASCAL، فستتحرك الشاشة لليمين لتتبع المؤشر. إذا كتبت متجاوزاً الحافة اليمنى للشاشة في ملف عادي (ملف لا ينتهي اسمه بـ .c أو .h أو .p)، فسيقوم جو (JOE) بلف الكلمة الأخيرة آلياً إلى السطر التالي حتى لا تضطر للضغط على Enter. يسمى هذا وضع التفاف الكلمات. يمكن تشغيل التفاف الكلمات أو إيقافه باستخدام الأمر ^T W. يُضبط ملف تهيئة JOE عادةً بحيث يُشغل هذا الوضع آلياً لكل ملفات غير البرامج. راجع القسم أدناه حول ملف joerc لتغيير هذا الإعداد والقيم المبدئية الأخرى.

باستثناء وضع التفاف الكلمات، لا يحافظ جو (JOE) آلياً على تنسيق الفقرات مثل بعض معالجات النصوص. بدلاً من ذلك، إذا كنت بحاجة لإعادة تنسيق فقرة، فاضغط ^K J. هذا الأمر "يملأ" الفقرة التي يوجد بها المؤشر، بحيث يضع أكبر عدد ممكن من الكلمات في السطر الواحد. الفقرة، في هذه الحالة، هي كتلة من النص مفصولة من الأعلى والأسفل بسطر فارغ.

يمكن ضبط الهوامش التي يستخدمها جو (JOE) لتنسيق الفقرات والتفاف الكلمات باستخدام الأمرين ^T L و ^T R. إذا ضُبط الهامش الأيسر على قيمة غير 1، فعندما تبدأ الكتابة في بداية سطر، سيقفز المؤشر فوراً إلى الهامش الأيسر.

هناك عدد من الخيارات التي تتحكم في معيد تنسيق الفقرات وملف الكلمات:

•   يوفر الخيار cpara قائمة من المحارف التي يمكنها إزاحة فقرة. على سبيل المثال، في البريد الإلكتروني يُشار إلى المادة المقتبسة بـ > في بدايات الأسطر، لذا يجب أن يكون هذا المحرف في قائمة cpara.

•   يوفر الخيار cnotpara قائمة من المحارف التي، إذا كانت هي أول محرف غير مسافة بيضاء في السطر، فإنها تشير إلى أن السطر لا يُضمن كجزء من فقرة للتنسيق. على سبيل المثال، الأسطر التي تبدأ بـ '.' في nroff لا يمكن أن تكون أسطر فقرة.

•   يؤثر وضع الإزاحة الآلية على المنسق. إذا عُطلت الإزاحة الآلية، فسيُزاح السطر الأول فقط. أما إذا مُكنت، فستُزاح الفقرة بأكملها.

•   يحدد french عدد المسافات التي تُدرج بعد النقط.

•   عند تمكين flowed، تُدرج مسافة بعد كل سطر في الفقرة باستثناء السطر الأخير. يشير هذا إلى أن الأسطر تنتمي لبعضها كفقرة واحدة في بعض البرامج.

•   عند تمكين overtype، لن يقوم ملف الكلمات بإدراج أسطر.

  التوسيط
إذا أردت توسيط سطر ضمن الهوامش، استخدم الأمر ^K A.

  المدقق الإملائي
اضغط Esc N لتدقيق إملاء الكلمة التي يقف عليها المؤشر باستخدام برنامج aspell (أو برنامج ispell إذا عدلت ملف joerc). اضغط Esc L لتدقيق الكتلة المحددة أو الملف بأكمله إذا لم تُحدد أي كتلة.

يمرر جو (JOE) اللغة وترميز المحارف إلى المدقق الإملائي. لتغيير اللغة، اضغط ^T V. على سبيل المثال، استخدم en_US للإنجليزية.

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

إذا كنت بحاجة للإدراج بينما أنت في وضع الكتابة الفوقية، فاضغط ^@. يقوم هذا بإدراج مسافة واحدة في النص.

  محارف التحكم و ميتا (Meta)
يُمثل كل محرف برقم. على سبيل المثال، رقم المحرف 'A' هو 65 ورقم '1' هو 49. جميع المحارف التي تراها عادةً لها أرقام في النطاق من 32 إلى 126 (يسمى هذا التعيين العشوائي المعين بين المحارف والأرقام مجموعة محارف ASCII). الأرقام خارج هذا النطاق، من 0 إلى 255، لا تُعرض عادةً، ولكن لها أحياناً معانٍ خاصة أخرى. الرقم 10، على سبيل المثال، يُستخدم لكسر الأسطر. يمكنك إدخال هذه محارف التحكم الخاصة وغير المعروضة عن طريق الضغط أولاً على ^Q ثم الضغط على محرف في النطاق @ A B C ... X Y Z [ ^ ] \ _ للحصول على الرقم 0 - 31، و ? للحصول على 127. على سبيل المثال، إذا ضغطت ^Q J، فستدرج محرف كسر السطر، أو إذا ضغطت ^Q I، فستدرج محرف Tab (الذي يفعل نفس ما يفعله مفتاح Tab). من محارف التحكم المفيدة إدخال الرقم 12 (^Q L)، والذي يجعل معظم الطابعات تتقدم إلى أعلى الصفحة. ستلاحظ أن جو (JOE) يعرض هذا المحرف كـ L مسطر. يمكنك إدخال المحارف فوق 127، محارف ميتا، عن طريق الضغط أولاً على ^\. يضيف هذا 128 إلى المحرف (الذي قد يكون محرف تحكم) التالي المدخل. يعرض JOE المحارف التي تزيد عن 128 بفيديو معكوس. بعض اللغات الأجنبية، التي تحتوي على حروف أكثر من الإنجليزية، تستخدم محارف ميتا لبقية أبجديتها. يجب عليك وضع المحرر في وضع asis لتُمرر هذه المحارف دون ترجمة إلى الطرفية.

ملاحظة: يمرر جو (JOE) الآن عادةً جميع الـ 8-بت إلى الطرفية ما لم تكن المحلية (locale) مضبوطة على C أو POSIX. إذا كانت المحلية C أو POSIX، فإن علم asis يحدد ما إذا كانت محارف ميتا ستُعرض في فيديو معكوس أو تُمرر مباشرة إلى الطرفية.

ملاحظة: في الإصدارات الأقدم من جو (JOE)، كان عليك استخدام Esc ' لإدخال محارف التحكم.

مجموعات المحارف و UTF-8
يتعامل جو (JOE) أصلياً مع فئتين من مجموعات المحارف: UTF-8 والمشفرة بالبايت (مثل ISO-8859-1). بالنسبة لمجموعات المحارف هذه، يُحمل الملف كما هو في الذاكرة، ويُحفظ تماماً أثناء الحفظ، حتى لو كان يحتوي على أخطاء في ترميز UTF-8.

لا يمكنه بعد التعامل أصلياً مع الفئات الرئيسية الأخرى مثل UTF-16 أو GB2312. هناك قيود أخرى: يجب أن تستخدم مجموعات المحارف LF (0x0A) أو CR-LF (0x0D - 0x0A) كمنهيات للأسطر، ويجب أن تكون المسافة 0x20 وعلامة التبويب (tab) 0x09. أساساً، يجب أن تكون الملفات ملفات نصية متوافقة مع UNIX أو MS-DOS.

هذا يعني أن EBCDIC لن يعمل بشكل صحيح (ولكنك ستحتاج إلى التعامل مع أسطر بطول سجل ثابت على أي حال) ومجموعات المحارف التي تستخدم أسطراً تنتهي بـ CR (MACs) لن تعمل بعد.

يدعم جو (JOE) الآن UTF-16 (كلا من الطرفية الكبيرة والطرفية الصغيرة). يدعم UTF-16 عن طريق التحويل إلى UTF-8 أثناء التحميل، والتحويل مرة أخرى إلى UTF-16 أثناء الحفظ.

يمكن أن يكون للطرفية والملف ترميزات مختلفة. سيقوم جو (JOE) بالترجمة بينهما. حالياً، يجب أن يكون أحدهما UTF-8 لكي تعمل الترجمة.

تُحدد مجموعة المحارف للطرفية ومجموعة المحارف المبدئية المفترضة للملفات بواسطة متغير البيئة 'LC_ALL' (وإذا لم يكن مضبوطاً، يُفحص أيضًا LC_CTYPE و LANG).

على سبيل المثال، إذا ضُبط LC_ALL على:

    de_DE

فستكون مجموعة المحارف ISO-8859-1.

إذا ضُبط LC_ALL على:

    de_DE.UTF-8

ستكون مجموعة المحارف UTF-8.

اضغط ^T E لتغيير ترميز الملف. اضغط Tab Tab عند هذا المحث للحصول على قائمة بالترميزات المتاحة. هناك عدد من مجموعات المحارف المضمنة، بالإضافة إلى أنه يمكنك تثبيت مجموعات محارف في الدليلين ~/.joe/charmaps و /usr/share/joe/charmaps.

افحص: /usr/share/i18n/charmaps للحصول على أمثلة لملفات مجموعات المحارف. ستعمل مجموعات المحارف الموجهة بالبايت فقط. أيضًا، لا ينبغي أن يكون الملف مضغوطاً بـ gzipped (جميع ملفات خرائط المحارف في /usr/share/i18n/charmaps على حاسوبي كانت مضغوطة). المحلل سيئ للغاية، لذا أساساً يجب أن يبدو الملف تماماً مثل الملف المثال في /usr/share/joe/charmaps.

يمكنك الضغط على ^K Space لرؤية مجموعة المحارف الحالية.

يمكنك الضغط على ^Q x لإدخال محرف يونيكود (Unicode) إذا كان ترميز الملف هو UTF-8.

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

المحثات هي في الواقع نوافذ ذات سطر واحد بدون سطر حالة، لذا يمكنك استخدام أي أمر تحرير تستخدمه عادةً على النص داخل المحثات. تاريخ المحث هو في الواقع مجرد أسطر أخرى من نفس "ملف المحث". وبالتالي يمكنك البحث للخلف عبر تاريخ المحث باستخدام أمر ^K F العادي إذا أردت.

بما أن المحثات عبارة عن نوافذ، يمكنك أيضًا التبديل للخروج منها باستخدام ^K P و ^K N.

  قوائم الإكمال والاختيار
يمكنك الضغط على Tab في أي محث تقريباً لطلب من جو (JOE) إكمال الكلمة التي تكتبها. إذا أصدر JOE صفيراً، فهذا يعني أنه لا توجد إكمالات أو توجد إكمالات كثيرة. كما هو الحال مع صدفة "bash"، اضغط على Tab مرتين لإظهار قائمة بجميع الاحتمالات. هذه القائمة هي في الواقع قائمة خيارات، ولكن افتراضياً، لا يقفز المؤشر إليها لأنه عادةً ما يكون من الأسهل كتابة اختيارك فقط. ومع ذلك، يمكنك القفز إلى نافذة القائمة باستخدام ^K P (الانتقال إلى النافذة السابقة) واستخدام مفاتيح الأسهم و <Enter> لإجراء اختيارك. أيضًا في القائمة، يمكنك الضغط على الحرف الأول من أي عنصر لجعل المؤشر يقفز إليه مباشرةً. تعمل قائمة خيارات ^T بهذه الطريقة.

إذا كانت القائمة كبيرة جداً بحيث لا تتسع في النافذة، يمكنك الضغط على Page Up و Page Down للتمرير (حتى لو لم تكن قد قفزت إليها).

يعمل إكمال Tab في محثات البحث والاستبدال أيضًا. في هذه الحالة، يحاول جو (JOE) إكمال الكلمة بناءً على محتويات المخزن المؤقت. إذا كنت بحاجة للبحث عن محرف Tab نفسه، يمكنك إدخاله بـ ^Q Tab.

أيضًا، يمكنك الضغط على Esc Enter في نافذة نصية لطلب من جو (JOE) إكمال الكلمة التي تكتبها. كما هو الحال مع محث البحث، يحاول JOE إكمال الكلمة بناءً على محتويات المخزن المؤقت. سيظهر قائمة بالاحتمالات إذا ضغطت Esc Enter مرتين.

أين أنا؟
اضغط ^K Space ليقوم جو (JOE) بالإبلاغ عن رقم السطر، ورقم العمود، ورقم البايت في السطر الأخير من الشاشة. يُعرض أيضًا الرقم المرتبط بالمحرف الذي يقف عليه المؤشر (كود ASCII الخاص به). يمكنك جعل رقم السطر و/أو رقم العمود معروضين دائماً على سطر الحالة عن طريق وضع تسلسلات الهروب المناسبة في سلاسل إعداد سطر الحالة. حرر ملف joerc للحصول على التفاصيل.

ماذا لو ضغطت <strong>^K</strong> بالخطأ؟
اضغط على مفتاح المسافة. يؤدي هذا إلى تشغيل أمر غير ضار (يعرض رقم السطر على شريط الحالة).

تعليق المحرر مؤقتاً
إذا كنت بحاجة إلى إيقاف المحرر مؤقتاً والعودة إلى الصدفة، فاضغط ^K Z. قد ترغب في فعل ذلك لإيقاف أي شيء تحرره و الرد على رسالة بريد إلكتروني أو قراءة صفحة الدليل هذه، على سبيل المثال. سيتعين عليك كتابة fg أو exit (سيُخبرك أيهما عند الضغط على ^K Z) للعودة إلى المحرر.

البحث عن نص
اضغط ^K F ليقوم المحرر بالبحث للأمام أو للخلف عن قطعة نصية (سلسلة نصية) لك. سيُطلب منك إدخال النص الذي تريد البحث عنه. بعد الضغط على Enter، سيُطلب منك إدخال الخيارات.
يمكنك فقط الضغط على Enter مرة أخرى ليقوم المحرر بالبحث فوراً للأمام عن النص، أو يمكنك إدخال واحد أو أكثر من هذه الخيارات:

•   b

البحث للخلف بدلاً من الأمام.

•   i

معاملة الحروف الكبيرة والصغيرة كأنها متماثلة عند البحث. عادةً تعتبر الحروف الكبيرة والصغيرة مختلفة.

•   nnn

(حيث nnn هو رقم) إذا أدخلت رقماً، سيبحث جو (JOE) عن التكرار رقم N للنص. هذا مفيد للانتقال إلى أماكن محددة في ملفات مرتبة بطريقة منتظمة ما.

•   r

استبدال النص. إذا أدخلت الخيار r، فسيُطلب منك بعد ذلك نص الاستبدال. في كل مرة يجد فيها المحرر نص البحث، سيُطلب منك ما إذا كنت تريد استبدال نص البحث الموجود بنص الاستبدال. تضغط: y لاستبدال النص ثم العثور على التكرار التالي، n لعدم استبدال هذا النص ولكن العثور على التكرار التالي، r لاستبدال جميع التكرارات المتبقية لنص البحث في بقية الملف دون طلب تأكيد (يخضع ذلك لخيار nnn أعلاه)، أو ^C لإيقاف البحث والاستبدال.

يمكنك أيضًا الضغط على B أو Backspace للرجوع إلى النص الذي عُثر عليه سابقاً (إذا كان قد استُبدل، فسيُتراجع عن الاستبدال).

•   a

يغطي البحث جميع المخازن المؤقتة المحملة. لذا لاستبدال جميع مثيلات "foo" بـ "bar" في جميع ملفات .c في الدليل الحالي:

    joe *.c
       ^K F
           foo <Enter>
           ra <Enter>
           bar <Enter>

•   e

يغطي البحث جميع الملفات في قائمة أخطاء grep أو make. يمكنك استخدام أمر UNIX لإنشاء قائمة بالملفات والبحث والاستبدال عبر القائمة. لذا لاستبدال جميع مثيلات "foo" بـ "bar" في جميع ملفات .c التي تبدأ بـ f. يمكنك أيضًا استخدام "ls" و "find" بدلاً من grep لإنشاء قائمة الملفات.

    Esc G
      grep -n foo f*.c <Enter>
    ^K F
           foo <Enter>
       re <Enter>
       bar <Enter>

•   x

سيستخدم جو (JOE) الصيغة القياسية للتعبيرات النمطية إذا أُعطي هذا الخيار. في الصيغة القياسية، يكون لهذه المحارف معانيها الخاصة مباشرة، ولا يلزم الهروب منها بشرطة مائلة عكسية: ., *, +, ?, {, }, (, ), |, ^, $ و [.

•   y

سيستخدم جو (JOE) صيغة JOE للتعبيرات النمطية بدلاً من الصيغة القياسية. هذا يتجاوز خيار "-regex".

•   v

سيرسل جو (JOE) معلومات تنقيح حول التعبير النمطي إلى سجل بدء التشغيل. يمكن عرض السجل باستخدام أمر showlog.

يمكنك الضغط على ^L لتكرار البحث السابق.

يمكنك الضغط على ^K H عند محث خيارات البحث والاستبدال لإظهار قائمة بجميع خيارات البحث والاستبدال.

  التعبيرات النمطية
يمكن إدخال عدد من تسلسلات المحارف الخاصة كنص بحث:

•   \*

يبحث هذا عن صفر أو أكثر من العنصر الموجود على اليسار. على سبيل المثال، إذا أعطيت AB\*C كنص بحث، سيحاول جو (JOE) العثور على A يتبعها أي عدد من الـ Bs، ثم C.

•   \+

يبحث هذا عن واحد أو أكثر من العنصر الموجود على اليسار. على سبيل المثال، إذا أعطيت AB\+C كنص بحث، سيحاول جو (JOE) العثور على A يتبعها واحد أو أكثر من الـ Bs، ثم C.

•   \?

يشير هذا إلى أن العنصر الموجود على اليسار اختياري. على سبيل المثال، إذا أعطيت AB\?C كنص بحث، سيجد جو (JOE) النص AC أو ABC.

•   \{الأدنى,الأقصى}

يشير هذا إلى أنه يجب على جو (JOE) محاولة العثور على سلسلة نصية بعدد محدد من تكرارات العنصر الموجود على اليسار. على سبيل المثال، AX\{2,5}B ستطابق هذه السلاسل: AXXB، و AXXXB، و AXXXXB، و AXXXXXB. يمكن ترك الأدنى (Min) فارغاً للإشارة إلى 0 تكرار. كما يمكن ترك الأقصى (Max) (والفاصلة) فارغاً للإشارة إلى أي عدد من التكرارات.

•   \.

يبحث هذا عن محرف واحد بالضبط. على سبيل المثال، إذا أعطيت A\.B كنص بحث، سيجد جو (JOE) النص AXB، وليس AB أو AXXB.

•   \!

يعمل هذا مثل .، ولكنه يطابق تعبيراً متوازناً بلغة C. على سبيل المثال، إذا بحثت عن malloc(\!\*)، فسيجد جو (JOE) جميع استدعاءات الدالة لـ malloc، حتى لو كان هناك ) داخل القوسين.

•   \|

يبحث هذا عن العنصر الموجود على اليسار أو العنصر الموجود على اليمين. على سبيل المثال، إذا أعطيت A\|B كنص بحث، سيحاول جو (JOE) العثور على A أو B.

•   \( \)

استخدم هذين لتجميع المحارف معاً. على سبيل المثال، إذا بحثت عن \(foo\)\+، فسيجد جو (JOE) سلاسل مثل "foo"، و "foofoofoo".

•   ^ \$

تطابق هذه بدايات ونهايات الأسطر. على سبيل المثال، إذا أعطيت ^test\$، فسيجد جو (JOE) الكلمة test في سطر بمفردها.

•   \\\

تطابق هذه بدايات ونهايات الكلمات. على سبيل المثال، إذا أعطيت \is\\، فسيجد جو (JOE) كلمة "is" ولكنه لن يجد "is" الموجودة في "this".

•   \[...]

يطابق هذا أي محرف واحد يظهر داخل الأقواس. على سبيل المثال، إذا أُدخل \[Tt]his كسلسلة بحث، فسيجد جو (JOE) كلاً من This و this. يمكن إدخال نطاقات من المحارف داخل الأقواس. على سبيل المثال، \[A-Z] يجد أي حرف كبير. إذا كان الحرف الأول المعطى في الأقواس هو ^، فسيحاول JOE العثور على أي محرف غير معطى في الأقواس. لتضمين محرف - نفسه، ضمنه كآخر أو أول محرف (ربما بعد ^).

•   \\

يطابق \ واحدة.

•   \n

يبحث هذا عن محرف نهاية السطر أو كسر السطر الخاص.

يمكن أيضًا إعطاء عدد من تسلسلات المحارف الخاصة في سلسلة الاستبدال:

•   \&

يُستبدل هذا بالنص الذي طابق سلسلة البحث. على سبيل المثال، إذا كانت سلسلة البحث \\*\\، والتي تطابق الكلمات، وأعطيت "\&"، فسيقوم جو (JOE) بوضع علامات اقتباس حول الكلمات.

•   \1 - \9

تُستبدل هذه بالنص الذي طابق التجميع رقم N؛ النص داخل المجموعة رقم N من \( \).

•   \l, \u

تحويل المحرف التالي من نص الاستبدال إلى حرف صغير أو حرف كبير.

•   \L, \U

تحويل كل نص الاستبدال التالي إلى حروف صغيرة أو حروف كبيرة. يتوقف التحويل عند مواجهة \E.

•   \\

استخدم هذا إذا كنت بحاجة لوضع \ في سلسلة الاستبدال.

•   \n

استخدم هذا إذا كنت بحاجة لوضع كسر سطر في سلسلة الاستبدال.

بعض الأمثلة:

افترض أن لديك قائمة بالعناوين، كل منها في سطر منفصل، تبدأ بـ "Address:" ويفصل بين كل عنصر فيها فواصل. هكذا:

Address: S. Holmes, 221b Baker St., London, England

إذا أردت إعادة ترتيب القائمة، لتحصل على البلد أولاً، ثم المدينة، ثم اسم الشخص، ثم العنوان، يمكنك فعل ذلك:

اكتب ^K F لبدء البحث، واكتب:

Address:\(\.\*\),\(\.\*\),\(\.\*\),\(\.\*\)\$

لمطابقة "Address:"، والعناصر الأربعة المفصولة بفاصلة، ثم نهاية السطر. عند السؤال عن الخيارات، ستكتب r لاستبدال السلسلة، ثم تكتب:

Address:\4,\3,\1,\2

لتبديل المعلومات بالطريقة التي تريدها. بعد الضغط على مفتاح return، سيبدأ البحث، وسيُغير السطر التجريبي إلى:

Address: England, London, S. Holmes, 221b Baker St.

  تسلسلات الهروب
يفهم جو (JOE) تسلسلات الهروب التالية داخل سلاسل البحث والاستبدال:

•   \x{10ffff}

يطابق هذا نقطة كود يونيكود محددة معطاة بالنظام الست عشري.

•   \xFF

يطابق هذا محرفًا محددًا بنظام العد الست عشري.

•   \377

يطابق هذا محرفًا محددًا بنظام العد الثماني.

•   \p{Ll}

يطابق هذا أي محرف في فئة أو كتلة يونيكود (Unicode) المسماة.

يمكن العثور على أسماء الكتل، مثل "Latin-1 Supplement" أو "Arabic" هنا:

كتل يونيكود ftp://ftp.unicode.org/Public/8.0.0/ucd/Blocks.txt

يمكن العثور على أسماء الفئات مثل "Ll" هنا:

فئات يونيكود ftp://ftp.unicode.org/Public/5.1.0/ucd/UCD.html#General_Category_Values

لاحظ أن حرفًا واحدًا يطابق جميع أسماء الفئات التي تبدأ بذلك الحرف. على سبيل المثال، \p{N} (أي رقم) تتضمن \p{Nd} (رقم عشري)، و \p{Nl} (رقم حرفي) و \p{No} (رقم آخر).

•   \d

يطابق هذا أي رقم يونيكود. وهذا مماثل لـ \p{Nd}.

•   \D

يطابق هذا أي شيء عدا أرقام يونيكود. وهذا مماثل لـ \[^\p{Nd}].

•   \w

يطابق هذا أي محرف كلمة. وهذا مماثل لـ \[^\p{C}\p{P}\p{Z}].

•   \W

يطابق هذا أي شيء عدا محارف الكلمات. وهذا مماثل لـ \[\p{C}\p{P}\p{Z}].

•   \s

يطابق هذا أي محرف مسافة. وهذا مماثل لـ \[\t\r\f\n\p{Z}].

•   \S

يطابق هذا أي شيء عدا محارف المسافات. وهذا مماثل لـ \[^\t\r\f\n\p{Z}].

•   \i

يطابق هذا محرف بداية المعرّف. وهذا مماثل لـ \[\p{L}\p{Pc}\p{Nl}].

•   \I

يطابق هذا أي شيء عدا محرف بداية المعرّف. وهذا مماثل لـ \[^\p{L}\p{Pc}\p{Nl}].

•   \c

يطابق هذا محرف متابعة المعرّف. وهذا مماثل لـ \[\i\p{Mn}\p{Mc}\p{Nd}\x{200c}\x{200d}].

•   \C

يطابق هذا أي شيء عدا محرف متابعة المعرّف. وهذا مماثل لـ \[^\i\p{Mn}\p{Mc}\p{Nd}\x{200c}\x{200d}].

•   \t علامة تبويب (Tab)

•   \n سطر جديد

•   \r محرف الرجوع

•   \b محرف الرجوع للخلف

•   \a تنبيه

•   \f محرف تغذية الصفحة

•   \e محرف الهروب

•   \\ مائل عكسي

بحث تزايدي
استخدم Esc S لبدء بحث تزايدي للأمام، أو Esc R لبدء بحث تزايدي للخلف. بينما تكتب سلسلة البحث، سيقفز المؤشر إلى أول نص يطابق التعبير النمطي الذي أدخلته حتى الآن.

اضغط على Esc S أو Esc R مجددًا للعثور على التكرار التالي للنص أو لتبديل اتجاه البحث.

^S و ^\ و ^L لها نفس تأثير Esc S. ولـ ^R نفس تأثير Esc R. هذه المفاتيح مخصصة لدعم JMACS.

اضغط على Backspace للتراجع عن إجراء البحث التزايدي الأخير. قد يكون الإجراء الأخير تكرارًا لبحث سابق أو إدخال محرف جديد.

استخدم ^Q لإدراج محارف تحكم في نص البحث. سابقًا، كان يمكن استخدام ` لهذا الغرض أيضًا.

اضغط على أي مفتاح آخر للخروج من البحث التزايدي.

الانتقال إلى المحدد المطابق
اضغط ^G للقفز بين المحددات المتطابقة. يعمل هذا على كل من محددات المحارف (مثل '(' و ')') ومحددات الكلمات للغات مثل Pascal و Verilog التي تستخدم "begin" و "end" لتحديد الكتل. كما يعمل أيضًا لمطابقة وسوم البداية والنهاية في XML. إذا كانت الكلمة غير معروفة، سيبدأ ^G بحثًا مع نقل الكلمة إلى حث البحث.

لكي يعمل ^G على محددات الكلمات، يجب وضع المؤشر على الحرف الأول من الكلمة. لذا في XML، إذا كان المؤشر على < في <foo>، فسيقفز إلى >. ولكن إذا كان على 'f'، فسيقفز إلى </foo> المطابق. وبالمثل، في لغة C، سيقفز ^G بين #if و #else و #endif، ولكن عليك وضع المؤشر على الحرف، وليس على '#'.

^G ذكي بما يكفي لتجاوز المحددات الموجودة في نصوص مقتبسة أو ضمن تعليقات. تحتاج لإخبار JOE كيف تشير لغتك إلى ذلك: راجع ملف ftyperc للحصول على أمثلة حول كيفية القيام بذلك.

هناك عدد من الخيارات التي تتحكم في سلوك ^G. تتحكم هذه الخيارات في أنواع التعليقات التي يمكن لـ ^G تجاوزها:

•   c_comment

•   cpp_comment

•   pount_comment

•   semi_comment

•   vhdl_comment

تحدد هذه الخيارات أنواع السلاسل التي يمكن لـ ^G تجاوزها:

•   single_quoted

•   double_quoted

يسمح هذا الخيار لملف بناء جملة مشروح بتحديد النص الذي يمكن اعتباره تعليقات أو سلاسل يمكن لـ ^G تجاوزها:

•   highlighter_context

يفعّل هذا الخيار استخدام ملفات بناء الجملة لتحديد التعليقات والسلاسل التي يجب تجاوزها أثناء مطابقة ^G. يجب شرح حالات ملف بناء الجملة بالكلمات المفتاحية string و comment ليعمل هذا.

•   text_delimiters

يوفر هذا الخيار قائمة بمحددات الكلمات للمطابقة. على سبيل المثال، "begin=end:if=elif=else=endif" تعني أن ^G سيقفز بين if و elif و else و endif المتطابقة. كما سيقفز أيضًا بين begin و end.

يحتوي ^G على جدول مدمج لمطابقة محددات المحارف - فهو يعرف أن ( تتوافق مع ).

يحتوي ^G على محلل مدمج للتعامل مع مطابقة وسوم البداية والنهاية لـ XML.

المناطق
إذا كنت تريد نقل قسم معين من النص أو نسخه أو حفظه أو حذفه، يمكنك القيام بذلك باستخدام الكتل المظللة. أولاً، حرك المؤشر إلى بداية قسم النص الذي تريد العمل عليه، واضغط ^K B. ثم حرك المؤشر إلى المحرف الذي يلي نهاية النص الذي تريد التأثير عليه واضغط ^K K. سيُظلل النص بين ^K B و ^K K. يمكنك الآن تحريك المؤشر إلى مكان آخر في مستندك والضغط على ^K M لنقل النص المظلل إلى هناك.
يمكنك الضغط على ^K C لعمل نسخة من النص المظلل وإدراجها حيث يوضع المؤشر. و ^K Y لحذف النص المظلل. و ^K W لكتابة النص المظلل في ملف.

أمر مفيد للغاية هو ^K /، الذي يمرر كتلة من النص عبر أمر UNIX. على سبيل المثال، إذا اخترت قائمة كلمات باستخدام ^K B و ^K K، ثم كتبت ^K / sort، فستُفرز قائمة الكلمات. أمر UNIX مفيد آخر لـ ^K / هو tr. إذا كتبت ^K / tr a-z A-Z، فستُحول جميع الحروف في الكتلة المظللة إلى أحرف كبيرة.

  كيف ألغي اختيار منطقة مظللة؟
بعد الانتهاء من بعض العمليات على المنطقة، يمكنك ببساطة ترك التظليل مشغلاً إذا كنت لا تمانع ذلك (لكن لا تضغط بالخطأ على ^K Y). أما إذا كان يزعجك حقًا، فما عليك سوى الضغط على ^K B ^K K لإيقاف التظليل.

بدءًا من JOE 4.2، يمكنك الضغط على ^C لإلغاء اختيار المنطقة.

  طرق جديدة لاختيار المناطق
الطريقة التقليدية هي الضغط على ^K B في البداية و ^K K في النهاية. تضبط هذه الإجراءات مؤشرات تسمى markb و markk. بمجرد ضبطها، يمكنك القفز إلى markb باستخدام Esc B والقفز إلى markk باستخدام Esc K.

طريقة جديدة: اضغط Ctrl-السهم الأيمن لبدء الاختيار جهة اليمين. في كل مرة تضغط فيها على Ctrl-السهم الأيمن، تُممد الكتلة بمقدار واحد إضافي جهة اليمين. يستخدم هذا ماكرو بسيط: "begin_marking,rtarw,toggle_marking".

للأسف، لا توجد طريقة قياسية للحصول على تسلسل المفاتيح الذي يعطيه محاكي الطرفية عند الضغط على Ctrl-السهم الأيمن. بدلاً من ذلك، عليك تحديد هذا التسلسل بنفسك وإدخاله مباشرة في ملف joerc. تتوفر بعض الأمثلة لـ Xterm و gnome-terminal. اضغط ^Q ثم Ctrl-السهم الأيمن داخل JOE لإظهار التسلسل على شاشتك. لاحظ أن Putty يستخدم Esc Esc [ C والذي لن يظهر مع ^Q السهم الأيمن (كما أن Esc Esc هو أمر ضبط العلامة المرجعية، لذا تحتاج لإلغاء ربطه للقيام بذلك في Putty).

كما يمكنك الضغط على Ctrl-Delete للقص و Ctrl-Insert للصق إذا كان تسلسل هذه المفاتيح معروفًا.

يمكن أيضًا استخدام الفأرة لاختيار النص إذا كان دعم الفأرة مفعلاً في JOE.

إزاحة كتل البرامج
يُبدل وضع الإزاحة الآلية باستخدام أمر ^T I. عادةً ما يُضبط ملف joerc بحيث يكون وضع الإزاحة الآلية مفعلاً للملفات التي تنتهي أسماؤها بـ .p أو .c أو .h. عند تفعيل وضع الإزاحة الآلية والضغط على Enter، سيوضع المؤشر في نفس العمود الذي كان عليه أول محرف غير فارغ في السطر الأصلي.

يمكنك استخدام الأمرين ^K , و ^K . لإزاحة كتلة نصية إلى اليسار أو اليمين. إذا لم يكن هناك تظليل محدد عند إعطاء هذه الأوامر، فستُختار كتلة البرنامج (كما تشير الإزاحة) التي يقع فيها المؤشر، وستُنقل بواسطة أوامر ^K , و ^K . اللاحقة.

يمكن ضبط عدد الأعمدة التي تزاح بها هذه الأوامر والمحرف المستخدم للإزاحة من خلال خياري istep و indentc. هذه الخيارات متاحة في قائمة ^T. أيضًا، يمكن استخدام ^T = للاختيار السريع من بين عدد من القيم الشائعة لخطوة الإزاحة ومحرفها.

يحتوي JOE على عدد من الخيارات الإضافية المتعلقة بإزاحة البرامج:

•   smartbacks
    تفعيل مسافة الرجوع وعلامة التبويب الذكية. عند ضبط هذا الوضع، يقوم Backspace و Tab بالإزاحة للداخل أو للخارج بناءً على قيم خياري istep و indentc.

•   smarthome
    مفتاحا Home و ^A يحركان المؤشر أولاً إلى بداية السطر، ثم إذا ضُغط عليهما مرة أخرى، إلى أول محرف غير فارغ.

•   indentfirst
    مفتاح البداية الذكي يذهب إلى أول محرف غير فارغ أولاً، بدلاً من الذهاب إلى بداية السطر أولاً.

•   purify
    أصلح الإزاحة إذا لزم الأمر قبل الإزاحة أو المسافة الخلفية الذكية. على سبيل المثال، إذا كانت الإزاحة تستخدم مزيجاً من علامات الجدولة والمسافات، وكان indentc هو المسافة، فستُحول الإزاحة إلى مسافات بالكامل قبل عملية الإزاحة.

•   guess_indent
    عند ضبطه، يحاول JOE تخمين محرف الإزاحة وخطوة الإزاحة بناءً على محتويات الملف. الخوارزمية هي العثور على القاسم المشترك الأكبر للإزاحات الثلاث الأكثر شيوعاً الموجودة في الملف.

وضع المستطيل
اكتب ^T X لجعل ^K B و ^K K يختاران كتل مستطيلة بدلاً من كتل تدفق النص. يُعرف هذا أيضًا بالوضع العمودي. هذا الوضع مفيد لنقل أعمدة النص أو نسخها أو حذفها أو حفظها. يمكنك أيضًا تصفية أعمدة النص باستخدام أمر ^K / - إذا كنت تريد فرز عمود، على سبيل المثال. يتأثر أمر إدراج الملف، ^K R، أيضًا.

عند اختيار وضع المستطيل، يكون وضع الكتابة الفوقية مفيدًا أيضًا (^T T). عند اختيار وضع الكتابة الفوقية، ستحل المستطيلات محل النص الموجود بدلاً من إدراجها قبله. كما أن أمر حذف الكتلة (^K Y) سيقوم بمسح المستطيل المختار باستخدام المسافات وعلامات التبويب بدلاً من حذفه. وضع الكتابة الفوقية مفيد بشكل خاص لأمر تصفية الكتلة (^K /)، لأنه سيحافظ على العرض الأصلي للعمود المختار.

وضع الصورة
استخدم ^T P للدخول إلى وضع الصورة أو الخروج منه. يساعد وضع الصورة في رسومات ASCII.

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

إذا حاولت كتابة محرف في هذه الحالة:

إذا كان وضع الصورة مغلقًا، فسيقفز المؤشر إلى نهاية السطر ويدرجه هناك.

إذا كان وضع الصورة مفعلًا، فسيملأ السطر بالمسافات بحيث يمكن إدراج المحرف في موضع المؤشر.

Windows
يمكنك تحرير أكثر من ملف واحد في نفس الوقت أو تحرير مكانين مختلفين أو أكثر لنفس الملف. للقيام بذلك، اضغط ^K O لتقسيم الشاشة إلى نافذتين. استخدم ^K P أو ^K N لتحريك المؤشر إلى النافذة العلوية أو النافذة السفلية. استخدم ^K E لتحرير ملف جديد في إحدى النوافذ. ستختفي النافذة عند حفظ الملف باستخدام ^K X أو إنهاء الملف باستخدام ^C. إذا أنهيت ملفًا موجودًا في نافذتين، فستختفي إحدى النوافذ، وليس الملف.

يمكنك الضغط على ^K O داخل نافذة لإنشاء المزيد من النوافذ. إذا كان لديك عدد كبير جدًا من النوافذ على الشاشة، ولكنك لا تريد إزالتها، يمكنك الضغط على ^K I. سيؤدي هذا إلى إظهار النافذة التي يوجد بها المؤشر فقط، أو إذا لم يكن هناك سوى نافذة واحدة على الشاشة في البداية، فسيحاول احتواء جميع النوافذ المخفية على الشاشة. إذا كان هناك عدد من النوافذ أكثر مما يمكن أن يتسع له على الشاشة، يمكنك الضغط على ^K N في النافذة السفلية أو ^K P في النافذة العلوية للوصول إليها.

إذا أعطيت أكثر من اسم ملف لـ JOE في سطر الأوامر، فسيُوضع كل ملف في نافذة مختلفة.

يمكنك تغيير ارتفاع النوافذ باستخدام أَمري ^K G و ^K T.

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

يحاول JOE الأصلي إبقاء كل مخزن مؤقت مُحمّل في نافذة، بحيث يمكن للمستخدمين العثور على جميع المخازن المؤقتة من خلال التمرير عبر النوافذ. يقوم أمر explode (^K I) إما بتوسيع جميع النوافذ إلى حجم الشاشة بحيث تتسع نافذة واحدة فقط على الشاشة، أو يقلصها جميعًا قدر الإمكان لاحتواء الكثير منها على الشاشة.

من ناحية أخرى، يدعم JOE المخازن المؤقتة "اليتيمة" - وهي ملفات مُحملة في المحرر ولكنها ليست في نافذة. يقوم ^C عادةً بإغلاق نافذة والتخلص من المخزن المؤقت الذي كان فيها. إذا ضغطت على ^C في آخر نافذة متبقية، فسيخرج عادةً من المحرر. ومع ذلك، إذا كانت هناك مخازن مؤقتة يتيمة، فسيقوم ^C بدلاً من ذلك بتحميلها في هذه النافذة النهائية لمنحك فرصة للتخلص منها صراحة. إذا أُعطي خيار orphan في سطر الأوامر، كما في joe -orphan *.c، فإن JOE يقوم فقط بتحميل الملف الأول في نافذة ويترك الباقي كيتامى.

يتحكم orphan أيضًا فيما إذا كان أمر التحرير ^K E ينشئ نافذة جديدة لملف مُحمل حديثًا، أو يعيد استخدام النافذة الحالية (مما يجعل شاغلها السابق يتيمًا).

يطلب أمر bufed اسمًا لمخزن مؤقت للتبديل إليه في نافذة. ستُظهر قائمة الإكمال الخاصة به جميع المخازن المؤقتة، بما في ذلك اليتامى والمخازن المؤقتة التي تظهر في نوافذ أخرى. تسمح لك أَمري Esc V و Esc U (أَمري nbuf و pbuf) بالتنقل عبر جميع المخازن المؤقتة داخل نافذة واحدة.

تحافظ النوافذ على مكدس من الشاغلين لدعم ميزة نافذة الصدفة المنبثقة. عند إغلاق نافذة منبثقة، يُعاد المخزن المؤقت السابق إلى النافذة.

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

تقوم الأوامر التالية بتحميل مخازن مسودة مؤقتة:

•   showlog عرض سجل بدء التشغيل

•   mwind عرض نافذة الرسائل (رسائل التجميع / grep من أَمري Esc C و Esc G).

ماكروهات لوحة المفاتيح
تسمح لك الماكروهات بتسجيل سلسلة من ضغطات المفاتيح وإعادة تشغيلها بضغط مفتاحين. هذا مفيد لأتمتة المهام المتكررة. لبدء تسجيل ماكرو، اضغط ^K [ متبوعًا برقم من 0 إلى 9. سيعرض سطر الحالة (جاري تسجيل الماكرو n...). الآن، اكتب سلسلة ضغطات المفاتيح التي تريد تكرارها. الأوامر التي تكتبها سيكون لها تأثيراتها المعتادة. اضغط ^K ] لإيقاف تسجيل الماكرو. اضغط ^K متبوعًا بالرقم الذي سجلت فيه الماكرو لتنفيذ تكرار واحد لضغطات المفاتيح.

على سبيل المثال، إذا كنت تريد وضع "**" أمام عدد من الأسطر، يمكنك كتابة:

^K [ 0 ^A **سهم للأسفل\ ^K ]

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

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

  تعليق للاستعلام
إذا كان الماكرو الخاص بك يتضمن طلبًا لمدخلات المستخدم، وكنت تريد من المستخدم ملء الطلب في كل مرة يتم فيها تنفيذ الماكرو، فاضغط ^K ? عند النقطة في تسجيل الماكرو التي يتطلب فيها إجراء المستخدم. لن يُسجل إدخال لوحة المفاتيح عند هذه النقطة. عندما يكمل المستخدم الطلب، سيستمر تسجيل الماكرو.

عند تنفيذ الماكرو، سيتوقف مشغل الماكرو مؤقتًا عند النقطة التي أُدخل فيها ^K ? للسماح بإدخال المستخدم. عندما يكمل المستخدم الطلب، يواصل المشغل بقية الماكرو.

  تكرار
يمكنك استخدام أمر التكرار، ^K \، لتكرار ماكرو، أو أي أمر تحرير آخر أو حتى محرف عادي، لعدد محدد من المرات. اضغط ^K \، واكتب عدد المرات التي تريد تكرار الأمر فيها واضغط Enter. سيُكرر أمر التحرير التالي الذي ستعطيه الآن ذلك العدد من المرات. على سبيل المثال، لحذف الـ 20 سطرًا التالية من النص، اكتب:

^K \ 20return^Y

الماكروهات والأوامر
الماكرو هو قائمة من الأوامر مفصولة بفاصلة. عند تنفيذ الماكرو، يُنفذ كل أمر حتى يتم الوصول إما إلى نهاية القائمة، أو يفشل أحد الأوامر (قيمة إرجاع غير صفرية من الأمر). تُصدر الأوامر الفاشلة صافرة إذا كنت قد فعلت الصافرات (^T B).

اضغط Esc D لإدراج المجموعة الحالية من ماكروهات لوحة المفاتيح كنص في المخزن المؤقت الحالي. على سبيل المثال، يبدو ماكرو إدراج "**" المذكور أعلاه كما يلي:

    home,"**",dnarw ^K 0    الماكرو 0

يمكنك إدراج هذا في ملف .joerc الخاص بك وتغيير تسلسل المفاتيح (K 0) إلى شيء أكثر ديمومة.

  عرّف ماكروهاتك الخاصة
يمكنك ربط الماكروهات بتسلسلات المفاتيح أو تعريف الماكروهات المسماة الخاصة بك في ملف joerc. على سبيل المثال، سيقوم هذا بتعريف ماكرو يسمى foo:

    :def foo eof,bol

سيقوم foo بوضع المؤشر في بداية السطر الأخير من الملف. eof يقفز إلى نهاية الملف. bol يقفز إلى بداية السطر. بمجرد تسمية الماكرو بهذه الطريقة، سيظهر في قائمة الإكمال لحث أمر Esc X.

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

هنا قائمة كاملة بالأوامر.

  معدل عدم توقف الماكرو
في بعض الأحيان، تتوقع أن تفشل الأوامر أحيانًا، لكنك تريد تنفيذ بقية الأوامر في القائمة على أي حال. لتمييز أمر مسموح له بالفشل، ألحقه بـ '!'. على سبيل المثال، هنا ماكرو يضغط لأسفل الصفحة في النافذة أعلاه:

    prevw,pgdn!,nextw

إذا فشل prevw، يتم إحباط الماكرو كالمعتاد. وحتى لو فشل pgdn (بالفعل في نهاية المخزن المؤقت)، سيُنفذ nextw بحيث يعود المؤشر إلى النافذة الأصلية.

  معدلات معطيات تكرار الماكرو
يمكن تحديد معطيات التكرار باستخدام ^K \. عندما يُنفذ أمر بمعطى تكرار، فإنه يُنفذه بشكل متكرر بالعدد المحدد من المرات. إذا كان معطى التكرار سالبًا، يُنفذ أمر معاكس (إن وجد) بدلاً منه. على سبيل المثال، إذا كررت "rtarw" بمقدار -3 مرات، فسيتم تكرار "ltarw" بمقدار 3 مرات. إذا أُعطي معطى سالب لأمر ليس له معاكس، تُتجاهل معطى التكرار.

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

أحيانًا تريد السماح بمعطيات سالبة للماكروهات وتعديل سلوكها. للقيام بذلك، ألحق كل أمر داخل الماكرو يجب تبديله إلى معاكسه للمعطيات السالبة بـ '-'. على سبيل المثال، إليك ماكرو الصفحة لأسفل في النافذة الأخرى:

    prevw,pgdn-!,nextw

الآن إذا نفذت هذا بمعطى -2، فسيتم تكراره مرتين، ولكن سيُنفذ pgup بدلاً من pgdn. (لاحظ أنه يمكن وضع عدة معدلات لاحقة بعد كل أمر).

في بعض الأحيان عند إعطاء معطى تكرار للماكرو، تريد تكرار واحد فقط من الأوامر في القائمة، وليس الماكرو بأكمله. يمكن الإشارة إلى ذلك كما يلي:

    prevw,pgdn#!,nextw

إذا نُفذ هذا بمعطى 2، فسيُنفذ prevw مرة واحدة، و pgdn مرتين، و nextw مرة واحدة.

أخيرًا، يمكن التعبير عن دلالات أكثر تعقيدًا باستخدام أمر "if":

    if~,"arg<0",then,
        ltarw,
    else,
        rtarw,
    endif

عند تنفيذ الماكرو، يُضبط المتغير الرياضي "arg" على معطى التكرار المعطى. ويُضبط المتغير "argset" على true إذا قام المستخدم بضبط معطى، حتى لو كان 1. وإذا لم يتم إعطاء أي معطى، فإن argset يكون false.

إذا كان أي أمر في القائمة متبوعًا بـ ~ (if أعلاه)، فلن يتكرر الماكرو، حتى لو كان هناك معطى. ومع ذلك، لا يزال يُضبط 'arg' على عدد التكرار المعطى.

  تفاعل 'psh'/'query'
يقوم أمر 'psh' بحفظ وضعي ^K B و ^K K في مكدس. عند اكتمال الماكرو (أو عند استدعاء أمر 'pop')، تُستعاد المواضع.

يعلّق الأمر 'query' تنفيذ الماكرو حتى يكتمل الحوار الحالي. كما يعلّق عملية 'pop' الآلية التي تحدث في نهاية الماكرو- لذا إذا انتهى الماكرو في حوار، فغالباً ما ترغب في استدعاء 'query' لمنع استعادة مواضع ^K B ^K K مبكراً جداً.

بحث الأوسام
إذا كنت تحرر برنامج C ضخماً يضم العديد من ملفات المصدر، فيمكنك استخدام برنامج ctags لتوليد ملف tags. يحتوي هذا الملف على قائمة برموز البرنامج والملفات والمواضع التي عُرّفت فيها تلك الرموز.

أولاً، أنشئ ملف الأوسام باستخدام برنامج "ctags". على سبيل المثال:

    ctags *.c *.h

سيؤدي هذا إلى إنشاء ملف يسمى "tags" في الدليل الحالي.

يبحث JOE عن ملف "tags" في الدليل الحالي. وفي حال عدم وجوده، سيحاول فتح الملف المحدد بواسطة متغير البيئة TAGS.

المسارات في ملف الأوسام تكون دائماً نسبية لموقع ملف الأوسام ذاته.

يحتوي ملف الأوسام على قائمة بمواقع تعريف المعرفات بأحد هذه التنسيقات:

    identifier filename /search-expression/[;comments]

    identifier filename ?search-expression?[;comments]

    identifier filename line-number[;comments]

تتضمن بعض إصدارات ctags أسماء الفئات في المعرفات:

    class::member

في هذه الحالة، سيطابق JOE أيًا من هذه السلاسل النصية:

    member
    ::member
    class::member

تتضمن بعض إصدارات ctags اسم ملف في المعرف:

    filename:identifier

في هذه الحالة سيجد JOE المعرف فقط إذا تطابق اسم المنظم مع اسم الملف.

تعبير البحث هو تعبير نمطي لـ vi، لكن JOE يدعم فقط المحارف الخاصة التالية:

    ^ في البداية تعني أن التعبير يبدأ في بداية السطر

    $ في النهاية تعني أن التعبير ينتهي في نهاية السطر

    \x اقتباس x (إلغاء معنى / أو ؟ أو ^ أو $)

اكتب ^K ; لإظهار محث البحث عن الأوسام. إذا كان المؤشر فوق معرف، فسيُحمّل المحث به مسبقاً. يعمل الإكمال بمفتاح Tab في هذا المحث (يستخدم ملف الأوسام للعثور على الإكمالات).

عندما تضغط Enter، يبدأ البحث عن الأوسام:

إذا وجد تطابق واحد فقط، فسينتقل JOE مباشرة إلى التعريف.

إذا كانت هناك تطابقات متعددة، فسيُتحكم في السلوك عبر خيار notagsmenu. إذا كان notagsmenu مفعلاً، ينتقل JOE إلى التعريف الأول. إذا ضغطت ^K ; مرة أخرى قبل ضغط أي مفاتيح أخرى، ينتقل JOE إلى التعريف التالي، وهكذا. يؤدي الأمر "tagjump" هذه الوظيفة أيضًا.

إذا كان notagsmenu معطلاً، يعرض JOE قائمة بجميع التطابقات. تختار ما تريد وينتقل JOE إليه. إذا ضغطت ^K ; مرة أخرى قبل ضغط أي مفاتيح أخرى، تظهر القائمة نفسها مجدداً مع بقاء المؤشر في الموقع الأصلي.

يمكنك ضغط ^K - لنقل المؤشر إلى الموقع الأصلي قبل البحث عن الأوسام (وغالباً ما سيعمل ^C أيضًا).

بما أن ^K ; يحمل ملف التعريف في النافذة الحالية، فمن المحتمل أنك سترغب في تقسيم النافذة أولاً باستخدام ^K O، ليُحمّل كلا الملفين الأصلي وملف التعريف.

الحاسبة
يحتوي JOE على حاسبة مدمجة يمكن استدعاؤها باستخدام Esc M.

  الدوال الرياضية
sin, cos, tan, exp, sqrt, cbrt, ln, log, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, int, floor, ceil, abs, erf, erfc, j0, j1, y0, y1

  المتغيرات

•   e
    مُعين إلى 'e'

•   pi
    مُعين إلى 'pi'

•   top
    مُعين إلى رقم سطر نافذة الرئيس العلوية

•   lines
    مُعين إلى عدد الأسطر في الملف

•   line
    مُعين إلى رقم السطر الحالي

•   col
    مُعين إلى رقم العمود الحالي

•   بايت
    مُعين إلى رقم البايت الحالي

•   size
    مُعين إلى حجم المنظم

•   height
    مُعين إلى ارتفاع النافذة

•   width
    مُعين إلى عرض النافذة

•   char
    مُعين إلى قيمة ASCII للمحرف تحت المؤشر

•   markv
    صحيح إذا ضُبطت كتلة صالحة (^KB ... ^KK)

•   rdonly
    صحيح إذا كان الملف للقراءة فقط

•   arg
    معامل التكرار الحالي

•   argset
    صحيح إذا أُعطي معامل تكرار

•   is_shell
    صحيح إذا نُفذ في نافذة صدفة نشطة

•   no_windows
    عدد نوافذ المنظم على الشاشة

•   ans
    نتيجة التعبير السابق

  الأوامر

•   hex
    وضع العرض الست عشري

•   dec
    وضع العرض العشري

•   ins
    إدراج 'ans' في المنظم

•   sum
    مجموع الأرقام في الكتلة

•   cnt
    حساب عدد الأرقام في الكتلة

•   avg
    متوسط قيمة الأرقام في الكتلة

•   dev
    الانحراف المعياري للأرقام في الكتلة

•   eval
    تقييم التعبيرات الرياضية في الكتلة (أو الملف بأكمله إذا لم تُضبط كتلة).

•   joe(...)
    تنفيذ ماكرو JOE (بمعامل بنفس تنسيق ماكروهات ملف joerc). تُرجع قيمة إرجاع ماكرو JOE (لنجاح الماكرو، أرجع صحيح (غير صفري)).

على سبيل المثال:

    joe(sys,"[ 1 == 1 ]",rtn)

([ 1 == 1 ]) هو أمر صدفة. "[" هو مرادف لأمر UNIX المسمى "test".

يُرجع صحيح.

تذكر: المعامل لأمر ماكرو JOE المسمى "if" هو تعبير رياضي. فمثلاً الماكرو:

    if,"joe(sys,\"[ 1 == 1 ]\",rtn)",then,"TRUE",endif

يكتب TRUE في المنظم.

  المعاملات:

•   !x
    نفي x المنطقي.

•   x
    رفع x إلى القوة y.

•   a*b
    ضرب.

•   a/b
    قسمة.

•   a%b
    باقي القسمة.

•   a+b
    جمع.

•   a-b
    طرح.

•   a<b
    صحيح إذا كان a أصغر من b.

•   a<=b
    صحيح إذا كان a أصغر من أو يساوي b.

•   a>b
    صحيح إذا كان a أكبر من b.

•   a>=b
    صحيح إذا كان a أكبر من أو يساوي b.

•   a==b
    صحيح إذا كان a يساوي b.

•   a!=b
    صحيح إذا كان a لا يساوي b.

•   a&&b
    صحيح إذا كان كلاهما a و b صحيحين.

•   a||b
    صحيح إذا كان إما a أو b صحيحاً.

•   a?b:c
    إذا كان a صحيحاً أرجع b، وإلا أرجع c.

•   a=b
    تعيين b لـ a.

•   a:b
    نفذ a، ثم نفذ b.

تعمل && و || و ؟ : كما في C و sh من حيث الآثار الجانبية: إذا كان

الجانب الأيسر من && خطأ، فلا يُقيّم الجانب الأيمن.
    هو فاصل التعبيرات.

نوافذ الصدفة
اضغط ^K ' لتشغيل صدفة أوامر في إحدى نوافذ JOE. عندما يكون المؤشر في نهاية نافذة الصدفة (استخدم ^K V إذا لم يكن كذلك)، فإن كل ما تكتبه يُمرر إلى الصدفة بدلاً من المنظم. أي مخرجات من الصدفة أو من الأوامر المنفذة فيها تُلحق بنافذة الصدفة (سيتبع المؤشر هذه المخرجات إذا كان في نهاية نافذة الصدفة). هذا الأمر مفيد لتسجيل نتائج أوامر الصدفة- على سبيل المثال مخرجات make، أو نتيجة استخدام grep للبحث عن سلسلة نصية في مجموعة ملفات، أو قوائم الأدلة من جلسات FTP. بالإضافة إلى المحارف القابلة للكتابة، تُمرر المفاتيح ^C و Backspace و Del و Return و ^D إلى الصدفة. اكتب أمر الصدفة exit لإيقاف تسجيل مخرجات الصدفة. إذا ضغطت ^C في نافذة صدفة، بينما لا يكون المؤشر في نهاية النافذة، تُقتل (kill) الصدفة.

إذا كنت تستخدم Bash، يمكنك ضغط: ^Q Up Arrow و ^Q Down Arrow للتمرير خلال منظم تاريخ Bash. تعمل مفاتيح أخرى أيضًا: جرب ^Q ^A للذهاب إلى بداية السطر أو ^Q ^E للذهاب إلى نهاية السطر. لسوء الحظ يحاكي JOE فقط طرفية غبية، لذا عليك استخدام الكثير من الخيال للقيام بأي تحرير يتجاوز ضغط مفتاح backspace.

بشكل عام، أي محرف مقتبس بـ ^Q يُرسل إلى الصدفة.

يُرسل أيضًا إلى الصدفة: Tab و Backspace و Enter و ^C و ^D.

نوافذ الصدفة المنبثقة
اضغط F1 - F4 لفتح والتبديل بين نوافذ الصدفة.

تستخدم نوافذ الصدفة المنبثقة محاكياً كاملاً للطرفية بحيث عندما تكتب "man ls" تُنسق بشكل صحيح (تعمل بشكل جيد بما يكفي لاستخدام بعض البرامج التفاعلية). ومع ذلك، لا تزال نافذة الصدفة منظم تحرير.

لا تزال نافذة الصدفة القديمة (بدون محاكاة طرفية) موجودة: استخدم ^K ' لاستدعائها كالمعتاد. هذا مفيد لرؤية تسلسلات التحكم الصادرة عن برنامج ما.

تُمرر المزيد من المفاتيح إلى البرنامج المشغل في نوافذ الصدفة المنبثقة مقارنة بالقديمة. هناك قسم :vtshell في ملف joerc للتحكم في أيها يُمرر. وبشكل خاص، تُمرر مفاتيح الأسهم و Ctrl-C إلى البرنامج. هذا يعني أنه يمكنك التنقل بسهولة في تاريخ bash باستخدام مفاتيح الأسهم، أو إجهاض البرامج بالطريقة العادية باستخدام Ctrl-C.

من ناحية أخرى، فإن فقدان Ctrl-C يعني أن طريقة إغلاق النافذة تصبح أقل وضوحاً. أحدى الطرق هي نقل المؤشر بعيداً عن نقطة إدخال بيانات الصدفة (باستخدام Ctrl-P)، ثم ضغط Ctrl-C. طريقة أخرى هي ضغط ^K Q. وأخيراً، يمكنك كتابة 'pop' عند محث الأوامر.

إذا كنت بحاجة إلى تمرير مفتاح إلى الصدفة يستخدمه JOE عادةً، فاقتبسه. على سبيل المثال، إذا استدعيت "emacs -nw" في نافذة الصدفة، يمكنك الخروج منه عبر:

    ^Q ^X ^C

لوضع المؤشر بسرعة مرة أخرى عند النقطة التي تُدخل فيها البيانات في الصدفة، اضغط ^K V.

عندما تفتح نافذة صدفة، يُستدعى سكربت بدء تشغيل خاص بـ JOE. يقع في /etc/joe/shell.sh (وأيضًا /etc/joe/shell.csh). يحتوي على بعض الأسماء المستعارة التي تتيح لك التحكم في JOE بأوامر صدفة وهمية. لدي هذه الأوامر حتى الآن:

•   clear
    امسح نافذة الصدفة (احذف محتويات المخزن المؤقت)

•   joe ملف
    حرر ملفًا في JOE

•   math 1+2
    احسب المعادلة باستخدام حاسبة JOE

•   cd xyz
    غيّر المجلد، مع إبقاء JOE محدثًا

•   markb
    مماثل لـ ^KB

•   markk
    مماثل لـ ^KK

•   أمر mark
    نفّذ أمر صدفة، وضع علامة على مخرجاته

•   أمر parse
    نفّذ أمر صدفة، وحلّل مخرجاته بحثًا عن أسماء الملفات وأرقام الأسطر (لأجل find أو grep)

•   parser comman
    نفّذ أمر صدفة، وحلّل مخرجاته بحثًا عن الأخطاء (لأجل gcc)

•   release
    حرّر الأخطاء المحللة

•   pop
    أغلق نافذة الصدفة (مماثل لـ ^K Q)

تعمل هذه الميزات عن طريق إرسال تسلسل هروب يتعرف عليه محاكي الطرفية: Esc { joe_macro }. عند استلامه، يُنفّذ الماكرو. لأغراض أمنية، لا يمكن تنفيذ سوى الماكروهات المعرفة في ملف joerc والتي تبدأ بـ "shell_" بهذه الطريقة.

  حالات الاستخدام
توجد حالات استخدام عديدة لنوافذ الصدفة المنبثقة:

•   استخدمها لتصفح صفحات الدليل

    اضغط F1 واكتب "man fopen". استخدم 'b' (أو 'u') والمسافة للتحكم في more (أو less) أثناء عرض الدليل. يمكنك ترك الدليل على الشاشة في نافذة واحدة بينما تحرر في نافذة أخرى.

•   استخدمها للتبديل بين المجلدات

    اضغط F1 وانتقل إلى المجلد باستخدام cd. بمجرد وصولك للمكان الصحيح، اضغط ^K E لتحميل ملف (أو اكتب "edit file" من الصدفة).

•   استخدمها بالاقتران مع محلل الأخطاء للبحث عن الملفات

    اضغط F1 وانتقل إلى مجلد ما. استخدم grep أو find (أو كليهما) لتوليد قائمة بالملفات:

            parse grep -n FIXME *.c

أو:

            markb; find . | xargs grep -n FIXME; markk; parse

(لاحظ أنك لا تستطيع قول هذا:

            parse find . | xargs grep -n FIXME

...المشكلة هي أن الكلمات التي على يسار رمز الأنبوب (pipe) فقط هي التي تُمرّر كمعاملات لأمر parse).

الآن استخدم ^P لوضع المؤشر على أحد أسطر القائمة. اضغط Esc Space ليقوم JOE بتحرير الملف والقفز إلى السطر المحدد (كما يمكنك استخدام Esc - و Esc = للتنقل عبر القائمة).

•   استخدمها بالاقتران مع البحث والاستبدال لتحرير ملفات عديدة

    بمجرد أن يحصل JOE على قائمة بالملفات (من الخطوة السابقة)، استخدم البحث والاستبدال مع الخيار 'e' لزيارتها جميعًا:

            ^K F
               Find: <النص>
               Options: re
               Replace: <نص الاستبدال>

•   ابنِ مشروعك

التقط الأخطاء بسهولة من عملية بناء باستخدام:

            parserr make

اضغط Esc = و Esc - للتنقل عبر الأخطاء.

  آلية العمل..

•   يوجد وضع جديد باسم "ansi". (Esc X وضع ansi). عند تفعيل هذا الوضع، يخفي محدث الشاشة تسلسلات الهروب الموجودة في المخزن المؤقت. خلاف ذلك ستحصل على فوضى كبيرة بسبب التسلسلات المحيطة بالمخرجات الملونة من 'ls'.

•   توجد صياغة مدمجة جديدة: "ansi". (^T Y ansi). تحلل هذه الصياغة تسلسلات تحكم الألوان ANSI بحيث يُلون النص.

•   يوجد محاكي طرفية لتفسير تسلسلات التحكم من برنامج الصدفة. حيث يحاكي الطرفية عن طريق تعديل محتويات مخزن التحرير المؤقت.

•   عند تغيير حجم نافذة التحرير، نُعلِم الصدفة بذلك عن طريق إصدار ioctl من نوع TIOCSSIZE أو TIOCSWINSZ. بهذه الطريقة، يعرف البرنامج الذي يعمل في الصدفة حجم النافذة.

محللات المجمّع و grep/find
يملك JOE محللين يمكن استخدامهما لتوليد قائمة الأخطاء (قائمة أسماء الملفات / أرقام الأسطر).

أمر "parserr" يحلل المخزن المؤقت بالكامل، أو إذا كانت الكتلة محددة، يحلل فقط الكتلة البارزة بحثًا عن رسائل خطأ المجمّع. يجب أن تكون الرسائل بهذا التنسيق:

    <بيانات> اسم.الملف <بيانات> رقم-السطر <بيانات> : <بيانات>

يجب أن يتكون اسم الملف من أرقام، وحروف، و '/'، و '.' و '-'. كما يجب أن يحتوي على نقطة '.' واحدة على الأقل. ويلزم وجود نقطتين رأسيتين في مكان ما بعد رقم السطر. تُتجاهل الأسطر التي لا تتبع هذا التنسيق.

أمر "gparse" يحلل المخزن المؤقت بالكامل، أو إذا كانت الكتلة محددة، يحلل فقط الكتلة البارزة بحثًا عن قائمة بأسماء الملفات أو أسماء ملفات مع أرقام الأسطر من برامج "grep -n" و "find" وما شابهها.

    اسم الملف

    اسم الملف:<بيانات>

    اسم الملف:رقم-السطر:<بيانات>

بمجرد حصول JOE على قائمة الأخطاء، تتوفر عدة أشياء يمكنك القيام بها بها:

•   قم بزيارة الملفات/المواقع في القائمة باستخدام Esc - و Esc =

•   ابحث واستبدل عبر كافة الملفات في القائمة باستخدام خيار البحث والاستبدال 'e'.

•   امسح القائمة باستخدام أمر "release".

أيضًا، يمكنك استخدام Esc Space (أمر 'jump') لتحليل السطر الذي يقف عليه المؤشر والقفز إلى اسم الملف ورقم السطر المحللين. يستخدم 'jump' محلل grep/find ما لم يكن قد صدر أمر 'parserr' سابقًا في المخزن المؤقت.

  Grep-find
اضغط Esc G لإظهار المحث. أدخل أمرًا ينتج عنه أسماء ملفات مع أرقام أسطر، مثلاً: 'grep -n fred *.c'. سيسرد هذا كافة تواجدات 'fred' في ملفات *.c. تحتاج إلى الخيار '-n' للحصول على أرقام الأسطر.

الآن يمكنك ضغط Esc Space على أحد الأسطر للقفز للملف المختار. كذلك، يمكنك استخدام Esc = و Esc - للتنقل عبر كل سطر.

  Compile
اضغط Esc C لحفظ كافة الملفات المعدلة ثم إظهار محث التجميع. أدخل الأمر الذي تود استخدامه للمجمّع (عادة "make -w"). سيعمل المجمّع في نافذة صدفة. عند اكتماله، تُحلل النتائج.

ينبغي إعطاء العلامة '-w' للأمر "make" بحيث يطبع رسائل كلما قام بتغيير المجلدات. تكون الرسائل بهذا التنسيق:

    make[1]: Entering directory `/home/jhallen/joe-editor-mercurial/joe'

إذا وجدت أية أخطاء أو تحذيرات من المجمّع، يمكنك ضغط Esc Space على أحد الأسطر للقفز للملف المختار. كذلك، يمكنك استخدام Esc = و Esc - للتنقل عبر كل سطر.

تلوين الصيغة
لتفعيل التلوين استخدم ^T H.

لاختيار الصياغة، استخدم ^T Y. يمكنك ضغط Tab Tab عند المحث للحصول على قائمة إكمال.

يحاول JOE تحديد الصياغة الواجب استخدامها بناءً على اسم الملف ومحتوياته. يحتوي ملف الضبط /etc/joe/ftyperc على التعريفات.

تُعرف كل صياغة بواسطة ملف موجود في /usr/share/joe/syntax/.

كيفية عمل تلوين صياغة JOE
من c.jsf http://joe-editor.hg.sourceforge.net/hgweb/joe-editor/joe-editor/file/tip/syntax/c.jsf.in، معدلة قليلاً

تُوفّر آلة حالة حتمية تقوم بالتحليل المعجمي للغة الهدف في ملف صياغة. (هذه هي "لغة التجميع" الخاصة بتلوين الصياغة. ومن حيث المبدأ يمكن استخدام برنامج منفصل لتحويل صياغة NFA ذات التعبيرات النمطية إلى هذا التنسيق).

تبدأ كل حالة بـ:

    :<الاسم> <اسم-اللون> <السياق>

الاسم\ هو اسم الحالة.

اسم-اللون\ هو اللون المستخدم للمحارف التي تستهلكها الحالة (هو في الحقيقة رمز للون يمكن للمستخدم تعريفه).

يخبر السياق\ المحرر JOE إذا كان المحرف الحالي جزءًا من تعليق أو سلسلة نصية. يتيح هذا لـ JOE تخطي التعليقات والسلاسل النصية عند مطابقة المحارف مثل الأقواس. لاستخدام هذه الميزة، يجب تطبيق خيار highlighter_context على الملفات الملونة بواسطة الصياغة المقابلة. لتطبيق الخيار، أضفه إلى ftyperc لمداخل تلك الملفات.

السياقات الصالحة هي:

•   comment هذا المحرف جزء من تعليق. مثال: /* تعليق */

•   string هذا المحرف جزء من سلسلة نصية. أمثلة: "سلسلة نصية" 'c' 'سلسلة نصية'

يجب وسم محددات التعليقات والسلاسل النصية نفسها بالسياق المناسب. يُعتبر السياق جزءًا من اللون، لذا فإن خياري recolor=-N و recolormark يطبقان السياق على المحارف السابقة.

تكون أول حالة تُعرّف هي الحالة المبدئية.

داخل الحالة، تُعرّف الانتقالات (القفزات) إلى حالات أخرى. لكل قفزة التنسيق التالي:

        <قائمة-المحارف> <اسم-الحالة-الهدف> [<خيارات>]

توجد ثلاث طرق لتحديد قائمة-المحارف\، إما * لأي محرف لم يُحدد خلاف ذلك، أو % أو & لمطابقة المحرف في مخزن مطابقة المحددات المؤقت (% يطابق المحرف المحفوظ تمامًا، بينما & يطابق المحرف المقابل، على سبيل المثال سيطابق ( الرمز ) عند استخدام &) أو قائمة حرفية من المحارف داخل علامات اقتباس (النطاقات وتسلسلات الهروب مسموح بها: انظر تسلسلات الهروب). عندما يطابق المحرف التالي أيًا منها في القائمة، ينتقل إلى الحالة الهدف ويُستهلك المحرف (نتقدم إلى المحرف التالي من الملف المطلوب تلوينه).

يجب أن يكون الانتقال * هو أول انتقال مُحدد في الحالة.

توجد عدة خيارات:

•   noeat - لا تستهلك المحرف، بل مرره إلى الحالة التالية (يميل هذا إلى جعل الحالات أصغر، لكن كن حذرًا: قد تقع في حلقات مفرغة). 'noeat' يستلزم 'recolor=-1'.

•   recolor=-N - أعِد تلوين المحارف الـ N الماضية بلون الحالة الهدف. على سبيل المثال، بمجرد التعرف على /* كبداية لتعليق في لغة C، سترغب في تلوين /* بلون تعليق C باستخدام recolor=-2.

•   mark - حدد بداية المنطقة بالموضع الحالي.

•   markend - حدد نهاية المنطقة.

•   recolormark - أعِد تلوين كافة المحارف في المنطقة المحددة بلون الحالة الهدف. إذا لم يُعطَ markend، تُعاد تلوين كافة المحارف حتى الموضع الحالي. لاحظ أن المنطقة المحددة لا يمكن أن تتجاوز حدود الأسطر ويجب أن تكون في نفس السطر الذي يوجد فيه recolormark.

•   buffer - ابدأ نسخ المحارف إلى مخزن سلسلة نصية مؤقت، بدءًا من هذا المحرف (لا بأس بعدم إنهاء التخزين بخيار 'strings' أو 'istrings' أو 'hold' مقابل - المخزن محدود بأول 23 محرفًا).

•   save_c - احفظ المحرف في مخزن مطابقة المحددات المؤقت.

•   save_s - انسخ مخزن السلسلة النصية المؤقت إلى مخزن مطابقة المحددات المؤقت.

•   strings - تتبعها قائمة من السلاسل النصية. إذا طابق المخزن المؤقت أيًا من السلاسل المعطاة، ينتقل إلى الحالة الهدف في قائمة السلاسل بدلاً من الانتقال العادي.

•   istrings - مماثل لـ strings، لكن مع تجاهل حالة الأحرف. لاحظ: يجب أن يكون strings و istrings آخر خيار في السطر. فهما يتسببان في تجاهل أي خيارات تتبعهما.

•   hold - توقف عن تخزين السلسلة - سيبحث خيار 'strings' أو 'istrings' مستقبلاً في محتويات المخزن عند هذه النقطة. مفيد للتمييز بين الأوامر واستدعاءات الدوال في بعض اللغات: 'write 7' هو أمر، بينما 'write (' هو استدعاء دالة - يتيح لنا hold التوقف عند المسافة وتأخير البحث عن السلسلة حتى وصول ( أو 7.

تنسيق قائمة السلاسل النصية هو:

        "سلسلة"   <الحالة-الهدف> [<خيارات>]
        "سلسلة"   <الحالة-الهدف> [<خيارات>]
        "&"        <الحالة-الهدف> [<خيارات>]   # يطابق محتويات مخزن مطابقة المحددات
        done

(كافة الخيارات أعلاه مسموح بها باستثناء "strings" و "istrings" و "noeat". يفترض noeat دائمًا بعد مطابقة السلسلة).

غرابة: الحالات وحدها تملك ألوانًا، وليس الانتقالات. يعني هذا أن عليك أحيانًا إنشاء حالات وهمية بـ

        *    <next-state>    noeat

فقط من أجل الحصول على توصيف للون.

مخزن مطابقة المحددات مخصص للغة perl والصدفة: يمكن للتعبير النمطي في perl أن يكون s<..>(...) وفي الصدة يمكنك قول: <<EOS ....... EOS. الفكرة هي أن تلتقط المحدد الأول في مخزن المطابقة (الرمز < أو أول "EOS") ثم تطابقه مع الثاني باستخدام "&" في قائمة سلاسل أو محارف.

  الإجراءات الفرعية
يمكن لآلات حالة الملون الآن إجراء استدعاءات للإجراءات الفرعية. يعمل هذا عن طريق استنساخ القوالب: تُضمّن آلة الحالة المستدعاة في آلة حالتك الحالية، ولكنها تُعدل بحيث يشير عنوان العودة إلى المستدعِي. لا يوجد حتى الآن كدس وقت تشغيل (تُمثل الحالة كعدد صحيح واحد بالإضافة إلى سلسلة المحدد المحفوظة).

المعاودة مسموح بها، ولكنها محدودة ذاتيًا بـ 5 مستويات.

ملاحظة: حد المعاودة هذا مهجور. تستخدم الإجراءات الفرعية الآن كدسًا لذا فإن عمق الاستدعاء غير محدود.

لاستدعاء إجراء فرعي، استخدم خيار 'call':

        "\""    fred    call=string(dquote)

يُستدعى الإجراء الفرعي المسمى 'string' ويُتجاهل القفز إلى 'fred'. يُمرر الخيار 'dquote' إلى الإجراء الفرعي.

إذا استخدمت recolor مع call، فإن اللون المستخدم هو لون الحالة الأولى في الإجراء الفرعي.

يعود الإجراء الفرعي نفسه إلى المستدعِي بهذا الشكل:

        "\""    whatever    return

إذا كنا داخل إجراء فرعي، فإنه يعود إلى الحالة الهدف للاستدعاء ("fred" في المثال أعلاه). إذا لم نكن في إجراء فرعي، فإنه يقفز إلى "whatever".

إذا استخدمت recolor مع return، فإن اللون المستخدم يكون من الحالة التي رجع إليها ("fred" في المثال أعلاه).

توجد عدة طرق لتحديد الإجراءات الفرعية تظهر في كيفية استدعائها. إليك الخيارات:

•   call=string() - الملف المسمى string.jsf هو الإجراء الفرعي. الملف بالكامل هو الإجراء الفرعي. نقطة البداية هي أول حالة في الملف.

•   call=library.string() - الملف المسمى library.jsf يحتوي على الإجراء الفرعي. الإجراء الفرعي داخل الملف يسمى string.

•   call=.string() - يوجد إجراء فرعي يسمى string في الملف الحالي.

عندما يكون الإجراء الفرعي داخل ملف، ولكن ليس الملف بالكامل، يُحدّد كالتالي:

    .subr string

يمكن تمرير علامات خيارات إلى الإجراءات الفرعية للتحكم في توجيهات شبيهة بمعالج النصوص. على سبيل المثال:

    .ifdef dquote
        "\""    idle    return
        "'"     idle    return

.else متاح أيضًا. ويمكن تداخل .ifdefs.

ملف joerc
خيارات ^T، وشاشات المساعدة، وربط تسلسلات المفاتيح بأوامر المحرر كلها مُعرّفة في ملف تهيئة JOE. إذا قمت بعمل نسخة من هذا الملف (الذي يتواجد عادة في /etc/joe/joerc) إلى $HOME/.joerc، يمكنك تخصيص هذه الإعدادات حسب رغبتك. صياغة ملف التهيئة واضحة تمامًا وتوجد تعليمات إضافية بداخله.

يحتوي ملف joerc على توجيه لتضمين ملف آخر (:include). تُستخدم هذه الخاصية لتضمين ملف يسمى ftyperc (يتواجد عادة في /etc/joe/ftyperc). يحتوي ftyperc على جدول أنواع الملفات الذي يحدد أي الخيارات المحلية (بما في ذلك صياغة الملون) تُطبق على كل نوع ملف.

  تسلسل تحميل ملف التهيئة
إذا كان مسار ملف التهيئة يبدأ بـ '/' (يمكنك تحديد ذلك بتوجيه التضمين)، يحاول JOE تحميله من المسار المطلق فقط. خلاف ذلك، يحاول JOE تحميل ملفات التهيئة (ملف joerc وأي ملفات مضمنة فيه، عادة ftyperc) من ثلاثة أماكن:

•   "$HOME/.joerc" - ملف joerc المخصص للمستخدم.

•   ”/etc/joe/joerc“ - ملف joerc الخاص بالنظام. يُحدد المسار الدقيق أثناء عملية التجميع، ويُحدد بواسطة خيار البرنامج النصي configure المسمى --sysconfdir.

•   "*joerc" - ملف مدمج. يعني هذا أن JOE يبحث عن الملف في جدول للملفات المرتبطة بملف JOE الثنائي (توجد في ملف builtins.c). يُوفّر ملف joerc مدمج ليعمل المحرر في الحالات التي لا يمكن فيها الوصول لملف joerc الخاص بالنظام.

إذا كان ملف joerc الخاص بالنظام أحدث من ملف joerc الخاص بالمستخدم، سيطبع JOE تحذيرًا في سجل بدء التشغيل. كانت الإصدارات السابقة من JOE تُنبّه المستخدم في هذه الحالة - كانت الفكرة أن JOE قد يصبح غير قابل للاستخدام مع ملف تهيئة قديم.

  أقسام ملف joerc
ينقسم ملف joerc إلى عدد من الأقسام:

•   الخيارات العامة: الخيارات التي ليست خاصة بملف معين، مثل noxon.

•   الخيارات المعتمدة على اسم الملف ومحتواه: الخيارات التي تعتمد على نوع الملف، مثل autoindent. يُضمن ملف ftyperc في هذا القسم.

•   تعريف نظام قوائم ^T: استخدم :defmenu لتعريف قائمة ماكروهات مُسماة. يقوم أمر menu بإحضار قائمة مُسماة محددة. ^T هو ماكرو يُظهر القائمة الرئيسة: menu,"root",rtn.

•   محتويات شاشة المساعدة: كل شاشة مساعدة لها اسم. يُستخدم الاسم لتنفيذ مساعدة تعتمد على السياق.

•   رُبطت المفاتيح؛ عُرّفت جداول ربط المفاتيح. يمكنك تعريف أي عدد تشاء منها (يمكنك التبديل إلى جدول محدد باستخدام الأمر keymap)، ولكن يجب توفير ما يلي:

•   main نوافذ التحرير الرئيسة

•   prompt نوافذ المحث

•   query محثات الاستعلام ذات المحرف الواحد

•   querya استعلام من محرف واحد للاقتباس

•   querysr استعلام من محرف واحد للبحث والاستبدال

•   shell نوافذ الصدفة

•   vtshell نوافذ صدفة محاكي الطرفية

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

  أمر الوضع
يمكن التحكم في خيارات عديدة عبر قائمة ^T. عُرّفت هذه القائمة في ملف joerc. ينفذ كل خيار في قائمة ^T ماكرو فحسب. وعادة ما يكون الماكرو هو أمر الوضع. يمكنك تنفيذ أمر الوضع مباشرة عبر:

    Esc X mode <enter>

اضغط على Tab Tab لعرض قائمة إكمال لجميع الخيارات.

  أمر القائمة
يستدعي هذا الأمر قائمة مسمّاة من الماكروهات التي عُرّفت في ملف joerc.

    Esc X menu <enter>

كما هو معتاد، اضغط Tab Tab عند المحث للحصول على قائمة إكمال للقوائم الموجودة.

رُبط ^T بالماكرو البسيط menu,"root",rtn؛ حيث يظهر جذر نظام قائمة الخيارات.

دعم الفأرة في Xterm
يوجد مستويان لدعم الفأرة. يفعل الخيار -mouse المستوى الأول، والذي سيعمل مع أي Xterm قياسي. وإذا ضُبط -joexterm أيضًا، فسيُحسّن دعم الفأرة، ولكنك ستحتاج إلى إصدار حديث من XTerm، ويجب أن يُضبط (./configure) مع خيار --enable-paste64.

عند ضبط -mouse، يمكنك:

•   النقر بزر الفأرة الأيسر في نافذة نصية لضبط موضع المؤشر. والنقر بزر الفأرة الأيسر في نافذة مختلفة لنقل المؤشر إلى نافذة أخرى.

•   تحديد النص بالفأرة. انقر بالزر الأيسر واسحب لتحديد بعض النص؛ وسيكون الأمر كما لو أنك استخدمت ^K B و ^K K لوسمه. انقر بالزر الأيسر (دون سحب) لوضع المؤشر في مكان آخر. انقر بالزر الأوسط لنسخ النص المحدد إلى موضع المؤشر؛ وسيكون كما لو أنك ضغطت ^K C. إذا سحبت خارج حافة نافذة النص، فستُمرر النافذة آليًا لتحديد المزيد من النص. لسوء الحظ، لا يرسل Xterm أي رموز عندما يكون المؤشر خارج إطار Xterm نفسه، لذا فإن هذا يعمل فقط إذا كانت الفأرة لا تزال داخل إطار Xterm. أُرسلت رقعة (patch) إلى مصين Xterm لتحسين هذا، ولكنه لم يقبلها بعد.

•   تغيير حجم النوافذ بالفأرة: انقر مع الاستمرار على سطر الحالة الذي يفصل بين نافذتين لتحريكه.

•   تحديد مدخلات القائمة (مثل أي قائمة إكمال أو قائمة خيارات ^T): انقر على عنصر القائمة لوضع المؤشر عليه. انقر نقرًا مزدوجًا على عنصر القائمة لتحديده (مثل الضغط على مفتاح return والمؤشر عليه).

•   إذا كانت فارتك تحتوي على عجلة، فإن تدوير العجلة سيؤدي إلى تمرير النافذة مع المؤشر.

لسوء الحظ، عند اختيار -mouse، فإن القص واللصق بين نوافذ X لا يعمل كما هو معتاد في نافذة الصدفة (النقر الأيسر والسحب للتحديد، والنقر الأوسط للصق). بدلًا من ذلك، عليك الضغط المستمر على مفتاح shift للقيام بذلك: shift مع النقر الأيسر والسحب للتحديد، و shift مع النقر الأوسط للصق. لاحظ أن لصق النص في JOE بهذه الطريقة يواجه مشكلات: أي محارف ` ستفسد لأن ` تعني اقتباس محرف التحكم التالي. كما أنه إذا فُعّل الإزاحة الآلية، فلن يُزاح النص الملصق بشكل صحيح.

ملاحظة: حُلّت مشكلات اللصق هذه في الإصدارات الحديثة من JOE.

•   يفعل JOE وضع "اللصق المحصور" في Xterm بحيث يُحصر النص الملصق بتسلسل هروب. يؤدي هذا التسلسل إلى تعطيل أوضاع الإزاحة الآلية، ولف الكلمات، والمسافات في JOE أثناء اللصق، ويستعيدها عند اكتماله.

•   حتى لو لم يكن محاكي الطرفية يدعم وضع اللصق المحصور هذا، فإن JOE يكتشف النص الملصق عبر التوقيت: إذا وصل النص دفعة واحدة (كلّه في نفس المخزن المؤقت)، يُفترض أن النص ملصق وتُعطل الإزاحة الآلية ولف الكلمات مؤقتًا.

عند ضبط -joexterm (وبعد ضبط ./configure لـ Xterm مع خيار --enable-paste64):

•   دُمج القص واللصق بشكل صحيح مع X. النص المحدد عبر النقر الأيسر والسحب يصبح متاحًا للصقه في نوافذ X الأخرى (حتى لو كان النص المحدد أكبر من نافذة النص). النص المحدد في نوافذ X الأخرى يمكن لصقه في JOE عبر النقر الأوسط. لا توجد مشكلات في لصق النصوص التي تحتوي على ` أو مع الإزاحة الآلية.

يتيح --enable-paste64 لبرنامج التطبيق تبادل بيانات التحديد المرمزة بـ Base-64 من وإلى Xterm. يمتلك البرنامج تحكمًا كاملًا في محتوى بيانات التحديد ووقت استلامها أو إرسالها.

دعم ألوان Xterm
يمكن لـ JOE الاستفادة من Xterm أحادي اللون، وXterm ذو 8 ألوان، و16 لونًا، و88 لونًا، و256 لونًا. يُحدد عدد الألوان التي يدعمها Xterm بناءً على خيارات سكربت "configure" التي ضُبطت قبل تجميع كود المصدر لـ Xterm. يجب أن يدخل مدخل termcap أو terminfo في دعم كيفية ضبط Xterm الخاص بك. في توزيعة Slackware Linux الخاصة بي، يجب عليك ضبط متغير البيئة TERM على أحد هذه القيم:

•   xterm

•   xterm-color

•   xterm-16color

•   xterm-88color

•   xterm-256color

إذا كان مدخل termcap/terminfo مفقودًا، يمكنك إضافة خيار "-assume_256color" إلى ملف joerc. لاحظ أن هذا كان معطلًا لـ terminfo في إصدارات JOE الأقدم من 3.4.

عندما يعمل، فإن الأمر: "joe -assume_256color -text_color bg_222" يجب أن يظهر بخلفية رمادية.

وضع التحرير الست عشري
عند اختيار هذا الوضع (إما بوضع -hex في سطر الأوامر، أو بالبحث عن "Hex edit mode" بعد الضغط على ^T)، يُعرض المخزن المؤقت كتفريغ ست عشري، ولكن جميع أوامر التحرير تعمل بنفس الطريقة. من المفيد جدًا اختيار وضع الكتابة الفوقية مع التفريغ الست عشري (اضغط ^T T)؛ وعندها لن تؤدي الكتابة إلى الإدراج.

•   لإدخال بايت ست عشري 0xF8 اكتب ^Q x F 8

•   يمكنك استخدام ^K C لنسخ كتلة كالمعتاد. إذا اختير وضع الكتابة الفوقية، فستكتب الكتلة فوق البيانات في الوجهة دون تغيير حجم الملف. وخلاف ذلك، فإنها تدرج.

•   اضغط Esc X byte <Enter> للانتقال إلى إزاحة بايت معينة. يمكن إدخال القيم الست عشرية في هذا المحث مثل: 0x2000.

•   تعمل عمليات البحث، والبحث التزايدي، والبحث والاستبدال كالمعتاد.

متغيرات البيئة
لكي يعمل JOE بشكل صحيح، يجب أن تكون عدة إعدادات بيئة أخرى صحيحة. يجب ضبط معدل النقل (Baud rate) للاتصال بين الحاسوب وطرفيتك بشكل صحيح لكي يقوم JOE بتحديث الشاشة بسلاسة ويسمح للكتابة المسبقة بتأجيل تحديث الشاشة. استخدم الأمر stty nnn لضبط ذلك. ينبغي ضبطه على قيمة قريبة قدر الإمكان من معدل النقل الفعلي للاتصال. على سبيل المثال، إذا كنت متصلًا عبر مودم بسرعة 1200 باود، استخدم هذه القيمة لـ stty. وإذا كنت متصلًا عبر مودم 14.4k، ولكن خادم الطرفية الذي تتصل به يتصل بالحاسوب بسرعة 9600 باود، فعليك ضبط السرعة على 9600 باود. يُستخدم معدل الباود الخاص 38400 أو extb للإشارة إلى أن لديك اتصالًا عالي السرعة جدًا، مثل وحدة تحكم مخططة في الذاكرة أو محاكي طرفية في نظام X-window. إذا لم تتمكن من استخدام stty لضبط معدل النقل الفعلي (ربما بسبب مودم يتواصل مع الحاسوب بمعدل مختلف عن تواصله عبر خط الهاتف)، يمكنك وضع قيمة عددية في متغير البيئة BAUD بدلًا من ذلك (استخدم setenv BAUD 9600 لـ csh أو BAUD=9600; export BAUD لـ sh).

يجب ضبط متغير البيئة TERM على نوع الطرفية التي تستخدمها. إذا كان حجم طرفيتك (عدد الأسطر/الأعمدة) مختلفًا عما هو مذكور في مدخل TERMCAP أو TERMINFO، يمكنك ضبط ذلك باستخدام الأمر stty rows nn cols nn، أو عبر ضبط متغيري البيئة LINES و COLUMNS. حجم الطرفية متغير في الأنظمة الحديثة ويُحدد عبر ioctl، لذا غالبًا ما لا يكون لهذه المعاملات أي تأثير.

يتوقع JOE عادةً أن يستخدم التحكم في التدفق بين الحاسوب وطرفيتك مصافحة ^S/^Q (أي إذا كان الحاسوب يرسل المحارف بسرعة كبيرة بالنسبة لطرفيتك، فإن طرفيتك ترسل ^S لإيقاف الإخراج و ^Q لاستئنافه). إذا كان التحكم في التدفق يستخدم مصافحة خارج النطاق أو مصافحة عتادية، أو إذا كانت طرفيتك سريعة بما يكفي لمواكبة مخرجات الحاسوب دائمًا وترغب في ربط ^S/^Q بأوامر التحرير، يمكنك ضبط متغير البيئة NOXON ليحاول JOE إيقاف مصافحة ^S/^Q. إذا كان الاتصال بين الحاسوب وطرفيتك لا يستخدم أي مصافحة ولم تكن طرفيتك سريعة بما يكفي لمواكبة مخرجات الحاسوب، يمكنك ضبط متغير البيئة DOPADDING ليقوم JOE بإبطاء الإخراج عبر حشو محارف PAD بين تسلسلات تحديث شاشة الطرفية.

إليك قائمة كاملة بمتغيرات البيئة:

•   BAUD
    يخبر JOE بمعدل باود الطرفية (يتجاوز القيمة التي يبلغ عنها stty).

•   COLUMNS
    اضبط عدد الأعمدة في محاكي الطرفية (في حال كان مدخل termcap خاطئاً). هذا مفيد فقط في الأنظمة القديمة التي لا تحتوي على ioctl "get window size".

•   DOPADDING
    يفعل إرسال محارف NUL للحشو إلى الطرفية عند ضبطه (للطرفيات القديمة جدًا).

•   HOME
    يُستخدم للحصول على مسار دليل المنزل لتوسيع ~ وأيضًا للعثور على ملف ~/.joerc ودليل ~/.joe.

•   HOSTNAME
    يُستخدم للحصول على اسم المضيف لوضعه في أقفال متوافقة مع EMACS.

•   JOETERM
    يعطي نوع الطرفية: سيستخدم JOE هذا المتغير بدلًا من TERM إذا كان مضبوطًا.

•   LANG
    يضبط الإعدادات المحلية (مثل en_US.utf-8). يستخدم JOE أول متغير مضبوط من هذه القائمة: LC_ALL، ثم LC_CTYPE، ثم LANG.

•   LC_ALL
    يضبط الإعدادات المحلية (مثل en_US.utf-8). يستخدم JOE أول متغير مضبوط من هذه القائمة: LC_ALL، ثم LC_CTYPE، ثم LANG.

•   LC_CTYPE
    يضبط الإعدادات المحلية (مثل en_US.utf-8). يستخدم JOE أول متغير مضبوط من هذه القائمة: LC_ALL، ثم LC_CTYPE، ثم LANG.

•   الأسطر
    اضبط عدد السطور في محاكي الطرفية (في حال كان مدخل termcap خاطئاً). هذا مفيد فقط في الأنظمة القديمة التي لا تحتوي على ioctl "get window size".

•   NOXON
    عطل التحكم في التدفق ^S و ^Q، مما قد يسمح باستخدام ^S و ^Q كمفاتيح للمحرر.

•   SHELL
    مسار الصدفة (مثل /bin/sh). يُستخدم هذا في عدة أماكن: إذا كنت على نظام لا يدعم التحكم في الوظائف، تُستدعى هذه الصدفة عند ضغط ^K Z. كما أنها الصدفة التي تعمل في نوافذ الصدفة. إذا لم يُضبط SHELL (كما في Cygwin) أو إذا ضُبط على /bin/sh، يستدعي JOE أول صدفة موجودة من هذه القائمة: /bin/bash، /usr/bin/bash، /bin/sh.

•   SIMPLE_BACKUP_SUFFIX
    إذا ضُبط، فسيُلحق باسم الملف بدلًا من ~ لإنشاء اسم ملف النسخة الاحتياطية.

•   TAGS
    إذا ضُبط على مسار ملف، سيحاول JOE استخدامه كملف "tags" إذا لم يوجد ملف "tags" في الدليل الحالي.

•   TEMP
    إذا ضُبط، يعطي المسار إلى الدليل لفتح ملف التبديل (swapfile) بدلًا من /tmp

•   TERMCAP
    يُستخدم بواسطة محلل ملفات termcap المدمج في JOE (لا يُستخدم لـ terminfo). يمكن وضع مدخل termcap مباشرة في هذا المتغير (والذي سيُستخدم إذا طابق TERM)، أو إذا بدأ بـ /، فإنه يعطي قائمة بمسارات ملفات termcap للبحث فيها.

•   TERMPATH
    يعطي قائمة بالمسارات لملفات termcap للبحث فيها عندما يحتوي TERMCAP على مدخل termcap (وإلا فسيُتجاهل). قائمة المسارات المبدئية لملفات termcap (عندما لا يحتوي TERMCAP و TERMPATH عليها) هي: "~/.termcap /etc/joe/termcap /etc/termcap"

•   TERM
    يعطي نوع الطرفية، مثل "vt100" أو "xterm".

•   USER
    يُستخدم للحصول على اسم المستخدم لأقفال الملفات المتوافقة مع EMACS.

أوامر JOE مجمعة حسب الوظيفة
يمكن إدخال هذه الأوامر عند محث Esc X.

  البرامج الخلفية

•   bknd
    تشغيل صدفة في نافذة

•   vtbknd
    تشغيل صدفة في نافذة محاكي طرفية

•   killproc
    إنهاء البرنامج في النافذة الحالية

•   run
    تشغيل أمر UNIX في نافذة

•   sys
    تشغيل أمر UNIX والعودة إلى المحرر عند الانتهاء (لا يمر الإدخال/الإخراج عبر المحرر، ولكننا نحصل على حالة العودة للأمر).

  الكتل

•   blkcpy
    نسخ الكتلة الموسومة إلى موضع المؤشر

•   blkdel
    حذف الكتلة الموسومة

•   blkmove
    نقل الكتلة الموسومة إلى موضع المؤشر

•   blksave
    حفظ الكتلة الموسومة في ملف

•   copy
    نسخ الكتلة إلى حلقة الحذف (kill-ring)

•   drop
    ضبط markb. إذا كانت مضبوطة مسبقًا، تُزال.

•   dropon
    ضبط markb. إذا كانت مضبوطة مسبقًا، تُزال؛ ويُفعل وضع الوسم.

•   toggle_marking
    إذا كنا في كتلة: تُمسح markb و markk. إذا كان الوسم معطلًا: تُضبط markb ويُفعل الوسم. إذا كان الوسم مفعلًا: تُضبط markk (مع التبديل مع markb إذا لزم الأمر) ويُعطل الوسم.

•   begin_marking
    إذا كنا على حافة كتلة: تُضبط markb على الحافة الأخرى ويُفعل وضع الوسم. وخلاف ذلك، تُضبط markb على موضع المؤشر ويُفعل وضع الوسم.

•   select
    ضبط markb. إذا كانت مضبوطة مسبقًا، لا يُفعل شيء.

•   filt
    ترشيح الكتلة أو الملف عبر أمر UNIX

•   markb
    ضبط وسم بداية الكتلة

•   markk
    ضبط وسم نهاية الكتلة

•   markl
    وسم السطر الحالي

•   nmark
    إزالة markb و markk

•   picokill
    حذف السطر أو الكتلة

•   pop
    استعادة قيم markb و markk من المكدس

•   psh
    دفع قيم markb و markk إلى المكدس

•   swap
    تبديل موضع المؤشر مع markb

•   tomarkb
    نقل المؤشر إلى markb

•   tomarkbk
    نقل المؤشر إلى markb أو markk

•   tomarkk
    نقل المؤشر إلى markk

•   yank
    إدراج ما في قمة حلقة الحذف

•   yankpop
    التمرير عبر حلقة الحذف

•   yapp
    إلحاق الحذف التالي بقمة حلقة الحذف

•   upper
    تحويل كل ما في الكتلة إلى أحرف كبيرة

•   lower
    حوّل كل ما في الكتلة إلى أحرف صغيرة

  المخازن

•   bufed
    قائمة المخازن

•   edit
    حمّل الملف في النافذة: يطلب إعادة التحميل إذا كان المخزن موجودًا

•   switch
    حمّل الملف في النافذة: يستخدم المخزن دائمًا إذا كان موجودًا

•   scratch
    ادفع مخزن مسودة إلى النافذة الحالية

•   popabort
    أجهِض وأخرِج النافذة من المكدس (لا تفعل شيئًا إذا كان المكدس فارغًا)

•   nbuf
    حمّل المخزن التالي في النافذة الحالية

•   pbuf
    حمّل المخزن السابق في النافذة الحالية

•   reload
    أعد قراءة الملف في المخزن (استرجاع)

•   reloadall
    أعد قراءة جميع المخازن غير المعدلة

  حركة المؤشر

•   bof
    انقل المؤشر إلى بداية الملف

•   bol
    انقل المؤشر إلى بداية السطر (دائمًا)

•   bop
    انتقل إلى بداية الفقرة

•   bos
    انتقل إلى بداية الشاشة

•   bkwdc
    ابحث للخلف عن محرف

•   بايت
    انقل المؤشر إلى إزاحة بايت محددة في الملف.

•   col
    انقل المؤشر إلى رقم عمود محدد.

•   dnarw
    انقل المؤشر لأسفل سطرًا واحدًا

•   eof
    انقل المؤشر إلى نهاية الملف

•   eol
    انقل المؤشر إلى نهاية السطر

•   eop
    انقل المؤشر إلى نهاية الفقرة

•   fwrdc
    ابحث للأمام عن محرف مطابق

•   gomark
    انقل المؤشر إلى علامة حفظ

•   home
    انقل المؤشر إلى بداية السطر

•   line
    انقل المؤشر إلى سطر محدد

•   ltarw
    انقل المؤشر لليسار

•   nedge
    انقل المؤشر إلى الحافة التالية

•   nextpos
    انقل المؤشر إلى الموضع التالي في تأريخ مواضع المؤشر

•   nextword
    انقل المؤشر إلى نهاية الكلمة التالية

•   pedge
    انقل المؤشر إلى الحافة السابقة

•   prevpos
    انقل المؤشر إلى الموضع السابق في تأريخ مواضع المؤشر

•   prevword
    انقل المؤشر إلى بداية الكلمة السابقة

•   rtarw
    انقل المؤشر لليمين

•   setmark
    ضع علامة حفظ

•   tomatch
    انقل المؤشر إلى المحدد المطابق

•   tos
    انقل المؤشر إلى أعلى الشاشة

•   uparw
    انقل المؤشر للأعلى

  الحذف

•   backs
    مسافة للخلف

•   backw
    مسافة للخلف لكلمة

•   delbol
    احذف حتى بداية السطر

•   delch
    احذف المحرف الموجود تحت المؤشر

•   deleol
    احذف حتى نهاية السطر

•   dellin
    احذف السطر بأكمله

•   delw
    احذف الكلمة التي على اليمين

  تحليل الأخطاء

•   nxterr
    اذهب إلى الخطأ المحلل التالي

•   parserr
    حلل الأخطاء في الملف الحالي

•   gparse
    حلل قائمة grep في الملف الحالي

•   jump
    حلل السطر الحالي واففز إليه

•   prverr
    اذهب إلى الخطأ المحلل السابق

•   showerr
    أظهر الرسالة الحالية

•   grep
    نفذ أمر grep، وحلل عند الانتهاء

•   build
    نفذ أمر البناء، وحلل عند الانتهاء

•   release
    حرر سجلات الخطأ/grep

  خروج

•   cancel
    مثل abort، لكنه لا يعيد فشلًا: مفيد في الماكرو للهروب من محث.

•   abort
    أجهض المخزن/النافذة الحالية. استحث إذا كانت مغيرة.

•   abortbuf
    مثل ما سبق، ولكن يفشل فقط إذا اضطر إلى الاستحثاث لأنه النافذة الأخيرة في مخزن معدل.

•   ask
    استحث لحفظ الملف الحالي: إذا قال المستخدم نعم يعود، إذا قال لا: يشغل 'abort'. استخدمه في ماكرو: "ask,query,exsave"

•   exsave
    احفظ الملف واخرج

•   lose
    إفناء مخزن EMACS. يُحذف المخزن- وأي نوافذ مرتبطة به تحصل على مخزن مسودة بديل.

•   querysave
    استحث لحفظ كل مخزن معدل. استخدمه في ماكرو: "querysave,query,killjoe"

•   killjoe
    اخرج من JOE فورًا دون التحقق من المخازن المعدلة

  الملفات

•   cd
    اضبط بادئة الدليل

•   save
    احفظ الملف

•   savenow
    احفظ فورًا، ما لم يكن اسم الملف غير معروف

•   insf
    أدرج ملفًا

  التنسيق

•   center
    وسط السطر

•   fmtblk
    نسق جميع الفقرات في كتلة

•   تنسيق
    نسق الفقرة الحالية

•   lindent
    أزِح لليسار

•   rindent
    أزِح لليمين

  Help

•   help
    شغل المساعدة أو أوقفها

•   hnext
    انتقل إلى شاشة المساعدة التالية

•   hprev
    انتقل إلى شاشة المساعدة السابقة

  الإدراج

•   ctrl
    اكتب المفتاح التالي

•   finish
    أكمل الكلمة في نافذة النص

•   insc
    أدرج مسافة

•   open
    أدرج سطراً جديداً

•   quote
    أدرج محرف تحكم

•   quote8
    أدرج محرف فوقي (meta)

•   rtn
    مفتاح Return / Enter

•   نوع
    أدرج المحرف المكتوب

•   secure_type
    أدرج المحرف المكتوب، لكن يُسمح به فقط في نوافذ المحث (غير مسموح به في نوافذ الصدفة)

  ماكرو

•   macros
    أدرج ماكروهات لوحة المفاتيح في الملف الحالي

•   play
    نفذ ماكرو

•   query
    علق تسجيل الماكرو لاستعلام المستخدم

•   record
    سجل ماكرو

•   stop
    أوقف تسجيل الماكرو

  قائمة

•   تراجع_القائمة
    تراجع في قائمة إكمال الملفات

•   bofmenu
    انتقل إلى بداية القائمة

•   bolmenu
    انتقل إلى بداية السطر في قائمة

•   dnarwmenu
    انتقل لأسفل سطراً واحداً في قائمة

•   eolmenu
    انقل المؤشر إلى نهاية السطر في قائمة

•   eofmenu
    انقل المؤشر إلى نهاية القائمة

•   ltarwmenu
    انقل المؤشر يساراً في قائمة

•   rtarwmenu
    انقل المؤشر يميناً في القائمة

•   uparwmenu
    انقل المؤشر لأعلى في القائمة

•   dnslidemenu
    أزح القائمة لأسفل سطراً واحداً

•   upslidemenu
    أزح القائمة لأعلى سطراً واحداً

•   pgupmenu
    أزح القائمة لأعلى

•   pgdnmenu
    أزح القائمة لأسفل

•   tabmenu
    تنقل عبر القائمة باستخدام Tab

  متفرقات

•   beep
    Beep

•   execmd
    نفذ أمر JOE

•   debug_joe
    أدرج معلومات التنقيح في المخزن الوسيط

•   math
    الحاسبة

•   عمليات_رياضية
    حاسبة آمنة (لا توجد طريقة لتشغيل ماكروهات joe())

•   mode
    محث الوضع

•   menu
    محث القائمة

•   msg
    اعرض رسالة

•   notmod
    امسح علم التعديل

•   retype
    حدث الشاشة

•   shell
    علق العملية أو نفذ صدفة فرعية

•   stat
    اعرض موضع المؤشر

•   tag
    بحث في ملف الأوسمة

•   tagjump
    اقفز إلى تطابق ملف الأوسمة التالي (فقط إذا ضُبط notagsmenu)

•   timer
    نفذ ماكرو بشكل دوري

•   txt
    أدرج نصاً. إذا كان المحرف الأول هو `، فيُفترض أن النص عبارة عن سلسلة تنسيق (أي السلسلة المستخدمة لتعريف سطر الحالة لخياري rmsg و lmsg) وتُنسق قبل الإدراج.

•   name
    أدرج اسم الملف الحالي

•   language
    أدرج اللغة الحالية

•   charset
    أدرج طقم المحارف الحالي

•   keymap
    بدل إلى خريطة مفاتيح أخرى

  المحثات

•   complete
    أكمل اسم ملف في محث

•   if
    نفذ الأوامر التالية فقط إذا كان التعبير (expr) صحيحاً (غير صفري)

•   then
    مثل rtn لكنه يعمل فقط في نوافذ المحث

•   elsif
    جرب شرطاً جديداً

•   else
    بدل علم الصحة

•   endif
    ابدأ بتشغيل الأوامر مرة أخرى

هذا مثال على ماكرو 'if':

if,"char==65",then,"إنه حرف A",else,"ليس حرف A",endif __^[ q__

عندما تضغط على __^[ q__، إذا كان المحرف تحت المؤشر هو 'A': يُدرج "إنه حرف A" في المخزن الوسيط، وإلا يُدرج "ليس حرف A".

تنشئ "if" محثاً رياضياً (مثل __Esc M__). وتعمل "then" مثل "rtn"- فهي تضغط مفتاح العودة (return) لهذا المحث.

تتوفر المتغيرات التالية داخل المحث الرياضي:

•   char
    قيمة ASCII للمحرف الموجود تحت المؤشر

•   width
    عرض الشاشة

•   height
    ارتفاع الشاشة

•   بايت
    رقم البايت

•   col
    رقم العمود

•   line
    رقم السطر

•   lines
    عدد الأسطر في الملف

•   top
    رقم سطر السطر العلوي للنافذة

  تكرار

•   arg
    محث وسيط التكرار

•   uarg
    وسيط عام

  التمرير

•   crawll
    أزح الشاشة يساراً

•   crawlr
    أزح الشاشة يميناً

•   dnslide
    أزح الشاشة لأسفل سطراً واحداً

•   pgdn
    أزح الشاشة لأسفل

•   pgup
    أزح الشاشة لأعلى

•   upslide
    أزح لأعلى سطراً واحداً

  البحث والاستبدال

•   ffirst
    ابحث عن نص

•   fnext
    كرر البحث السابق

•   isrch
    بحث تزايدي للأمام

•   qrepl
    البحث والاستبدال

•   rfirst
    ابحث عن نص للخلف

•   rsrch
    بحث تزايدي عكسي

  Windows

•   explode
    اعرض نافذة واحدة أو اعرض جميع النوافذ

•   dupw
    كرر النافذة الحالية

•   groww
    زد حجم النافذة

•   nextw
    انقل المؤشر إلى النافذة التالية

•   prevw
    اذهب إلى النافذة السابقة

•   shrinkw
    قلص النافذة

•   splitw
    اقسم النافذة إلى اثنتين

•   tw0
    أزل هذه النافذة

•   tw1
    أظهر نافذة واحدة فقط

•   mwind
    اجلب نافذة رسائل الخطأ على الشاشة وضع المؤشر فيها.

•   showlog
    اجلب مخزن سجل بدء التشغيل المسود إلى نافذة.

•   mfit
    لاءم نافذتين على الشاشة: اجعل النافذة الحالية 6 أسطر، وأعطِ بقية المساحة للنافذة التي فوقها. النافذة التي في الأعلى إما أن تكون النافذة السابقة الموجودة بالفعل، أو واحدة منشأة حديثًا إن لم توجد واحدة.

  التراجع

•   redo
    أعد تنفيذ آخر تغيير متراجع عنه

•   undo
    تراجع عن آخر تغيير

  الفأرة

•   tomouse
    انقل المؤشر إلى حيث نُقرت أو سُحبت الفأرة

•   defmdown
    معالج النقر المفرد المبدئي، وعادة ما يُربط بـ MDOWN. يضع المؤشر عند الفأرة ويبدأ منطقة.

•   defmup
    معالج إفلات النقر المفرد المبدئي، وعادة ما يُربط بـ MUP. يكمل تحديد منطقة.

•   defmdrag
    معالج سحب النقر المفرد المبدئي، وعادة ما يُربط بـ MDRAG. يحدد منطقة من النص محرفًا في كل مرة.

•   defm2down
    معالج النقر المزدوج المبدئي، وعادة ما يُربط بـ M2DOWN.

•   defm2up
    معالج إفلات النقر المزدوج المبدئي، وعادة ما يُربط بـ M2UP.

•   defm2drag
    معالج سحب النقر المزدوج المبدئي، وعادة ما يُربط بـ M2DRAG. يحدد منطقة من النص كلمة في كل مرة.

•   defm3down
    معالج النقر الثلاثي المبدئي، وعادة ما يُربط بـ M3DOWN.

•   defm3up
    معالج إفلات النقر الثلاثي المبدئي، وعادة ما يُربط بـ M3UP.

•   defm3drag
    معالج سحب النقر الثلاثي المبدئي، وعادة ما يُربط بـ M3DRAG. يحدد منطقة من النص سطرًا في كل مرة.

•   defmiddledown
    معالج النقر بالزر الأوسط المبدئي، وعادة ما يُربط بـ MIDDLEDOWN. هذا يدرج النص.

•   defmiddleup
    معالج إفلات النقر بالزر الأوسط المبدئي، وعادة ما يُربط بـ MIDDLEUP.

•   xtmouse
    يعالج أحداث فأرة xterm، وعادة ما يُربط بـ Esc [ M. يحلل بقية التسلسل ويولد "مفاتيح" وهمية يمكن ربطها بوحدات ماكرو في ملف joerc. يستخدم مؤقتًا لاكتشاف النقر المزدوج والثلاثي. المفاتيح هي: MUP و MDOWN و MDRAG و M2UP و M2DOWN و M2DRAG و M3UP و M3DOWN و M3DRAG و MWUP و MWDOWN.

•   extmouse
    يعالج أحداث فأرة xterm الممتدة، وعادة ما يُربط بـ Esc [ <.

•   paste
    أدرج نصًا مرمّزًا بأساس 64 (لخيار XTerm --enable-base64).

•   brpaste
    عطل الإزاحة الآلية، ولف الكلمات، والمسافات. الفكرة هي ربط هذا بـ Esc [ 2 0 0 ~ حتى يُدرج النص كما هو عندما يرسل محاكي الطرفية لصقًا بالفأرة.

•   brpaste_done
    استعد أوضاع الإزاحة الآلية، ولف الكلمات، والمسافات إلى قيمها الأصلية قبل brpaste. الفكرة هي ربط هذا بـ Esc [ 2 0 1 ~ لكي تُستعاد هذه الأوضاع بعد اللصق بالفأرة.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.