Чи може курсор повернутися до попереднього положення?


24

Чи можу я змусити курсор у буфері перейти до останнього положення? (бажано без позначення попередньої позиції)

Наприклад, Ca стрибає на початок поточного рядка, чи можу я відскочити туди, де було раніше?

Наприклад, коли Cx Cf відкриває файл в іншому каталозі, я хочу повернутися до попередньої позиції в імені шляху.

Спасибі.


Чи будуть робити C-x xякі прогони exchange-point-and-mark? Emacs не зберігає всі рухи курсору, лише ті, які ви їм спеціально сказали. Додавання та розміщення позначок - це один із способів зберігання історії руху курсору. emacswiki.org/emacs/MarkCommands - ось хороше обговорення теми.
wvxvw

1
C-x xне визначено. M-x exchange-point-and-mark: в цьому буфері немає позначки.
Тім

@Tim Це так C-x C-x. Також потрібно спочатку встановити позначку, щоб це працювало. Щоб чітко встановити позначку, зробіть це C-SPC. Щоб повернутися до попередньої позначки, ви робите C-u C-SPC.
Каушал Моді

Так, так, вибачте, так було C-x C-x. C-x xце моя власна в’язка.
wvxvw

1
Не впевнений, чи це дублікат, але emacs.stackexchange.com/q/3421/454 може бути корисним.
філ

Відповіді:


30

Ось декілька пов’язаних між собою позначок, які можуть вам допомогти:

  • C-SPC- встановити позначку та активувати область (прив’язана до set-mark-command)
  • C-SPC C-SPC - встановити позначку (активує, а потім деактивує область)
  • C-x C-x - пов'язаний з exchange-point-and-mark
  • C-u C-SPC - перейти до попередньої позначки

Перегляньте документацію Марк для кращого розуміння цієї теми.


9
Зауважте, що команди, здатні перемістити курсор на деяку довільну (але потенційно велику) відстань від місця, де ви були (як правило), спочатку автоматично натискають на позначку. Таким чином, ви можете часто повертатися туди, де ви були раніше, з одним C-u C-SPC.
філ

Завдяки counsel-mark-ringцьому можна також перелічити всі позначки та переміщатися по них курсорами, отримуючи попередній перегляд у реальному часі в буфері.
Аріальдо Мартіні


1

Ви можете використовувати `регістри '.

З інформаційного файлу 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 'намагається знову створити буфер, відвідавши той самий файл. Звичайно, це працює лише для буферів, які відвідували файли.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.