! Extensions to Eve to better support edt emulation procedure edt$end_word ! Support routine for delete word ! Find the end of the word ! ! Source: ! EDTSECINI local temp_range, temp_length; on_error ! catch search failure (suppress message) return temp_length ! return 0 endon_error temp_range:=search(edt$x_forward_word,forward); temp_length:=length(temp_range); move_horizontal(temp_length); return temp_length; endprocedure procedure eve_edt_change_case ! Invert case of character or range ! Invert case of character or range ! ! Source: ! Abel abl$do("eve_change_case('invert')","abl$q_reset := 1"); endprocedure; procedure eve_edt_delete_eol ! Delete to EOL not including EOL ! This routine emulates EDT's Gold-KP2 Delete-to-eol keypad command ! (deletes from cursor to end of line, or next line if already at eol) ! ! Source: ! Abel if get_info(current_buffer,"character")=eve$kt_null then abl$do('eve_erase_character',''); else abl$do('eve_erase_line','abl$q_end := 1; abl$q_start := 0'); endif; endprocedure procedure eve_edt_delete_line ! Delete to EOL including EOL ! Erase from cursor to end of line including line terminator ! ! Source: ! Abel local here; abl$do('eve_erase_line','abl$q_end := 1; abl$q_start := 0'); here:=mark(none); move_vertical(1); append_line; position(here); endprocedure procedure eve_edt_delete_word ! Delete word ! Delete to end of word ! ! Source: ! EDTSECINI local buff, temp_length; buff:=current_buffer; if get_info(buff,"character")=ascii(9) then abl$erased_word := ascii(9); erase_character(1); else temp_length := edt$end_word; if temp_length = 0 then abl$erased_word := ascii(10); ! line feed if mark(none) <> end_of (buff) then move_horizontal(1); if mark(none) <> end_of (buff) then append_line else move_horizontal (-1) endif; endif; else abl$erased_word := erase_character(- temp_length) ! delete the word endif; endif; endprocedure procedure eve_edt_eol ! Keypad EOL command ! This routine emulates the edt keypad eol command ! ! Source: ! Abel local move,there; on_error if (error=tpu$_endofbuf) or (error=tpu$_begofbuf) then return endif; if current_direction=forward then position(end_of(current_buffer)) else position(beginning_of(current_buffer)) endif; endon_error; if current_direction=forward then move_horizontal(1) else move_horizontal(-1) endif; there:=search(line_end,current_direction); if there<>0 then position(there) endif; endprocedure procedure eve_edt_line ! Move by line ! Move by line in EDT style ! ! Source: ! Eva if get_info(current_window,"beyond_eol") then position(search(line_end,reverse)); endif; if current_direction=forward then move_horizontal(-current_offset); move_vertical(1); else if current_offset = 0 then move_vertical(-1) else move_horizontal(-current_offset) endif; endif; endprocedure procedure eve_edt_undelete_line ! Undelete last deleted line ! Undelete an erased line ! ! Source: ! Eva local here; if get_info(current_buffer,"character")=eve$kt_null then eve_end_of_line endif; here:=current_offset; abl$do('eve_unerase_line',''); move_vertical(-1); move_horizontal(-current_offset+here); endprocedure procedure eve_edt_undelete_word ! Restore the last deleted word local here; if get_info(current_buffer,"character")=eve$kt_null then eve_end_of_line endif; here:=current_offset; abl$do('eve_unerase_word',''); move_horizontal(-current_offset+here); endprocedure ! End of EDT routines procedure eve_keyboard_abel ! Define the Abel keyboard ! Defines the Abel keyboard. The key_map is removed completely from the ! key_map_list and re-inserted at the beginning of the stack; the user's ! key_map is replaced on top of it (should always be first). ! ! Source: ! Abel on_error endon_error ! ! Remove the user's keys and any previous occurence of Abel keys ! remove_key_map(eve$x_key_map_list,"abl$abel_keyboard",all); remove_key_map(eve$x_key_map_list,"eve$user_keys",all); ! ! Put Abel keys on top of list, and user's on top of that ! add_key_map(eve$x_key_map_list,"first","abl$abel_keyboard"); add_key_map(eve$x_key_map_list,"first","eve$user_keys"); ! ! Change the shift key ! set(shift_key,kp0,eve$x_key_map_list); ! ! Point to the help information ! abl$key_help:="abel"; ! ! Finish up ! message("Abel keyboard defined"); endprocedure procedure eve_keypad_edt ! Define the EDT keypad ! Defines the EDT keypad. The key_map is removed completely from the ! key_map_list and re-inserted at the beginning of the stack; the user's ! key_map is replaced on top of it (should always be first). ! ! Source: ! Abel on_error endon_error ! ! Remove the user's keys and any previous occurence of EDT keys ! remove_key_map(eve$x_key_map_list,"eve$user_keys",all); remove_key_map(eve$x_key_map_list,"abl$edt_keypad",all); ! ! Put the EDT keypad on top of list, and user's on top of that ! add_key_map(eve$x_key_map_list,"first","abl$edt_keypad"); add_key_map(eve$x_key_map_list,"first","eve$user_keys"); ! ! Change the shift key ! set(shift_key,pf1,eve$x_key_map_list); ! ! Point to the help information ! abl$key_help:="edt"; ! ! Finish up ! message("Edt keypad defined"); endprocedure procedure eve_keyboard_wps ! Define the WPS keyboard ! Defines the WPS+ keyboard. The key_map is removed completely from the ! key_map_list and re-inserted at the beginning of the stack; the user's ! key_map is replaced on top of it (should always be first). ! ! Source: ! Abel on_error endon_error ! ! Remove the user's keys and any previous occurence of WPS keys ! Also remove Abel keyboard since Abel has a lot more keys defined than ! we've defined for WPS ! remove_key_map(eve$x_key_map_list,"eve$user_keys",all); remove_key_map(eve$x_key_map_list,"abl$wps_keyboard",all); remove_key_map(eve$x_key_map_list,"abl$abel_keyboard",all); ! ! Put the WPS keyboard on top of list, and user's on top of that ! add_key_map(eve$x_key_map_list,"first","abl$wps_keyboard"); add_key_map(eve$x_key_map_list,"first","eve$user_keys"); ! ! Change the shift key ! set(shift_key,pf1,eve$x_key_map_list); ! ! Point to the help information ! abl$key_help:="wps"; ! ! Finish up ! message("WPS+ keyboard defined"); endprocedure procedure eve_keypad_numeric ! Give the numeric keypad ! Gives numeric keypad definitions. ! ! Source: ! Abel on_error endon_error remove_key_map(eve$x_key_map_list,"abl$numeric_keypad",all); add_key_map(eve$x_key_map_list,"first","abl$numeric_keypad"); abl$key_help:="numeric"; set(shift_key,pf1,eve$x_key_map_list); message("Numeric keypad defined, shift key is PF1"); endprocedure procedure abl$do ! Eve_do that init's qualifiers first ($eve_command,$tpu_commands) ! Initializes qualifier variables associated with a command (if any) ! and then executes the command ! Parameters: ! $eve_command string Eve procedure to execute (must begin with eve_) ! $tpu_commands string VAXTPU commands to execute after the qualifiers ! are init'd and before eve_command executed local eve_command, tpu_command, command_token_length, command_token; on_error endon_error; eve_command := $eve_command; edit(eve_command,lower,trim); if substr(eve_command,1,4) <> "eve_" then message("Procedure assigned to this key can't be processed with ABL$DO"); return 0; endif; command_token := substr(eve_command,5,255); command_token_length := index(command_token,"("); if command_token_length <> 0 then command_token := substr(command_token,1,command_token_length-1); endif; if expand_name(abl$x_qual_def_prefix + command_token, variables) <> "" then execute("abl$qualifier_definition := "+abl$x_qual_def_prefix+command_token); if not abl$init_qualifiers(abl$qualifier_definition) then message("Error initializing qualifiers for " + eve_command); return (eve$kt_null); endif; endif; tpu_commands := $tpu_commands; edit(tpu_commands,lower,trim); if tpu_commands <> "" then execute(tpu_commands) endif; execute(eve_command); endprocedure ! Abel Keyboard definitions... create_key_map("abl$abel_keyboard"); define_key("abl$do('eve_block_text('''')','')", key_name(tab_key,shift_key), "block_text", "abl$abel_keyboard"); define_key("abl$do('eve_center_line','')", key_name("^",shift_key), "center_line", "abl$abel_keyboard"); define_key("abl$do('eve_repeat(eve$k_no_arg)','')", key_name("*",shift_key), "repeat", "abl$abel_keyboard"); define_key("abl$do('eve_mark('''')','')", key_name(".",shift_key), "mark", "abl$abel_keyboard"); define_key("abl$do('eve_one_window','')", key_name("1",shift_key), "one_window", "abl$abel_keyboard"); define_key("abl$do('eve_two_windows','')", key_name("2",shift_key), "two_windows", "abl$abel_keyboard"); define_key("abl$do('eve_other_window','')", key_name("0",shift_key), "other_window", "abl$abel_keyboard"); define_key("abl$do('eve_shift_left(eve$k_no_arg)','')", key_name("<",shift_key), "shift_left", "abl$abel_keyboard"); define_key("abl$do('eve_shift_right(eve$k_no_arg)','')", key_name(">",shift_key), "shift_right", "abl$abel_keyboard"); define_key("abl$do('eve_attach','')", key_name("a",shift_key), "attach", "abl$abel_keyboard"); define_key("abl$do('eve_change_mode','')", ctrl_a_key, "change_mode", "abl$abel_keyboard"); define_key("abl$do('eve_buffer('''')','')", key_name("b",shift_key), "buffer", "abl$abel_keyboard"); define_key("abl$do('eve_change_word_case('''')','')", key_name("c",shift_key), "change_word_case", "abl$abel_keyboard"); define_key("abl$do('eve_dcl(eve$kt_null)','')", key_name("d",shift_key), "dcl", "abl$abel_keyboard"); define_key("abl$do('eve_spawn','')", ctrl_d_key, "spawn", "abl$abel_keyboard"); define_key("abl$do('eve_define_key('''')','')", key_name(ctrl_d_key,shift_key), "define_key", "abl$abel_keyboard"); define_key("execute(current_buffer)", key_name("e",shift_key), "", "abl$abel_keyboard"); define_key("abl$do('eve_fill_paragraph','')", key_name("f",shift_key), "fill_paragraph", "abl$abel_keyboard"); define_key("abl$do('eve_get_file(eve$kt_null)','abl$q_old := 1')", key_name("g",shift_key), "get_file", "abl$abel_keyboard"); define_key("abl$do('eve_include_file('''')','')", key_name("i",shift_key), "include_file", "abl$abel_keyboard"); define_key("abl$do('eve_mark('''')','')", key_name("m",shift_key), "mark", "abl$abel_keyboard"); define_key("abl$do('eve_quit','')", key_name("q",shift_key), "quit", "abl$abel_keyboard"); define_key("abl$do('eve_learn','')", key_name("r",shift_key), "learn", "abl$abel_keyboard"); define_key("abl$do('eve_get_file(''sys$library:evesecini.tpu'');eve_set_write(''lock'')','')", key_name("s",shift_key), "", "abl$abel_keyboard"); define_key("abl$do('eve_tpu('''')','')", key_name("t",shift_key), "tpu", "abl$abel_keyboard"); define_key("abl$do('eve_erase_line','abl$q_start := 1')", ctrl_u_key, "erase_start_of_line", "abl$abel_keyboard"); define_key("abl$do('eve_erase_line','abl$q_end := 1')", key_name("u",shift_key), "erase_end_of_line", "abl$abel_keyboard"); define_key("abl$do('eve_quote','')", ctrl_v_key, "quote", "abl$abel_keyboard"); define_key("abl$do('eve_write_file('''')','')", key_name("w",shift_key), "write_file", "abl$abel_keyboard"); define_key("abl$do('eve_open_line','')", key_name(ret_key,shift_key), "open_line", "abl$abel_keyboard"); define_key("abl$do('eve_top','')", key_name(up,shift_key), "top", "abl$abel_keyboard"); define_key("abl$do('eve_bottom','')", key_name(down,shift_key), "bottom", "abl$abel_keyboard"); define_key("abl$do('eve_start_of_line','')", key_name(left,shift_key), "start_of_line", "abl$abel_keyboard"); define_key("abl$do('eve_end_of_line','')", key_name(right,shift_key), "end_of_line", "abl$abel_keyboard"); ! ! Abel keypad ! define_key ("execute (lookup_key (eve$get_shift_key, program))", kp0, "shift key", "abl$abel_keyboard"); define_key("abl$do('eve_move_by_character','')", kp1, "move_by_character", "abl$abel_keyboard"); define_key("abl$do('eve_change_case(''inv'')','')", key_name(kp1,shift_key), "change_case", "abl$abel_keyboard"); define_key("abl$do('eve_move_by_word','')", kp2, "move_by_word", "abl$abel_keyboard"); define_key("abl$do('eve_change_word_case('''')','')", key_name(kp2,shift_key), "change_word_case", "abl$abel_keyboard"); define_key("abl$do('eve_move_by_line','')", kp3, "move_by_line", "abl$abel_keyboard"); define_key("abl$do('eve_where','')", key_name(kp3,shift_key), "where", "abl$abel_keyboard"); define_key("abl$do('eve_erase_character','')", kp4, "erase_character", "abl$abel_keyboard"); define_key("abl$do('eve_unerase_character','')", key_name(kp4,shift_key), "restore_character", "abl$abel_keyboard"); define_key("abl$do('eve_erase_word','abl$q_current := 1')", kp5, "erase_word", "abl$abel_keyboard"); define_key("abl$do('eve_unerase_word','')", key_name(kp5,shift_key), "restore_word", "abl$abel_keyboard"); define_key("abl$do('eve_erase_line','')", kp6, "erase_line", "abl$abel_keyboard"); define_key("abl$do('eve_unerase_line','')", key_name(kp6,shift_key), "restore_line", "abl$abel_keyboard"); define_key("abl$do('eve_select','')", kp7, "select", "abl$abel_keyboard"); define_key("abl$do('eve_block_select','')", key_name(kp7,shift_key), "block_select", "abl$abel_keyboard"); define_key("abl$do('eve_remove','')", kp8, "remove", "abl$abel_keyboard"); define_key("abl$do('eve_block_remove','')", key_name(kp8,shift_key), "block_remove", "abl$abel_keyboard"); define_key("abl$do('eve_insert_here','')", kp9, "insert_here", "abl$abel_keyboard"); define_key("abl$do('eve_block_insert_here','')", key_name(kp9,shift_key), "block_insert_here", "abl$abel_keyboard"); define_key("abl$do('eve_search('''')','')", pf1, "search", "abl$abel_keyboard"); define_key("abl$do('eve_substitute('''','''')','')",key_name(pf1,shift_key), "substitute", "abl$abel_keyboard"); define_key("abl$do('eve_help('''')','abl$q_keypress := 1')", pf2, "help", "abl$abel_keyboard"); define_key("abl$do('eve_help('''')','')", key_name(pf2,shift_key), "help", "abl$abel_keyboard"); define_key("abl$do('eve_erase_whitespace','')", pf3, "erase_whitespace", "abl$abel_keyboard"); define_key("abl$do('eve_do('''')','')", pf4, "do", "abl$abel_keyboard"); define_key("abl$do('eve_restore','')", key_name(pf4,shift_key), "restore", "abl$abel_keyboard"); define_key("abl$do('eve_other_window','')", minus, "other_window", "abl$abel_keyboard"); define_key("abl$do('eve_toggle_message','')", key_name(minus,shift_key), "toggle_message", "abl$abel_keyboard"); define_key("abl$do('eve_destroy_buffer(get_info(current_buffer,''name''))','')", comma, "destroy_buffer", "abl$abel_keyboard"); define_key("abl$do('eve_list_buffers','')", key_name(comma,shift_key), "list_buffers", "abl$abel_keyboard"); define_key("abl$do('eve_change_direction','')", enter, "change_direction", "abl$abel_keyboard"); define_key("abl$do('eve_change_mode','')", key_name(enter,shift_key), "change_mode", "abl$abel_keyboard"); define_key("abl$do('eve_scroll','')", period, "scroll", "abl$abel_keyboard"); define_key("abl$do('eve_move_by_page','')", key_name(period,shift_key), "page", "abl$abel_keyboard"); !Auxilary Keypad define_key("abl$do('eve_search('''')','')", e1, "search", "abl$abel_keyboard"); define_key("abl$do('eve_substitute('''','''')','')",key_name(e1,shift_key), "substitute", "abl$abel_keyboard"); define_key("abl$do('eve_insert_here','')", e2, "insert_here", "abl$abel_keyboard"); define_key("abl$do('eve_block_insert_here','')", key_name(e2,shift_key), "block_insert_here", "abl$abel_keyboard"); define_key("abl$do('eve_remove','')", e3, "remove", "abl$abel_keyboard"); define_key("abl$do('eve_block_remove','')", key_name(e3,shift_key), "block_remove", "abl$abel_keyboard"); define_key("abl$do('eve_select','')", e4, "select", "abl$abel_keyboard"); define_key("abl$do('eve_block_select','')", key_name(e4,shift_key), "block_select", "abl$abel_keyboard"); define_key("abl$do('eve_help('''')','abl$q_keypress := 1')", f15, "help", "abl$abel_keyboard"); define_key("abl$do('eve_help('''')','')", key_name(f15,shift_key), "help", "abl$abel_keyboard"); ! Page 11 ! EDT Keypad definitions create_key_map("abl$edt_keypad"); define_key("eve_erase_previous_word", lf_key, "erase_previous_word", "abl$edt_keypad"); define_key("abl$do('eve_edt_line','')", kp0, "***", "abl$edt_keypad"); define_key("abl$do('eve_open_line','')", key_name(kp0,shift_key), "***", "abl$edt_keypad"); define_key("abl$do('eve_move_by_word','')", kp1, "move_by_word", "abl$edt_keypad"); define_key("abl$do('eve_edt_change_case','')", key_name(kp1,shift_key), "***", "abl$edt_keypad"); define_key("abl$do('eve_edt_eol','')", kp2, "***", "abl$edt_keypad"); define_key("abl$do('eve_edt_delete_eol','')", key_name(kp2,shift_key), "***", "abl$edt_keypad"); define_key("abl$do('eve_move_by_character','')", kp3, "***", "abl$edt_keypad"); define_key("abl$do('eve_ascii','')", key_name(kp3,shift_key), "***", "abl$edt_keypad"); define_key("abl$do('eve_forward','')", kp4, "change_direction", "abl$edt_keypad"); define_key("abl$do('eve_bottom','')", key_name(kp4,shift_key), "bottom", "abl$edt_keypad"); define_key("abl$do('eve_reverse','')", kp5, "change_direction", "abl$edt_keypad"); define_key("abl$do('eve_top','')", key_name(kp5,shift_key), "top", "abl$edt_keypad"); define_key("abl$do('eve_remove','')", kp6, "remove", "abl$edt_keypad"); define_key("abl$do('eve_insert_here','')", key_name(kp6,shift_key), "insert_here", "abl$edt_keypad"); define_key("abl$do('eve_move_by_page','')", kp7, "***", "abl$edt_keypad"); define_key("abl$do('eve_do('''')','')", key_name(kp7,shift_key), "do", "abl$edt_keypad"); define_key("abl$do('eve_scroll','')", kp8, "scroll", "abl$edt_keypad"); define_key("abl$do('eve_fill_paragraph','')", key_name(kp8,shift_key), "fill_paragraph", "abl$edt_keypad"); define_key("abl$do('eve_remove','abl$q_append := 1')", kp9, "select", "abl$edt_keypad"); define_key("abl$do('eve_substitute('','')','')", key_name(kp9,shift_key), "substitute", "abl$edt_keypad"); define_key("abl$do('eve_help('''')','')", pf2, "help", "abl$edt_keypad"); define_key("abl$do('eve_help('''')','abl$q_keypress := 1')", key_name(pf2,shift_key), "help", "abl$edt_keypad"); define_key("abl$do('eve_search(abl$search_pattern)','')", pf3, "search", "abl$edt_keypad"); define_key("abl$do('eve_search('''')','')", key_name(pf3,shift_key), "search", "abl$edt_keypad"); define_key("abl$do('eve_edt_delete_line','')", pf4, "erase_line", "abl$edt_keypad"); define_key("abl$do('eve_edt_undelete_line','')", key_name(pf4,shift_key), "restore", "abl$edt_keypad"); define_key("abl$do('eve_edt_delete_word','')", minus, "erase_word", "abl$edt_keypad"); define_key("abl$do('eve_edt_undelete_word','')", key_name(minus,shift_key), "restore", "abl$edt_keypad"); define_key("abl$do('eve_erase_character','')", comma, "erase_character", "abl$edt_keypad"); define_key("abl$do('eve_unerase_character','')", key_name(comma,shift_key), "undefine_key", "abl$edt_keypad"); define_key("abl$do('eve_return','')", enter, "undefine_key", "abl$edt_keypad"); define_key("abl$do('eve_return','')", key_name(enter,shift_key), "undefine_key", "abl$edt_keypad"); define_key("abl$do('eve_select','')", period, "select", "abl$edt_keypad"); define_key("abl$do('eve_select','abl$q_reset := 1')", key_name(period,shift_key), "select", "abl$edt_keypad"); !Auxilary keypad define_key("abl$do('eve_search('''')','')", e1, "search", "abl$edt_keypad"); define_key("abl$do('eve_substitute('','')','')", key_name(e1,shift_key), "substitute", "abl$edt_keypad"); define_key("abl$do('eve_insert_here','')", e2, "insert_here", "abl$edt_keypad"); define_key("abl$do('eve_block_insert_here','')", key_name(e2,shift_key), "block_insert_here", "abl$edt_keypad"); define_key("abl$do('eve_remove','')", e3, "remove", "abl$edt_keypad"); define_key("abl$do('eve_block_remove','')", key_name(e3,shift_key), "block_remove", "abl$edt_keypad"); define_key("abl$do('eve_select','')", e4, "select", "abl$edt_keypad"); define_key("abl$do('eve_block_select','')", key_name(e4,shift_key), "block_select", "abl$edt_keypad"); ! Page 12 ! Nuermic Keypad definitions create_key_map("abl$numeric_keypad"); define_key("copy_text('0')", kp0, "typing", "abl$numeric_keypad"); define_key("copy_text('1')", kp1, "typing", "abl$numeric_keypad"); define_key("copy_text('2')", kp2, "typing", "abl$numeric_keypad"); define_key("copy_text('3')", kp3, "typing", "abl$numeric_keypad"); define_key("copy_text('4')", kp4, "typing", "abl$numeric_keypad"); define_key("copy_text('5')", kp5, "typing", "abl$numeric_keypad"); define_key("copy_text('6')", kp6, "typing", "abl$numeric_keypad"); define_key("copy_text('7')", kp7, "typing", "abl$numeric_keypad"); define_key("copy_text('8')", kp8, "typing", "abl$numeric_keypad"); define_key("copy_text('9')", kp9, "typing", "abl$numeric_keypad"); define_key("copy_text('-')", minus, "typing", "abl$numeric_keypad"); define_key("copy_text(',')", comma, "typing", "abl$numeric_keypad"); define_key("copy_text('.')", period, "typing", "abl$numeric_keypad"); define_key("eve_return", enter, "typing", "abl$numeric_keypad"); ! WPS+ Key definitions create_key_map("abl$wps_keyboard"); define_key("abl$do('eve_erase_line','')", pf2, "erase_line", "abl$wps_keyboard"); define_key("abl$do('eve_erase_word','')", pf3, "erase_word", "abl$wps_keyboard"); define_key("abl$do('eve_erase_character','')", pf4, "erase_character", "abl$wps_keyboard"); define_key("abl$do('eve_remove','')", minus, "remove", "abl$wps_keyboard"); define_key("abl$do('eve_insert_here','')", comma, "insert_here", "abl$wps_keyboard"); define_key("abl$do('eve_select','')", period, "select", "abl$wps_keyboard"); define_key("abl$do('eve_return','')", enter, "return", "abl$wps_keyboard"); define_key("abl$do('eve_top','')", key_name(up,shift_key), "top", "abl$wps_keyboard"); define_key("abl$do('eve_bottom','')", key_name(down,shift_key), "bottom", "abl$wps_keyboard"); define_key("abl$do('eve_start_of_line','')", key_name(left,shift_key), "start_of_line", "abl$wps_keyboard"); define_key("abl$do('eve_end_of_line','')", key_name(right,shift_key), "end_of_line", "abl$wps_keyboard"); ! ! Keyboard keys ! define_key("abl$do('eve_bottom','')", key_name("b",shift_key), "bottom", "abl$wps_keyboard"); define_key("abl$do('eve_center_line','')", key_name("c",shift_key), "center_line", "abl$wps_keyboard"); define_key("abl$do('eve_exit','')", key_name("f",shift_key), "exit", "abl$wps_keyboard"); define_key("abl$do('eve_quit','')", key_name("k",shift_key), "quit", "abl$wps_keyboard"); define_key("abl$do('eve_fill_paragraph','')", key_name("p",shift_key), "fill_paragraph", "abl$wps_keyboard"); define_key("abl$do('eve_top','')", key_name("t",shift_key), "top", "abl$wps_keyboard"); define_key("abl$do('eve_find('''')','')", key_name(",",shift_key), "find", "abl$wps_keyboard"); define_key("abl$do('eve_find('''')','')", key_name(".",shift_key), "find", "abl$wps_keyboard"); define_key("abl$do('eve_find('''')','')", key_name("/",shift_key), "find", "abl$wps_keyboard"); define_key("abl$do('eve_replace('''','''')','')", key_name("'",shift_key), "replace", "abl$wps_keyboard"); define_key("abl$do('eve_replace('''','''')','')", key_name(";",shift_key), "replace", "abl$wps_keyboard");