GNU readline и привязки клавиш - PullRequest
       22

GNU readline и привязки клавиш

3 голосов
/ 31 августа 2011

Я прочитал из документации getline GNU, что он способен связывать некоторые функции обратного вызова с некоторыми клавишами. Я уже знаю, как связать действие с клавишей TAB , используя функцию rl_bind_key.

Но как я могу использовать его для привязки некоторых действий к следующим клавишам ?: CTRL + TAB , ESC , PAUSE / BREAK

1 Ответ

3 голосов
/ 25 июля 2012
#include <stdio.h>

#include <readline/readline.h>

int my_cool_readline_func (int count, int key) {
   printf ("key pressed: %d\n", key);
   rl_on_new_line ();
   return 0;
}

int main(void) {
     rl_command_func_t my_cool_readline_func;
     rl_bind_key ('\t', my_cool_readline_func);
     rl_bind_key (27, my_cool_readline_func); /* ascii code for ESC */
     rl_bind_keyseq ("\\C-a", my_cool_readline_func);

     while (1) {
         char *line = readline ("rl> ");
     }
}

Если вы используете систему GNU (или один из ее вариантов), выполните:

info readline "command line editing" "introduction" # notation convention
info readline "programming" "readline" "biding" # biding functions
...