#vim #command #substitution
#vim #команда #подстановка
Вопрос:
Какой хороший способ автоматизировать команды замены в vim?
Предположим, у меня есть что-то вроде:
s/foo/bar/g
за исключением гораздо более сложного, и я хочу запустить его в выбранных диапазонах без
необходимости вводить команду замены?
Как я могу сохранить команду замены и дать ей короткое удобное имя, по которому я могу ее вызвать?
Комментарии:
1. Вы также можете изучить автоматические команды
Ответ №1:
Вы можете создать функцию с поддерживаемым диапазоном и в функции выполнить подстановку. Также создайте пользовательскую команду для вызова функции с диапазоном.
Однако, я думаю, самый простой способ — создать abbrev
в вашем файле vimrc:
cab RR s/foo/bar/g
таким образом, когда вы выбрали строки или в командной строке указали диапазоны (например 3,5 or % ...
), которые вы нажимаете RR<space>
s/foo/bar/g
, они будут заполнены автоматически. Вы можете выполнить некоторые настройки или просто нажать enter, чтобы отпустить его.
Ответ №2:
Вы можете попробовать сопоставить приведенное ниже нажатие клавиши пробела дважды на определенном слове автоматически заполнит команду замены словом под курсором и дождется ввода имени замены
" super quick search and replace
nnoremap <Space><Space> :'{,'}s/<<C-r>=expand('<cword>')<CR>>/
nnoremap <Space>% :%s/<<C-r>=expand('<cword>')<CR>>/
в вашем случае просто наведите курсор на слово foo и дважды нажмите пробел.
Вы должны увидеть
:'{,'}s/<foo>/
Затем введите слово bar
'{,'}s/<foo>/bar
все вхождения foo будут заменены на bar