Я думаю, что вы хотите, чтобы поведение курсора (точки) и видимой области было таким же, как в notepad
, gedit
и других современных редакторах: возможность изменять видимую область независимо от положения точки и немедленно возвращать видимую область в положение точки после перемещения точки. Но emacs
имеет другую концепцию: видимая область всегда следует за точкой и наоборот.
Смотрите также https://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs
Предыдущий ответ показывает особую идиому: если вы хотите переместить видимую область (вместе с точкой) далеко от текущей позиции, а затем вернуть точку точно в предыдущую позицию, у вас должна быть привычка использовать mark-ring
. Всегда есть путь через mark ring
к текущей рабочей позиции: многие команды, такие как isearch-forward
, beginning-of-buffer
, ace-jump-mode
автоматически сохраняют предыдущую позицию в mark ring
и вы не должны использовать C-<SPC> C-<SPC>
раньше, но только C-u C-<SPC>
для прыжка назад. Команды прокрутки, такие как scroll-up
или mwheel-scroll
, не сохраняют предыдущую позицию автоматически по умолчанию, поскольку она может производить слишком много избыточных меток.
Вы можете использовать команды clone-indirect-buffer
или view-buffer-other-window
для самостоятельной работы с буфером в нескольких местах. И используйте команду recenter-top-bottom
(C-l
), чтобы непрерывно удерживать точку в центре видимой области.