Hinzufügen eines Dateityps zur permanenten Bestätigung

16

Ich habe kürzlich gelernt, wie man ack mehr Dateitypen unterstützen lässt (und Folgendes hinzufügt .ackrc):

--type-add
latte=.latte

Leider erzeugt das eine Info-Zeile bei jeder Suche, die ich benutze, auch bei einer mit 0 Ergebnissen.

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

Gibt es eine Möglichkeit, dies dauerhafter zu machen? (dh diese Infozeile loswerden) Für mich sieht es so aus, als würde dieser neue Typ bei jedem Bestätigungsaufruf hinzugefügt. Ist es ein Problem mit meiner Installation von ack?

Ich arbeite unter Mac OS X 10.5.8 mit ack 1.92 (läuft unter Perl 5.10.1)

Martin Tóth
quelle
Zu 10.6-> 10.5.8: Ich habe wirklich keine Ahnung, warum ich 10.6 geschrieben habe, ich hatte immer 10.5.8 ... Und als ich es erkannte, änderte ich es ...
Martin Tóth
1
Ungerade Änderungshistorie: @Mehper hat innerhalb der 5-minütigen Schonfrist mit der Bearbeitung begonnen, und dann (nachdem Mehper gestartet , aber bevor er gespeichert hat ) hat Martin "10.6" auf "10.5.8" geändert. Als nächstes wurde die Änderung rückgängig gemacht, als Mehper die Änderungen an dem (damals) älteren Text speicherte - der aufgrund der Kulanzfrist immer noch die gleiche Revision für den Verlauf aufwies, weshalb Mehper als Versionsänderung aufgeführt wurde. Wenn Sie sich darüber Gedanken machen, sollten Sie darüber nachdenken, nach dem Speichern abzustimmen, wenn der Beitrag zwischenzeitlich von einer anderen Person gespeichert wurde .
Arjan
+1 Ich habe --type-set gemäß der Dokumentation verwendet, hatte aber keine Ahnung, dass die Typen in einer neuen Zeile stehen sollten
Marcelo Diniz

Antworten:

18

Mir scheint, dass die Dokumentation aussagt, dass Sie --type-setstattdessen benötigen :

--type-set
latte=.latte

Ich --type-addbetone:

Dateien mit den angegebenen EXTENSION (en) werden als vom ( vorhandenen ) Typ TYPE erkannt .

Arjan
quelle
1
+1 Es heißt auch: "Wenn Sie einen neuen Typ definieren oder einen vorhandenen Typ vollständig neu definieren möchten, verwenden Sie --type-set."
Bis auf weiteres angehalten.
Hmmm ... Ich habe diesen Abschnitt einige Male gelesen, aber ich habe nicht verstanden, dass ich meinen Bedürfnissen entspreche! Vielen Dank!
Martin Tóth
-1

Hmmm ... ackist im Grunde ein Perl-Skript ... das ganz einfach zu bearbeiten ist:

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

Aber gibt es noch eine andere Lösung dafür?

Martin Tóth
quelle
4
Wenn Sie ack-grep selbst bearbeiten, verlieren Sie den Vorteil nachfolgender Upgrades, da durch das Upgrade Ihre Änderungen überschrieben würden. Die Konfiguration kann in .ackrc erfolgen, was eine überlegene Lösung darstellt.
Niels Bom