Я хочу улучшить свой рабочий процесс, имея сохраненный поиск, который я могу либо просто открыть, либо автоматически обновить. Для моего текущего конкретного использования (может измениться в будущем), он будет искать содержимое файлов для любого текста, соответствующего регулярному выражению /\/\/\s*((TODO)|(FIXME)):/ , так что я могу найти любые комментарии, которые я или коллега сделал в надежде вернуться к коду позже. Есть ли способ сохранить поиск, который будет легко / автоматически выполнен?

Будет работать все, к чему легко получить доступ (предварительно сохраненный поиск в Xcode, который я могу щелкнуть, чтобы выполнить, виджет боковой панели Yosemite, содержащий первые n результатов, терминальная программа с низким уровнем взаимодействия, которую я могу оставить открытой на своем втором монитор и т. д.). Я знаю, что в Finder могут быть смарт-папки и тому подобное, но тогда мне придется просеивать файлы, открывая каждый в отдельности, чтобы выяснить, какой код мне нужен. Меня действительно интересует только найденный текст и остальная часть строки, а не файл, в котором он находится. Было бы еще лучше, если бы я мог получать оповещения, когда был найден новый результат.

1 ответ1

1

Возможно, эта короткая терминальная команда поможет:

while true; do clear; egrep -rhn 'TODO|FIXME' .; sleep 5; done

Для пояснения, цикл while будет перезапускать заданные команды и затем sleep течение 5 секунд, а clear обновляет экран перед повторным выполнением. egrep выполняет поиск в предоставленном RegEx через файлы -r рекурсивно в . текущий каталог, -h удаляет заголовки имен файлов из выходных данных (просто удалите h, если хотите), и -n добавляет соответствующие номера строк.

Вы должны иметь возможность заменить предоставленную мною строку своим собственным RegEx, а также заменить . с любым каталогом, в котором вы хотели бы искать.

В качестве альтернативы, если у вас установлен Brew, вы можете использовать brew install watch и вместо этого запустить эту команду:

watch -x egrep -rhn 'TODO|FIXME' .

Команда watch повторно -x выполняет данную команду с интервалом по умолчанию.

Похоже, что часы покажут вам только высоту матчей одного терминала, к сожалению. В этом случае лучше всего запустить egrep самостоятельно. Watch и egrep имеют много опций, которые могут помочь вам в дальнейшей настройке этого, и, возможно, сделать из него полноценный скрипт. Более подробную информацию об этом можно найти на страницах man (например, man watch).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .