Возьми любой opensource редактор (чем меньше функционала - тем лучше) и посмотри как сделано там. Кмк самый эффективный вариант разобраться и сделать. Чем создавать темки с вопросами с надеждой, что кто-то даст кусок готово решения. Мало что подчеркнешь, да и времени потратишь гораздо больше.
Так же как не во вью. Content editable это по сути текстовый инпут, содержимое которого меняется пользователем. То есть его разметка не реактивна.
Ну а дальше идём на learn javascript ru и читаем про то как работать с выделением в документе.