Ruby Curses: كيفية الحصول على مفاتيح CTRL/META مع

StackOverflow https://stackoverflow.com/questions/4607891

  •  25-09-2019
  •  | 
  •  

سؤال

أنا أحاول Curses.getchr, ، لكن مفاتيح مثل Ctrl+s لم يتم القبض عليهم ، هل هناك أي lib من شأنه أن يسمح لي بالتقاطها وأفضل شيء من كل شيء بديه

FooBar.bind('Ctrl+s'){ raise "dont save!" }
هل كانت مفيدة؟

المحلول

Ctrl+s عادة ما يتم إمساكها من قبل المحطة ، لذلك عليك أن تضع Curses في الوضع الخام لالتقاط هذا المفتاح. هنا مثال:

#!/usr/bin/ruby

require 'curses'

Curses.raw # intercept everything
Curses.noecho
loop do
  case Curses.getch
    when ?q     then break
    when ?b     then Curses.addch ?b
    when ?\C-s  then Curses.addstr "^s" # Ctrl+S
  end
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top