Here are some basic methods to navigate in the manner that you describe. You can increase the scope of the position variable or even save it as a user setting so that the editor can resume to the position when the user restarts the program.
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
Point curPos = Cursor.Position;
textBox1.Text = richTextBox1.GetCharIndexFromPosition(curPos).ToString();
}
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.SelectionStart = int.Parse(textBox1.Text) - 1;
richTextBox1.SelectionLength = 0;
richTextBox1.ScrollToCaret();
richTextBox1.Focus();
}
Good luck.