Учитывая документ, содержащий
STUFF
output = double('output').as_null_object
game = Game.new(output)
OTHER STUFF
output = double('output').as_null_object
game = Game.new(output)
CLOSING STUFF
Когда я делаю :%s/output\_.\{-}output)/<START>\0<MIDDLE>\0<END>/
, я получаю документ, содержащий
STUFF
<START>output = double('output').as_null_object
game = Game.new(output)<MIDDLE>output = double('output').as_null_object
game = Game.new(output)<END>
OTHER STUFF
<START>output = double('output').as_null_object
game = Game.new(output)<MIDDLE>output = double('output').as_null_object
game = Game.new(output)<END>
CLOSING STUFF
Однако, если вместо этого я наведу курсор на первый output
, тогда сделайте c/output\_.\{-}output)
,
Я нахожусь в режиме вставки со всем, пока output)
не удален.
Причина этого в том, что c/
удаляет все до следующего совпадения , но, как вы подозреваете, не удаляет следующее совпадение. c/
использует регулярное выражение в качестве начального местоположения, а не продолжительности.
В этом случае следующим совпадением будет output)...OTHER STUFF...output=...output)
.