@ DJMcMayhem ответил на ваш прямой вопрос.Однако это не похоже на Vim, и использование cmap
сложно, поскольку они расширяются в неожиданных местах (например, /<esc>q
).
Создайте команду
Создайте команду, котораясделать это довольно просто.
command! -range=% -nargs=+ TemplateReplace keeppaterns <line1>,<line2>s/<args>/\=@*/gc
Теперь вы можете сделать :TemplateReplace %%ARTICLE_DATE
, и он заменит регистр "*
.
Использование :s
и сопоставлений
Используйте сопоставление, которое создает команду подстановки из текущего шаблона поиска.
nnoremap gS :<c-u>%s//\=@*/gc<cr>
Установите шаблон поиска (например, /%%ARTICLE_DATE
, затем используйте gS
.
или возьмитезарегистрируйте в качестве аргумента:
nnoremap gS :<c-u>%s//\=getreg(v:register)/gc<cr>
Используйте "*gS
для замены текущего шаблона поиска содержимым регистра, в этом случае это будет "*
регистр.
Отображение Visual Star
Используйте отображение визуальная звезда , как показано ниже, чтобы упростить настройку шаблона поиска.
xnoremap * :<c-u>let @/=@"<cr>gvy:let [@/,@"]=[@",@/]<cr>/\V<c-r>=substitute(escape(@/,'/\'),'\n','\\n','g')<cr><cr>``
Теперь вы можете визуально выбрать текст, а затем использовать *
для установкишаблон поиска.
Используйте движение gn
Установите шаблон поиска (eг /%%ARTICLE_DATE
) затем сделать cgn<c-r>*<esc>
.Теперь вы можете использовать n
и .
для замены.
Vimcasts эпизод: Работа с поиском совпадений с использованием gn .
Этот подход также выиграл бы от визуального сопоставления звезд.
Предварительный просмотр замещения с помощью traces.vim
Traces.vim позволит вам предварительно просмотреть замещение во время записи.Это.Вроде как 'incsearch'
, но для :s
.Это не поможет вам напрямую решить вашу текущую проблему, но может помочь дать обратную связь и выявить ошибки в будущем.