method transpose_chars =
let b = file#buffer in
let insert = b#get_iter `INSERT in
if insert#is_end or insert#is_start then
()
else
let stop = insert#backward_char in
let c = b#get_text ~start: insert ~stop () in
b#begin_user_action ();
b#delete ~start: insert ~stop;
let iter = insert#forward_char in
b#insert ~iter c;
self#place_cursor iter;
b#end_user_action ()