Я думаю , что вы хотите , поведение курсора (точки) и видимой области должно быть , как в notepad, gedit, другие современные редакторы: возможность изменять видимую область независимо от положения точки и немедленно вернуть видимую область в положение точки после перемещения точки. Но emacsесть и другая концепция: видимая область всегда следует за точечной позицией и наоборот.
Смотрите также /programming/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), чтобы постоянно удерживать точку в центре видимой области.
C-u C-<SPC>похоже, не работает. Я не знаю, проблема ли этоcua-modeили что-то. Я попытался запустить Emacs с-qопцией, но ничего не изменилось. Есть идеи?