Могу ли я сделать мой курсор в буфере, чтобы вернуться к своей последней позиции? (желательно без необходимости отмечать предыдущую позицию)
Например, Ca прыгает в начало текущей строки, могу ли я вернуться туда, где он был раньше?
Например, когда Cx Cf открывает файл в другом каталоге, я хочу вернуться к предыдущей позиции в имени пути.
Спасибо.
C-x x
пробегатьexchange-point-and-mark
делать? Emacs хранит не все движения курсора, а только те, которым вы специально это сказали. Добавление и добавление меток является одним из способов сохранения истории движения курсора. emacswiki.org/emacs/MarkCommands - вот хорошее обсуждение этой темы.C-x x
является неопределенным.M-x exchange-point-and-mark
: в этом буфере нет отметки.C-x C-x
. Также вам нужно сначала поставить отметку, чтобы это работало. Чтобы установить отметку явно, вы делаетеC-SPC
. Чтобы вернуться к предыдущей отметке, вы делаетеC-u C-SPC
.C-x C-x
.C-x x
это моя собственная привязка.Ответы:
Вот несколько привязок, связанных с отметками, которые могут вам помочь:
C-SPC
- установить отметку и активировать регион (привязан кset-mark-command
)C-SPC C-SPC
- установить отметку (активирует, а затем деактивирует регион)C-x C-x
- связан сexchange-point-and-mark
C-u C-SPC
- перейти к предыдущей отметкеПроверьте документацию Mark для лучшего понимания этой темы.
источник
C-u C-SPC
.counsel-mark-ring
его также можно перечислить все марки и управлять ими с курсорами, получать в режиме реального времени просмотра в буфере.Если вы делаете редактирование в местах, в которых вы приземлились,
goto-last-change
сделаем это за вас. http://www.emacswiki.org/emacs/GotoLastChangeисточник
g ;
Вы можете использовать «Регистры».
Из информационного файла emacs
13.1 Сохранение позиций в регистрах
C-x r <SPC> R' Record the position of point and the current buffer in register R (
точка-регистра ').C-x r j R' Jump to the position and buffer saved in register R (
Скачок к регистру ').Нажатие «
C-x r <SPC>' (
точка-регистр»), за которым следует символ «R», сохраняет положение точки и текущий буфер в регистре R. Регистр сохраняет эту информацию до тех пор, пока вы не сохраните в ней что-то еще.Команда `Cx rj R 'переключается на буфер, записанный в регистре R, и перемещает точку в записанную позицию. Содержимое регистра не изменяется, поэтому вы можете перейти к сохраненной позиции любое количество раз.
Если вы используете
C-x r j' to go to a saved position, but the buffer it was saved from has been killed,
Cx, rj пытается снова создать буфер, посетив тот же файл. Конечно, это работает только для буферов, которые посещали файлы.источник