Проверьте это:
s/<a href\(\_[^>]*\)>/<a href\L\1>/
Это говорит: соответствует <a href
, за которым следует ноль или более символов, кроме >
, включая символы новой строки (обозначенные \_
), и, наконец, >
. Замените его на <a href
, захваченный текст преобразуется в нижний регистр (обозначенный \L
), а завершающий >
.
Очевидно, что вы один, если внутри вашего тега есть >
, но такова жизнь.
(И в случае, если неясно, вы будете использовать это как :%s/.../...
или :<range>s/.../.../
для небольшого диапазона .)
Чтобы использовать это для нескольких файлов, вы будете использовать windo
, bufdo
или tabdo
(в зависимости от того, открыты ли файлы как вкладки, окна или просто как буферы). Там много документации:
В общем, это будет выглядеть примерно так:
:tabdo <range>s/.../.../
:windo <range>s/.../.../
:bufdo <range>s/.../.../ | w
Я добавил команду записи в версию bufdo, потому что она не может перейти к следующему буферу без сохранения текущего. Вы могли бы сделать это и для других, если вы хотите написать немедленно, но они будут работать без. Вы должны открыть все файлы - самый простой способ - просто vim <lots of files>
получить их как буферы или vim -o <lots of files>
получить их как окна (используйте -O
для разделения по вертикали, а не по горизонтали).