У моєму vimrc є таке:
func! AddSpaceBeforeEqual()
s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge
endfunc
Я використовую vint, щоб обличити свій vimrc, і я отримав таке попередження:
ProhibitCommandWithUnintendedSideEffect Уникайте команд з непередбачуваними побічними ефектами. Уникайте використання: s [ubstitute], оскільки він переміщує курсор і друкує повідомлення про помилки. Кращі функції (наприклад, пошук ()) краще підходять для сценаріїв. Для багатьох команд vim існують функції, які роблять те саме, що має менше побічних ефектів. Див.: Довідкові функції () для переліку вбудованих функцій. Посібник зі стилю Google Vimscript
Однак я не думаю, що вони є способом зробити заміну без використання :s
команди.
Наприклад, search()
функція дає лінії, що відповідають шаблону, але немає можливості зробити підміну. substitute()
Функція працює на шнурку, і не підміняти на весь файл.
Чи повинен я сам реалізувати метод заміни, чи це розумніший спосіб переписати мою функцію?
:help function-search-undo