Ajout de type de fichier à ACK en permanence

16

J'ai récemment appris à laisser ack prendre en charge plus de types de fichiers (en ajoutant ce qui suit à .ackrc):

--type-add
latte=.latte

Malheureusement, cela produit une ligne d'information sur chaque recherche d'ack que j'utilise, même celles avec 0 résultats.

$ ack --latte dump
ack: --type-add: Type "latte" does not exist, creating with ".latte" ...

Existe-t-il un moyen d'en faire un ajout plus permanent? (c.-à-d. débarrassez-vous de cette ligne d'informations). Cela me semble ajouter ce nouveau type à chaque appel. Est-ce un problème avec mon installation d'ack?

Je suis sur Mac OS X 10.5.8 avec ack 1.92 (fonctionnant sous Perl 5.10.1)

Martin Tóth
la source
Concernant 10.6-> 10.5.8: Je n'ai vraiment aucune idée pourquoi j'ai écrit 10.6, j'ai toujours eu 10.5.8 ... Et quand je l'ai réalisé, je l'ai changé ...
Martin Tóth
1
Historique de révision étrange: @Mehper a commencé à éditer dans le délai de grâce de 5 minutes, puis (après que Mehper a commencé , mais avant qu'il ne sauvegarde ), Martin a changé "10.6" en "10.5.8". Ensuite, la modification a été annulée lorsque Mehper a enregistré les modifications dans le texte (alors) plus ancien - qui pour l'historique était toujours la même révision en raison de la période de grâce, répertoriant ainsi Mehper comme changeant de version. Si cela vous dérange, envisagez de voter pour Après l'enregistrement, alertez quand le message a été enregistré par quelqu'un d'autre .
Arjan
+1 J'utilisais --type-set suivant la documentation mais je ne savais pas que les types devraient être dans une nouvelle ligne
Marcelo Diniz

Réponses:

18

Il me semble que la documentation affirme que vous avez --type-setplutôt besoin :

--type-set
latte=.latte

Alors que --type-addc'est pour, c'est moi qui souligne:

Les fichiers avec les EXTENSIONS données sont reconnus comme étant du type ( existant ) TYPE.

Arjan
la source
1
+1 Il est également indiqué "Si vous souhaitez définir un nouveau type ou redéfinir complètement un type existant, utilisez --type-set".
pause jusqu'à nouvel ordre.
Hmmm ... J'ai lu cette section plusieurs fois, mais je n'ai pas réalisé / compris que je répondais à mes besoins! Merci!
Martin Tóth
-1

Hmmm ... ackest fondamentalement un script Perl ... qui est assez facile à éditer:

%mappings = (
    actionscript => [qw( as mxml )],
    ada         => [qw( ada adb ads )],
...
    latte       => [qw( latte )],
...
    yaml        => [qw( yaml yml )],
    xml         => [qw( xml dtd xslt ent )],
);

Mais encore, y a-t-il une autre solution à cela?

Martin Tóth
la source
4
Si vous modifiez ack-grep lui-même, vous perdez l'avantage des mises à niveau ultérieures car la mise à niveau écraserait vos modifications. La configuration peut être effectuée dans .ackrc qui est une solution supérieure.
Niels Bom