2017-08-05 7 views
1

Wie können wir Emacs 'rgrep anpassen, um ripgrep (rg executable) zu verwenden - damit es gleichzeitig für die Suche in Latein 1, UTF-8 und UTF-16 funktioniert?Rgrep in Emacs, um ripgrep zu verwenden

Die Idee ist es, den Standard rgrep Befehl von Emacs wieder zu verwenden, so dass wir auch nächste Fehler und vorherige Fehler verwenden können ...

Ich sehe nicht, wie voll die Integration (für die base dir) und die (für die Dateien übereinstimmenden) Spezifizierer, unter anderem.

(grep-apply-setting 'grep-find-template 
        "rg -uu -g <F> <R> <D>") 

produzieren

rg -uu -g \(-iname \*.txt \) test . 
error: Invalid value for '--max-count <NUM>': invalid digit found in string 

Grep exited abnormally with code 1 at Sun Aug 6 00:23:58 
+0

'rg' nicht' find' Prädikate nicht unterstützt. Einfach normales Globbing. Sie müssen es mit dem 'find' Befehl kombinieren. –

+0

@ JürgenHötzel Danke für die Info. Könnten Sie zeigen, wie Sie es dann schreiben (und als Antwort veröffentlichen)? – user3341592

+0

Es gibt zwei Pakete in Melpa, die mit Ripgrep arbeiten: 'rg' und' ripgrep'. Ich probiere 'rg' jetzt aus, weil es sagt, dass es' wgrep-ag' unterstützt; 'wgrep' ist eines meiner Lieblingsfeatures. – jpkotta

Antwort

1

grep-find-template ist für die Verwendung eines grep Befehl in Kombination mit find (wenn innerhalb * .txt-Dateien suchen). Dies funktioniert für mich:

(grep-apply-setting 'grep-find-template "find <D> <X> -type f <F> -exec rg <C> --no-heading -H <R> /dev/null {} +") 

Wenn Sie rg verwenden möchten, ohne find Sie haben lgrep verwenden und anpassen:

(grep-apply-setting 'grep-template "rg --no-heading -H -uu -g <F> <R> <D>") 
+0

Danke. Wofür sollten grep-command und grep-find-command gesetzt sein, für rg? – user3341592

+0

Hat eine "Suche fehlgeschlagen. Das bedeutet, dass irgendwo ein nicht übereinstimmender Ausdruck ist oder wir am Anfang/Ende der Datei sind." beim Testen von M-x rgrep. Ich verstehe das Zeichen + am Ende der Zeichenfolge nicht. Ist das richtig? – user3341592

+0

Das '+' ist Teil der 'find' Syntax. Es definiert das Ende der 'exec'-Aktion. –

Verwandte Themen