После выпуска scroll-up
или scroll-down
в emacs, есть ли быстрый способ вернуть точку в предыдущую позицию (если я не помню, чтобы добавить ее в кольцо меток)?
В качестве альтернативы есть ли способ (не мешая кольцу меток) изменить поведение прокрутки, чтобы прокрутка вверх, а затем прокрутка вниз (или наоборот) вернула точку в исходное положение? (например, заставить прокрутку перемещать точку ровно на x строк, где x - высота экрана)
Я нахожусь в процессе привыкания к emacs, и это одна из самых распространенных провоцирующих проклятие ситуаций: я прокручиваю, чтобы просмотреть другую часть своего кода, не забывая добавить свою строку в кольцо меток, и тогда мне больно пытаться переместить строку кода, над которой я работал. Поэтому, когда я прошу о техническом решении, мне также было бы интересно услышать, как опытные пользователи избегают этой проблемы. Вы просто привыкли помнить, чтобы установить метку, разбить окно, чтобы осмотреться, или использовать какой-то другой шаблон?
Благодарность
scroll-up-line
(то, что я использую с моим колесом прокрутки), чтобы заставить курсор двигаться вперед на один символ, когда он достигает верхней или нижней части экрана.(setq scroll-preserve-screen-position 'always)
. В противном случае,C-v M-v
не возвращает точку туда, откуда вы начали (вторая позиция точки видна на первом экране, поэтому точка не перемещается назад.)То, что я нашел, чтобы работать хорошо, использует
goto-last-change.el
, что возвращает вас обратно в место, где вы в последний раз сделали редактирование. Мне нравится привязка:источник
C-_ C-f C-_
(отменить, переместить, отменить).В ответ на ваш вопрос о том, как избежать проблемы, которую вы описываете (глядя в другом месте кода, а затем возвращаясь к той точке, где я работал) ...
Как правило, я делю экран, когда мне нужно кратко посмотреть в другом месте. Затем я могу вернуться к исходному экрану с помощью
C-x o
кнопки, отключитьC-x 1
и вернуться к нормальной работе.Я также использую прямой и обратный i-search, чтобы найти конкретную точку интереса в коде. Я считаю, что это довольно эффективный способ навигации по коду, когда я знаю, что я ищу.
источник
Если я прокручиваю только несколько строк от того места, где я сейчас нахожусь, я могу использовать это для прокрутки окна без перемещения точки:
Если я перехожу к совершенно другому разделу файла (или к другому файлу в целом), я иногда использую,
breadcrumb
хотя есть много других пакетов, которые делают подобные вещи.Если мне нужно визуально увидеть две области кода одновременно, я разделю фрейм по горизонтали на два окна, а затем откажусь от второго окна, когда я закончу.
В основном, однако, я просто использую два фрейма, один из которых является моим текущим рабочим фреймом, а другой - моим опорным фреймом, используемым для перемещения по тем же или другим файлам.
источник
C-l
.