В vim, как мне вернуться туда, где я был до поиска?

Программирование в vim Я часто искал что-то, дергаю его, потом возвращаюсь туда, где был, вставляю его, изменяю.

Проблема в том, что после того, как я ищу и нахожусь, мне нужно ВПЕРВЫЕ найти свой путь обратно туда, где я был.

Есть ли автоматический способ вернуться туда, где я был, когда я начал свой последний поиск?

Ответ 1

Ctrl + O возвращает меня в предыдущее место. Не знаю о местоположении перед поиском.

Изменить: Кроме того, ` . перенесет вас к последнему изменению, которое вы сделали.

Ответ 2

Используйте ``, чтобы вернуться к точной позиции, в которой вы были, перед тем, как искать/прыгнуть, или '', чтобы вернуться к началу строки, в которой вы были, до того, как вы обыскали/прыгнули.

Ответ 3

Я всегда делал это, устанавливая отметку.

  1. В командном режиме нажмите m [буква]. Например, m a устанавливает метку в текущей строке, используя a в качестве идентификатора метки.

  2. Чтобы вернуться к отметке, нажмите ' [буква]. Например, ' a возвращает вас к метке линии, установленной на шаге 1. Чтобы вернуться к позиции столбца строки, в которой вы отметили линию, используйте ' a (back- отметьте [буква]).

Чтобы увидеть все метки, которые установлены в данный момент, введите :marks.


На немного не связанной ноте я обнаружил еще одну изящную вещь о марках.

Допустим, вы переходите к отметке b, выполняя m b. Vim автоматически устанавливает метку ' (это одинарная кавычка), чтобы она соответствовала той строке, на которой ты находился до перехода к отметке b.

Это означает, что вы можете сделать ' b, чтобы перейти к этой отметке, а затем '' (2 одинарных кавычки), чтобы вернуться туда, где вы были раньше.

Я обнаружил это случайно, используя команду :marks, которая показывает список всех меток.

Ответ 4

Вы действительно должны прочитать :help jumplist, это объясняет все это очень хорошо.

Ответ 5

CTRL+O и CTRL+I, для перехода назад и вперед.

Ответ 6

Самый простой способ - установить знак с помощью m[letter], а затем вернуться к нему с помощью '[letter]

Ответ 7

Я использую этот:

nnoremap / ms/
nnoremap ? ms?

Затем, если я что-то ищу, используя / или ?, я могу быстро вернуться к `s. Вы можете заменить букву s на любое письмо, которое вам нравится.