method connect_cursor_moved view_id cb =
self#remove_cursor_moved view_id;
let sid = buffer#connect#mark_set
(fun it _ -> if it#equal (buffer#get_iter `INSERT) then cb ())
in
cursor_moved_signal_ids <- (view_id, sid) :: cursor_moved_signal_ids