Может быть принужден к поиску сложного проекта

ack - это отличный инструмент для поиска, особенно если все, что вы хотите найти, находится во вложенных каталогах под верхним каталогом проекта.

Я хотел бы найти несколько различных каталогов, чтобы найти весь мой проект.

Я мог бы сделать что-то вроде этого (есть еще 5 или 6 каталогов, которые я бы включил):

ack sometext . ../../Libraries/CMSIS/Device/ST/STM32F4xx/ ../../Libraries/CMSIS/

Я также попытался сделать это через make-файл, где я бы сделал ack фиктивной целью, вызвав ack в каталогах, о которых знает Makefile. Это работает, но синтаксис для его вызова неудачен:

gmake ack SVAL=sometext

где в Makefile:

ack:
    $(ACK) $(SVAL) $(LIB_DIRS) $(DEVICE_DIRS) $(OTHER_PROJECT_DIRS)

В идеале было бы что-то, что я мог бы встроить в.ackrc, чтобы определить каталоги, которые проверяет поиск. У кого-нибудь есть любимый способ использовать ack для поиска в сложной структуре каталогов проекта?

2 ответа

Решение

Поскольку ack может делать то, что я хочу, с помощью сложной командной строки. Мой лучший ответ на сегодняшний день - встроить его в скрипт bash, поэтому я бы набрал:

./pack foobar

Чтобы найти весь мой проект для foobar.

Пакет скриптов будет выглядеть так:

#!/bin/bash
CONTEXT=-C1
c:/bin/ack $CONTEXT $* . ../../Libraries/CMSIS/Device/ST/STM32F4xx/ \
../../Libraries/CMSIS/

Еще предпочел бы решение.ackrc.

Sack: обертка для grep, ack и / или ag (серебряный искатель) http://sampsonchen.com/sack/

Может переключать вашу "среду поиска", используя предустановленные профили, настраивая флаги CL и заданную целевую (MULTIPLE) директорию начальной точки верхнего уровня

Другие вопросы по тегам