method delete_char forward =
      let b = file#buffer in
      let start = b#get_iter `INSERT in
      let stop =
        if forward then start#forward_char else start#backward_char
      in
      if start#equal stop then
        ()
      else
        (
         b#begin_user_action ();
         b#delete ~start ~stop;
         b#end_user_action ()
        )