!+ ! EVE_VMS_LINE_EDITING.TPU !- ! ! This is a set of definitions for defining and removing VMS line editing ! keys for EVEPlus. procedure eve_set_vms_line_editing ! Define VMS line editing keys vle$x_keypadset := 1; set(informational,off); eveplus_key("eve_change_mode",ctrl_a_key, "change_mode (Toggle insert/overstrike)","vle_ctrl_a_key"); eveplus_key("vle_move_left",ctrl_d_key,"move_left","vle_ctrl_d_key"); eveplus_key("vle_move_right",ctrl_f_key,"move_right","vle_ctrl_f_key"); if expand_name('eve_set_edt_keypad',procedures) = eve$x_null then eveplus_key("eve_start_of_line",ctrl_h_key, "EDT BACKSPACE (start_of_line)","vle_ctrl_h_key"); eveplus_key("eve_start_of_line",bs_key,"EDT BACKSPACE (start_of_line)", "vle_bs_key"); eveplus_key("eve_start_of_line",f12,"EDT BACKSPACE (start_of_line)", "vle_f12_key"); ! ! NOTE: The ctrl_x_key definitions will never get executed, they're just ! here to define a comment for dynamic help. The ctrl_x is NEVER ! passed to TPU, EVE, or EVEPlus. Rather, the VMS Terminal Driver ! will flush the type-ahead buffer, and pass a CTRL_U to the process ! upon receipt of a CTRL_X. ! eveplus_key("eve_erase_start_of_line",ctrl_x_key, "EDT CTRL_U (delete_to_beginning_of_line)","vle_ctrl_x_key"); eveplus_key("eve_erase_start_of_line",ctrl_u_key, "EDT CTRL_U (delete_to_beginning_of_line)","vle_ctrl_u_key"); eveplus_key("eve_erase_previous_word",ctrl_j_key, "EDT CTRL_J (erase prev word)","vle_ctrl_j_key"); eveplus_key("eve_erase_previous_word",f13, "EDT LINEFEED (erase_previous_word)","vle_f13_key"); else eveplus_key("eee_backspace",ctrl_h_key,"EDT BACKSPACE (start_of_line)", "vle_ctrl_h_key"); eveplus_key("eee_backspace",bs_key,"EDT BACKSPACE (start_of_line)", "vle_bs_key"); eveplus_key("eee_backspace",f12,"EDT BACKSPACE (start_of_line)", "vle_f12_key"); eveplus_key("eee_delete_beg_line",ctrl_x_key, "EDT CTRL_U (delete_to_beginning_of_line)","vle_ctrl_x_key"); eveplus_key("eee_delete_beg_line",ctrl_u_key, "EDT CTRL_U (delete_to_beginning_of_line)","vle_ctrl_u_key"); eveplus_key("eee_del_beg_word",ctrl_j_key,"EDT ctrl_j (erase_previous_word)", "vle_ctrl_j_key"); eveplus_key("eee_del_beg_word",f13,"EDT LINEFEED (erase_previous_word)", "vle_f13_key"); endif; set(informational,on); message(". . . Done!"); endprocedure procedure eve_set_novms_line_editing ! Remove VMS line editing keys if vle$x_keypadset = 1 then vle$x_keypadset := 0; message("Removing VMS Line Editing Keys . . ."); set(informational,off); eveplus_restore_key("vle_ctrl_a_key"); eveplus_restore_key("vle_ctrl_d_key"); eveplus_restore_key("vle_ctrl_f_key"); eveplus_restore_key("vle_ctrl_h_key"); eveplus_restore_key("vle_bs_key"); eveplus_restore_key("vle_f12_key"); eveplus_restore_key("vle_ctrl_x_key"); eveplus_restore_key("vle_ctrl_u_key"); eveplus_restore_key("vle_ctrl_j_key"); eveplus_restore_key("vle_f13_key"); set(informational,on); message(". . . Done!"); else message("Can't remove key definitions - no older definitions available."); endif; endprocedure procedure vle_move_left ! Move left (ctrl_d) if (current_window = eve$command_window) and (current_column <= (eve$x_command_prompt_length + 1)) then return; else eve_move_left; endif; endprocedure procedure vle_move_right ! Move right (ctrl_f) if (current_character = eve$x_null) or (mark(none) = end_of(current_buffer)) then return; else eve_move_right; endif; endprocedure ! Note: ! ! If you wish to have the VMS Line Editing keys enabled as the default, ! uncomment the procedure call below. ! eve_set_vms_line_editing; ! Define VMS line editing keys for Eve/Evg