1% A simple emacs-emulation for SLrline 2 3require ("rline/complete"); 4require ("rline/editfuns"); 5 6rline_unsetkey ("^@"); 7foreach $1 ([1:255]) 8{ 9 $2 = char (-$1); % byte-semantics 10 rline_unsetkey ($2); 11 rline_setkey ("self_insert", $2); 12} 13 14rline_setkey ("bdel", "^?"); 15rline_setkey ("bol", "^A"); 16rline_setkey ("left", "^B"); 17rline_setkey ("kbd_quit", "^C"); 18rline_setkey ("del", "^D"); 19rline_setkey ("eol", "^E"); 20rline_setkey ("right", "^F"); 21rline_setkey ("kbd_quit", "^G"); 22rline_setkey ("bdel", "^H"); 23rline_setkey ("enter", "\n"); 24rline_setkey (&rline_kill_eol, "^K"); 25rline_setkey ("redraw", "^L"); 26rline_setkey ("enter", "\r"); 27rline_setkey ("down", "^N"); 28rline_setkey ("up", "^P"); 29rline_setkey ("quoted_insert", "^Q"); 30rline_setkey (&rline_kill_bol, "^U"); 31rline_setkey (&rline_kill_region, "^W"); 32rline_setkey (&rline_yank, "^Y"); 33rline_setkey ("trim", "\e\\"); 34rline_setkey (&rline_bskip_word, "\eb"); 35rline_setkey (&rline_skip_word, "\ef"); 36rline_setkey (&rline_copy_region, "\ew"); 37rline_setkey ("complete", "\t"); 38 39#ifdef UNIX VMS 40rline_setkey (&rline_set_mark, "^@"); 41rline_setkey ("up", "\e[A"); 42rline_setkey ("down", "\e[B"); 43rline_setkey ("right", "\e[C"); 44rline_setkey ("left", "\e[D"); 45rline_setkey ("up", "\eOA"); 46rline_setkey ("down", "\eOB"); 47rline_setkey ("right", "\eOC"); 48rline_setkey ("left", "\eOD"); 49#else 50rline_setkey (&rline_set_mark, "^@^C"); 51rline_setkey ("up", "^@H"); 52rline_setkey ("down", "^@P"); 53rline_setkey ("right", "^@M"); 54rline_setkey ("left", "^@K"); 55rline_setkey ("del", "^@S"); 56rline_setkey ("eol", "^@O"); 57rline_setkey ("bol", "^@G"); 58 59rline_setkey ("up", "\xE0H"); 60rline_setkey ("down", "\xE0P"); 61rline_setkey ("right", "\xE0M"); 62rline_setkey ("left", "\xE0K"); 63rline_setkey ("del", "\xE0S"); 64rline_setkey ("eol", "\xE0O"); 65rline_setkey ("bol", "\xE0G"); 66#endif 67 68