![如何更改对话框命令的键绑定](https://linux22.com/image/67600/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E5%AF%B9%E8%AF%9D%E6%A1%86%E5%91%BD%E4%BB%A4%E7%9A%84%E9%94%AE%E7%BB%91%E5%AE%9A.png)
根据文档这里:
您可以通过添加到配置文件来覆盖或添加对话框中的键绑定。 Dialog 的bindkey 命令将单个键映射到其内部编码。
绑定键小部件curses_keydialog_key
小部件名称可以是““(所有小部件),或特定的小部件,例如文本框。特定的小部件绑定会覆盖“" 绑定。用户定义的绑定会覆盖内置绑定。curses_key 可以是从curses.h 派生的任何名称,例如“KEY_HELP”中的“HELP”。Dialog 还可以识别 ANSI 控制字符,例如“^A” 、“^?”以及 C1 控件,例如“~A”和“~?”。最后,它允许使用反斜杠转义任何单个字符。
对话框的内部键码名称对应于 dlg_keys.h 中的 DLG_KEYS_ENUM 类型,例如“DLGK_HELP”中的“HELP”。
所以我做了以下事情:
dialog --create-rc dialogrc
export DIALOGRC=/home/MyUser/dialogrc
然后我将其添加到我的dialogrc的底部:
bindkey * \r ITEM_NEXT
bindkey * \w FIELD_NEXT
bindkey * \e GRID_DOWN
我做了所有这些,因为我不完全确定我想要哪一个。我这样开始我的对话:
dialog --clear --backtitle "Test" --menu "key test" 15 50 4 Option1 "Option1" Option2 "Option2" Option3 "Option3"
我知道随着颜色的变化它正在读取我的dialogrc 文件。然而 w、e 和 r 键没有任何作用。我希望能够通过按向上或向下箭头以外的键在菜单项之间上下移动。
我怎样才能做到这一点?
答案1
事实证明,我的包管理器提供的对话框版本已经过时。编译自这里它按预期工作。