سؤال كيفية ربط السيطرة + apostrophe عبر bindkey في zsh


هناك طريقة لربط السيطرة + apostophe عبر bindkey؟
لقد حاولت:

 bindkey "\C-'"
 bindkey "^'"
 bindkey "\C-\x27"

وكل هذا لا يعمل


2
2018-06-06 12:10


الأصل




الأجوبة:


على الاغلب لا. على الأقل ليس من دون تعديل الجهاز الخاص بك أيضا.

قذيفة تعمل على المحطة. الوحدة الأساسية للإدخال على مطراف هي شخصية ، وليس مفتاح. عندما تقوم بإضافة ارتباط مفتاح إلى shell الخاص بك ، فأنت بالفعل ملزم بتسلسل حروف ، وليس مجموعة مفاتيح. لا توجد أي حرف Ctrl-apostrophe.

منذ أقدم محطات القائمة على ASCII ، كانت هناك مجموعة من المفاتيح التي يمكن دمجها مع Ctrl لإنتاج حرف واحد. تتوافق المفاتيح التي تقوم بذلك مع رموز ASCII 0x3f خلال 0x5f: ? @ A-Z [ \ ] ^ _

عند الضغط على مفتاح Ctrl بإحدى هذه الأحرف ، يتم إرسال القيمة مع 0x40 بت معكوسة. 0x3f ? يصبح 0x7f DEL، وتصبح بقية 0x00 من خلال 0x1f. الفاصلة العليا هي 0x27 ، لذلك إذا تم دمجها مع مفتاح Ctrl بموجب هذه القاعدة ، فستصبح 0x67 ، وهي g. الحصول على g عند كتابة Ctrl-apostrophe لن يكون مفيدًا ، لذلك لا تفعل المحطة ذلك.

ومع ذلك ، يمكن ربط المفاتيح التي لا تتوافق مع أحرف ASCII واحدة ، مثل مفاتيح الأسهم على سبيل المثال. يعمل هذا لأن تلك المفاتيح يتم ترجمتها بواسطة الجهاز إلى تسلسل هروب - سلسلة من الأحرف تبدأ بالهرب. يمكن ربط هذه التسلسلات بإجراءات مفيدة. فمثلا، ESC [ A هو عادة مفتاح السهم لأعلى ، وهو مرتبط بعمل مرتبط بالتاريخ في الغلاف.

إذا تم تحديدك بما فيه الكفاية ، يمكنك إقناع جهازك بإخراج بعض تسلسل الهروب من أجل Ctrl-apostrophe ، ثم استخدم تسلسل الهروب هذا في أمر bindkey الخاص بك. للاستمرار على هذا المنوال ، راجع الوثائق الخاصة بمطاريفك.


3
2018-06-06 12:38



شكر. في urxvt يمكن القيام بذلك عن طريق إضافة "URxvt.keysym.C-apostrophe: * keyum * جديد" في $ HOME / .Xresourses - asdfffiii