Vim: Подсчёт вхождений

Источник: «Count Occurrences»
Вы знаете быстрый способ подсчитать количество совпадений в тексте с шаблоном при помощи простого трюка Vim?

Одной из наиболее часто используемых команд в Vim является команда замены :s. Часто применяется ко всему файлу в виде :%s/совпадение/замена/g. После завершающего слэша вы можете применять флаги изменяющие поведение совпадения. В этом случае завершающий флаг g указывает, что весь диапазон адресов % (что означает все строки) должен быть включён в замену (глобально). Вы также можете в Визуальном режиме выбрать диапазон строк и заменить их в этом выделении.

Но что, если вы на самом деле не хотите производить замену, а просто подсчитать количество совпадений с заданным образцом? В Vim есть удобны флаг шаблона замены n, который может выполнять поиск, но игнорировать замену. Флаг используется следующим образом:

:%s/some_pattern//n

… вернёт количество совпадений и количество строк, на которых эти совпадения встречаются, без какой-либо замены:

12 occurrences on 9 lines

или

12 совпадений на 9 строках

Для этого есть множество применений. Возможно, вы пишете прозу в Vim и хотите убедиться, что не повторяете одно и то же слово слишком много раз.

Один из моих недавних случаев использования связан с попыткой решить, какой стиль именования столбца базы данных использовать. Я просто проверил файл схемы базы данных на наличие нескольких шаблонов соглашений об именах. Одно встретилось 60 раз, а другое — 3 раза, естественно, я назвал столбец с наиболее часто используемым соглашением.

Дополнительные материалы

Предыдущая Статья

Шпаргалка по Git

Следующая Статья

Работа со сторонними сервисами в Laravel