Ctrl-c
和Ctrl-\
)以提供一些非基于提示的导航将基于修饰符的键盘快捷键添加到命令行Ruby应用程序的最佳方法是什么?
答案 0 :(得分:0)
安装highline gem - 应允许您捕获各种键组合(无需用户在键后按Enter键)。有关详细信息,请参阅此问题:How to get a single character without pressing enter?
如果您确实使用了高线,至少在我的测试中,您可能(或可能不)能够使用Kernel.trap来获取Ctrl-C等关键事件,因此您应该手动处理这些事件。 Highline会捕获任何键,让你检测ctrl-d vs d。然而,它不会检测ctrl-d和ctrl-shift-d之间的差异,也不会将alt-d与d区分开来。这是一些基本代码:
require "highline/system_extensions"
include HighLine::SystemExtensions
print "Press any key:"
k = get_character
Kernel.abort("\nCtrl-C - exiting..\n") if k == 3
puts
puts k.chr