code - Cadena predeterminada para grep-find en emacs
emacs para mac (4)
Eche un vistazo a cómo lo maneja la versión de desarrollo actual de emacs: proporciona una enorme lista de patrones de exclusión.
A menudo uso el comando grep-find en emacs para buscar a través de mis archivos fuente, pero me sorprende que siempre encuentre coincidencias en archivos temporales y de respaldo, y así sucesivamente. El comando predeterminado para grep-find es:
find . -type f -print0 | xargs -0 -e grep -nH -e
Sé que puedo modificarlo antes de ejecutarlo para que coincida con mis necesidades, pero ¿cómo lo cambio para que sea correcto al inicio?
El paquete grep
calcula un conjunto de valores predeterminados por adelantado (pero no necesariamente en la carga del paquete). Entonces querrá que eso suceda y luego redefina el comando find. Algo como:
(grep-compute-defaults)
(setq grep-find-command "find . ! -name /"*~/" ! -name /"#*#/" -type f -print0 | xargs -0 -e grep -nH -e ")
Si usa lgrep o rgrep en lugar de grep-find, puede configurar archivos / directorios ignorados por adelantado:
(eval-after-load "grep"
''(progn
(add-to-list ''grep-find-ignored-files "*.tmp")
(add-to-list ''grep-find-ignored-directories "_darcs")))
Si usas GNU grep otra buena solución es poner algo como esto en tu .bashrc
export GREP_OPTIONS="--exclude=*#* --exclude=*.svn* --exclude=entries --exclude=all-wcprops --exclude=*.xcuserstate --exclude=project.pbxproj --exclude=*.svn-base --exclude=*.tmp"
y simplemente dile a grep que ignore ciertos archivos. Entonces obtienes el mismo comportamiento de la línea de comando también.