سؤال

هل من الممكن بأي شكل من الأشكال إرسال المفتاح "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 تدعم أيًا منها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top