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