أرسل "C- (" إلى EMACs في محطة VT100/Xterm (محطة MAC OS X)؟
سؤال
هل من الممكن بأي شكل من الأشكال إرسال المفتاح "C- (" إلى Emacs عبر محطة VT100/Xterm (Mac OS X Terminal)؟ هل هناك تسلسل هروب يمكن إرساله لتحقيق المكافئ؟
أظن أن المشكلة الأساسية هي أن مفهوم الجمع بين السيطرة والشخصية "(" (وغيرها من الشخصيات التي يتم إنتاجها باستخدام Shift) غير موجود.
ملاحظة: استخدام الكاكاو emacs ليس خيارًا. والسبب في الحاجة إلى "C- (" هو أن Paredit.EL يستخدمه من بين مجموعات رئيسية أخرى ، وسيكون من الأفضل عدم إعادة تجهيزه (لأنه من المنطقي أن يكون هناك على "C- (".
المحلول
لم تستطع محطة VT100 القيام بذلك ، لأنه لا يوجد ^(
تحكم الشخصية المقابلة ل (
. ومع ذلك ، لدى Xterm وضع ما يسمى "ModifyTherKeyys" ، والذي يسمح بإرسال رموز مفاتيح فريدة لمجموعات من هذا القبيل.
لتمكينه ، اضبط modifyOtherKeys
مورد ، على سبيل المثال في ~/.Xdefaults
:
XTerm*vt100.modifyOtherKeys: 1
مع ذلك ، Ctrl+(سيرسل رمز المفاتيح التالي:
^[[27;6;40~
هذا طويل إلى حد ما ، لذلك تم تقديم تنسيق آخر لرموز المفاتيح مثل ذلك ، والذي يمكن تمكينه عن طريق ضبط formatOtherKeys
المورد:
XTerm*vt100.formatOtherKeys: 1
مع ذلك ، Ctrl+(يرسل:
^[[40;6u
في كل من هذه الرموز الرئيسية ، 40 هو رمز ASCII العشري ل (
, ، و 6 يمثل CTRL.
نرى man xterm
و http://invisible-island.net/xterm/ctlseqs/ctlseqs.html لمزيد من التفاصيل. لا فكرة عما إذا كانت Terminal.App تدعم أيًا منها.