Начиная использовать vim в качестве макроса, есть ли команда f, но вместо того, чтобы ловить один символ, я хочу поймать несколько символов? Хотя я знаю, что могу использовать /, я не видел, что могу повторить его с ;, чтобы доставить меня к следующей цели только с f

vim
1
Jas 5 Фев 2020 в 11:42

3 ответа

Лучший ответ

Вы можете перейти к следующей цели с помощью n и к предыдущей с помощью N при использовании /.

6
rubystallion 5 Фев 2020 в 08:47

Если ваша проблема в том, что / является интерактивным (имеется в виду: вы должны что-то печатать), и вы хотите использовать это в макросе с фиксированным значением, тогда вы все равно можете это сделать.

Например, если вы делаете:

:map g /something^M

Затем вы нажмете g, он будет искать строку something.

Помните, что ^M является комбинацией клавиш Ctrl + V , за которыми следует Ctrl + M

Как примечание стороны, то же самое происходит, когда вы хотите ввести текст и вернуться в обычный режим:

:map g 0i--^[j

Если вы нажмете g, он вставит -- в начало строки и опустится на одну строку вниз.

Здесь ^[ - это Ctrl + V , за которым следует Esc

1
ChatterOne 5 Фев 2020 в 13:40

Наведите курсор на слово и нажмите:

  • gd - перейти к первому
  • # - перейти к предыдущему
  • * - перейти к следующему

А затем n или N, чтобы повторить.

4
d0niek 5 Фев 2020 в 09:02