Я всегда использовал [[, чтобы перейти к началу функции, а затем использовать%, чтобы перейти к концу функции.Я использовал mt и mb , чтобы отметить верхнюю и нижнюю части функции соответственно.Затем для поиска и замены в отмеченных сверху и снизу : 't,' bs / pattern / newpattern / g .Это всегда работало для меня.Я уверен, что вы можете создать макрос для этого.
Визуальный выбор (vi}) намного проще и быстрее.Он знает о позиции курсора.Таким образом, если курсор находится внутри субблока функции, то vi} выбирает все строки в этом блоке.Если вы хотите выбрать всю функцию, нужно поместить курсор за пределы субблоков, затем выполните vi}.Это отлично подходит для функциональных блоков, которые вписываются в текущее окно.Для функций, выходящих за пределы текущего окна, выбор теряется при прокрутке вверх.
Мне действительно нравится визуальный выбор vi}, потому что он намного проще и быстрее, но мне приходится иногда прибегать к методу старой школы.