Vim заменить все без перемещения курсора

В Vim, когда я делаю:

<code>:%s/foo/bar/g
</code>

Он заменит все вхождения «foo» с "баром" во всем документе. Когда он завершается, курсор перемещается в последнюю позицию, где «foo»; был заменен на "бар".

Как ты бегаешь:%s/foo/bar/g без курсора, покидающего исходную позицию перед выдачей этой команды?

Есть ли какая-нибудь опция, которую я могу установить в.vimrc файл?

Ответы на вопрос(2)

Когда:substitute команда выполняется, прежде чем фактические замены сделаны, Положение курсора сохраняется в списке переходов. Для того, чтобы вернуться к положение перед последним прыжком, можно использовать`` или же'' Нормальный режим команды. В то время как первый прыгает точно в сохраненную позицию, последний перемещает курсор на первый непустой символ в строке, где это позиция находится.

Итак, чтобы быстро вернуть курсор в исходное положение, наберите `` после завершения команды подстановки.

Чтобы объединить замену и перемещение курсора в одну команду, введите

:%s/pat/str/g|norm!``

или, если этого достаточно, чтобы перейти не к точному положению, а только к его линии,

:%s/pat/str/g|''

Как показано выше,'' может быть использован в предпочтенииnorm!'' во-вторых команда из-за синтаксиса диапазона команд Ex (см.:help :range).

Ctrl+O после замены, чтобы вернуться на прежнее место.

ВАШ ОТВЕТ НА ВОПРОС