Если символ разделителя (/ в вашем случае) между {pattern} и {string} содержится в одном из них, он должен быть экранирован с помощью \. Трюк, чтобы избежать этого - использовать другой разделительный символ, например. #:
PS: Если он должен делать то, что, я думаю, должен делать, ваш шаблон неправильный; см. мою коррекцию.
Ответ 2
У меня была эта проблема, и я не мог ее уйти, пока не узнал, что в файле .vimrc у меня были части, которые я скопировал из другого источника, где были аббревиатуры, например, например:
abbrev gc !php artisan generate:controller
Эта аббревиатура испортит мой поиск и заменит команды, которые обычно выглядят следующим образом:
:%s/foo/bar/gc
расширив gc на !php artisan generate:controller, за исключением того, что он не будет делать это на месте/в реальном времени. Способ, которым я был связан, - это просмотреть историю команд (нажав : и стрелку вверх) и увидеть
:%s/foo/bar/!php artisan generate:controller
Итак, если у вас заканчиваются персональные ошибки, независимо от того, что вы делаете, я бы заглянул внутрь
~/.vimrc
и посмотрите, можете ли вы найти там проблему.
Ответ 3
:%s/\/apps/log_dir/g
где строка для замены =/apps
и заменил строку = log_dir
как мы видели /, нам нужно использовать "\/"