Sau khi đọc bình luận của bạn về trường hợp sử dụng, có vẻ như bạn có thể sử dụng ánh xạ khóa thay vì macro.
Tôi có dòng này trong .vimrc của tôi (không nhớ nơi tôi tìm thấy nó):
nnoremap <Leader>s :%s/\<<C-r><C-w>\>//g<Left><Left>
Nó có tác dụng tương tự như trường hợp sử dụng mà bạn mô tả, đưa bạn vào dòng lệnh để việc duy nhất bạn phải làm là nhập thay thế và nhấn enter, nhưng trong trường hợp này, thay thế tất cả các lần xuất hiện của từ nằm dưới con trỏ của bạn .
Để chỉ thay thế trong khối hiện tại, tôi nghĩ một cái gì đó như sau sẽ hoạt động:
nnoremap <Leader>s m'va{<ESC>``:'<,'>s/\<<C-r><C-w>\>//g<Left><Left>
Tất nhiên, bạn có thể ánh xạ nó tới bất kỳ khóa nào bạn muốn.
Những gì ở trên làm: đánh dấu vị trí hiện tại bằng cách sử dụng điểm đánh dấu chưa đặt tên, chọn trực quan khối hiện tại, để chế độ trực quan và đưa con trỏ về vị trí đã lưu (các dấu chọn hình ảnh vẫn được đặt), nhập chế độ lệnh và nhập lệnh thay thế , chèn từ nằm dưới con trỏ <C-r><C-w>
và định vị con trỏ của bạn để gõ từ thay thế.