문서에 따르면여기:
구성 파일에 추가하여 대화 상자에서 키 바인딩을 재정의하거나 추가할 수 있습니다. 대화상자의 바인딩키 명령은 단일 키를 내부 인코딩에 매핑합니다.
바인딩 키 위젯curses_keydialog_key
위젯 이름은 ""(모든 위젯) 또는 텍스트 상자와 같은 특정 위젯. 특정 위젯 바인딩이 재정의됩니다."" 바인딩. 사용자 정의 바인딩은 내장 바인딩을 재정의합니다.curses_key는 "KEY_HELP"의 "HELP"와 같이curs.h에서 파생된 모든 이름이 될 수 있습니다. 대화 상자는 "^A", "^와 같은 ANSI 제어 문자도 인식합니다. ?" 및 "~A" 및 "~?"와 같은 C1 컨트롤 마지막으로 백슬래시를 사용하여 단일 문자를 이스케이프할 수 있습니다.
대화 상자의 내부 키 이름은 "DLGK_HELP"의 "HELP"와 같은 dlg_keys.h의 DLG_KEYS_ENUM 유형에 해당합니다.
그래서 나는 다음을 수행했습니다.
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
내 패키지 관리자가 제공하는 대화 상자 버전이 오래된 것으로 나타났습니다. 다음에서 컴파일됨여기예상대로 작동합니다.