Ответ 1
Ctrl + O возвращает меня в предыдущее место. Не знаю о местоположении перед поиском.
Изменить: Кроме того, ` . перенесет вас к последнему изменению, которое вы сделали.
Программирование в vim Я часто искал что-то, дергаю его, потом возвращаюсь туда, где был, вставляю его, изменяю.
Проблема в том, что после того, как я ищу и нахожусь, мне нужно ВПЕРВЫЕ найти свой путь обратно туда, где я был.
Есть ли автоматический способ вернуться туда, где я был, когда я начал свой последний поиск?
Ctrl + O возвращает меня в предыдущее место. Не знаю о местоположении перед поиском.
Изменить: Кроме того, ` . перенесет вас к последнему изменению, которое вы сделали.
Используйте ``
, чтобы вернуться к точной позиции, в которой вы были, перед тем, как искать/прыгнуть, или ''
, чтобы вернуться к началу строки, в которой вы были, до того, как вы обыскали/прыгнули.
Я всегда делал это, устанавливая отметку.
В командном режиме нажмите m [буква]. Например, m a устанавливает метку в текущей строке, используя a в качестве идентификатора метки.
Чтобы вернуться к отметке, нажмите ' [буква]. Например, ' a возвращает вас к метке линии, установленной на шаге 1. Чтобы вернуться к позиции столбца строки, в которой вы отметили линию, используйте ' a (back- отметьте [буква]).
Чтобы увидеть все метки, которые установлены в данный момент, введите :marks
.
На немного не связанной ноте я обнаружил еще одну изящную вещь о марках.
Допустим, вы переходите к отметке b, выполняя m b. Vim автоматически устанавливает метку ' (это одинарная кавычка), чтобы она соответствовала той строке, на которой ты находился до перехода к отметке b.
Это означает, что вы можете сделать ' b, чтобы перейти к этой отметке, а затем '' (2 одинарных кавычки), чтобы вернуться туда, где вы были раньше.
Я обнаружил это случайно, используя команду :marks
, которая показывает список всех меток.
Вы действительно должны прочитать :help jumplist
, это объясняет все это очень хорошо.
CTRL+O и CTRL+I, для перехода назад и вперед.
Самый простой способ - установить знак с помощью m[letter]
, а затем вернуться к нему с помощью '[letter]
Я использую этот:
nnoremap / ms/
nnoremap ? ms?
Затем, если я что-то ищу, используя /
или ?
, я могу быстро вернуться к `s
. Вы можете заменить букву s
на любое письмо, которое вам нравится.