Especificador de ruta Ripgrep en Ubuntu 20

Especificador de ruta Ripgrep en Ubuntu 20

Quiero usarripgrepen mi máquina Ubuntu 20. Lo he instalado desde varios repositorios (apto, chasquido, carga) e incluso lo construí yo mismo, pero siempre me he encontrado con el mismo problema:

Según el manual uno debería poder simplemente ejecutar

rg 'pattern'

y ripgrep simplemente buscará recursivamente en el directorio de trabajo actual. Sin embargo, para mí siempre parece esperar también un especificador de ruta, como lo demuestra el hecho de que no encontrará una coincidencia incluso si un archivo con el patrón está presente en el nivel superior del directorio actual.

Ripgrep sólo funcionará si hago algo como:

rg 'pattern' *

Esto no sería un gran problema, pero tengo la intención de usar ripgrep en un complemento vim que espera el comportamiento del manual. Entonces la pregunta es: ¿por qué ripgrep se comporta de manera tan extraña y cómo soluciono el comportamiento?

Editar:

Al ejecutar el comando con la --debugbandera se obtiene el siguiente resultado:

DEBUG|grep_regex::literal|grep-regex/src/literal.rs:59: literal prefixes detected: Literals { lits: [Complete(test)], limit_size: 250, limit_class: 10 }
DEBUG|globset|globset/src/lib.rs:435: built glob set; 0 literals, 0 basenames, 11 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
DEBUG|globset|globset/src/lib.rs:435: built glob set; 0 literals, 0 basenames, 11 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
DEBUG|globset|globset/src/lib.rs:435: built glob set; 0 literals, 0 basenames, 11 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
DEBUG|globset|globset/src/lib.rs:435: built glob set; 0 literals, 0 basenames, 11 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
DEBUG|globset|globset/src/lib.rs:430: glob converted to regex: Glob { glob: "**/*", re: "(?-u)^(?:/?|.*/)[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true }, tokens: Tokens([RecursivePrefix, ZeroOrMore]) }
DEBUG|globset|globset/src/lib.rs:435: built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
DEBUG|globset|globset/src/lib.rs:435: built glob set; 0 literals, 0 basenames, 11 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
DEBUG|ignore::walk|ignore/src/walk.rs:1639: ignoring ./.cache: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("./.gitignore"), original: "*", actual: "**/*", is_whitelist: false, is_only_dir: false })))

...

y luego es lo mismo que la última línea para cada subcarpeta de mi directorio de inicio.

Respuesta1

Ok, gracias a @Brian, resolví el problema.

ripgreptiene una lógica de ignorar incorporada, que ignora automáticamente los archivos que encuentra en .gitignore.

Para guardar mis archivos dot a través de git, configuré un repositorio en mi directorio de inicio, que de forma predeterminada ignora todos los archivos excepto los que agrego usando git add -f .... Es decir, en mi .gitignorearchivo en el directorio de inicio ignoro todos *los archivos (), lo que a su vez provocó que ripgrep también los ignorara. No creo que muchos experimenten el mismo problema, pero tal vez esto ayude a alguien algún día.

información relacionada