У меня есть это в моем vimrc:
function! GetVisual() range
let reg_save = getreg('"')
let regtype_save = getregtype('"')
let cb_save = &clipboard
set clipboard&
normal! ""gvy
let selection = getreg('"')
call setreg('"', reg_save, regtype_save)
let &clipboard = cb_save
return selection
endfunction
vmap <leader>z :%s/<c-r>=GetVisual()<cr>/
Это захватит визуальный выбор и начнет с ним команду подстановки.
РЕДАКТИРОВАТЬ: я должен отметить, что это не работает с многострочным визуальным выбором. Хотя у GetVisual () нет проблем с его возвратом, я не уверен, как правильно поместить его в командную строку. Если у кого-нибудь есть какие-либо советы о том, как я могу это сделать, пожалуйста, прокомментируйте.