Po przeczytaniu komentarza dotyczącego przypadku użycia wygląda na to, że można użyć mapowania klucza zamiast makra.
Mam ten wiersz w moim .vimrc (nie pamiętam, gdzie go znalazłem):
nnoremap <Leader>s :%s/\<<C-r><C-w>\>//g<Left><Left>
Ma podobny efekt do opisanego przypadku użycia, umieszczając cię w wierszu polecenia, więc jedyne, co musisz zrobić, to wpisać zamianę i nacisnąć Enter, ale w tym przypadku zastępuje wszystkie wystąpienia słowa pod kursorem .
Aby po prostu zastąpić w bieżącym bloku, myślę, że powinno działać coś takiego:
nnoremap <Leader>s m'va{<ESC>``:'<,'>s/\<<C-r><C-w>\>//g<Left><Left>
Oczywiście możesz przypisać go do dowolnego klucza, jaki chcesz.
Co robi powyższe: zaznacz bieżącą pozycję za pomocą nienazwanego znacznika, wizualnie wybierz bieżący blok, wyjdź z trybu wizualnego i przywróć kursor do zapisanej pozycji (wizualne znaczniki wyboru są nadal ustawione), wejdź w tryb polecenia i wpisz polecenie zastępcze , wstawiając słowo pod kursorem <C-r><C-w>
i ustawiając kursor, aby wpisać zamianę.