ack - привязка фактического имени файла к типу файла

Для меня ack - это необходимый набор (его псевдоним a, и я использую его миллион раз в день). В основном в нем есть все, что мне нужно, поэтому я полагаю, что это поведение скрыто и я просто не могу его найти.

Я бы хотел иметь возможность ограничить его определенными типами файлов, используя тип. проблема в том, что эти файлы имеют полное имя файла, а не расширение. Например, я хотел бы ограничить его сборкой файлов для buildr, чтобы я мог искать их с помощью --buildr (подобное применимо для mvn poms). У меня есть следующее, определенное в моем .ackrc

--type-set=buildr=buildfile,.rake

Проблема в том, что buildfile - это полное имя файла, а не расширение, и я хотел бы, чтобы ack полностью совпадало с этим именем. Однако, если я посмотрю на типы, связанные с 'buildr', это покажет, что .buildfile - это расширение, а не целое имя файла.

--[no]buildr     .buildfile  .rake

Возможность ограничиться определенным именем файла была бы очень полезной для меня, поскольку существует множество вариантов использования xml (например, ant build.xml или mvn pom.xml), для которого это было бы идеально. Я вижу, что бинарные файлы, Makefiles и Rakefiles имеют специальную конфигурацию типов, и, возможно, это правильный путь. Я действительно хотел бы иметь возможность сделать это в ack, если это возможно, прежде чем прибегать к пользовательским функциям. Кто-нибудь знает, возможно ли это?

ack
4 голоса | спросил sgargan 1 MaramThu, 01 Mar 2012 03:38:55 +04002012-03-01T03:38:55+04:0003 2012, 03:38:55

1 ответ


0

Нет, вы не можете это сделать. ack 1.x использует только расширения для определения типов файлов. У ack 2.0 будут гораздо более гибкие возможности, в которых вы сможете выполнять такие вещи, как:


# There are four different ways to match
# is: Match the filename exactly
# ext: Match the extension of the filename exactly
# match: Match the filename against a Perl regular expression
# firstlinematch: Match the first 80 characters of the first line
# of text against a Perl regular expression. This is only for
# the --type-add option.


--type-add=make:ext:mk
--type-add=make:ext:mak
--type-add=make:is:makefile
--type-add=make:is:gnumakefile


# Rakefiles http://rake.rubyforge.org/
--type-add=rake:is:Rakefile

# CMake http://www.cmake.org/
--type-add=cmake:is:CMakeLists.txt
--type-add=cmake:ext:cmake

# Perl http://perl.org/
--type-add=perl:ext:pod
--type-add=perl:ext:pl
--type-add=perl:ext:pm
--type-add=perl:firstlinematch:/perl($|\s)/

Вы можете посмотреть, чем занимается разработка на ack 2.0, по адресу https://github.com/petdance/ack2. Я хотел бы получить вашу помощь.

ответил Andy Lester 1 MaramThu, 01 Mar 2012 10:08:56 +04002012-03-01T10:08:56+04:0010 2012, 10:08:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132