helm-ag (ou similar) encontra apenas em arquivos javascript

10

Eu gostaria de restringir o find / grep a (digamos) apenas arquivos javascript (principalmente porque é isso que eu faço em "outro editor").

Os arquivos Javascript no meu projeto Ruby-on-Rails legado têm uma destas extensões de arquivo: -

.js, .js.erb, .coffee, .js.coffee, .js.coffee.erb, .jsx, .js.jsx, .js.jsx.erb (e talvez mais)

Se eu pudesse, restringiria a busca a arquivos com essas extensões e pré-definiria essa lista para não precisar digitá-la todas as vezes.

Eu acho que preciso escrever uma função personalizada, se houver uma maneira de especificar o tipo de arquivo, mas estou lutando para descobrir como fazer isso .. e talvez eu tenha acabado de pegar um fluxo de trabalho estranho do meu antigo editor?

EDIT: desculpe a pergunta não estava clara .. eu não quero corrigi-lo para que o emacs sempre procure em arquivos Javascript .. quando eu quiser pesquisar em arquivos Javascript, eu quero procurar apenas arquivos com essas extensões .. quando Eu quero pesquisar em arquivos html. Eu quero pesquisar apenas em arquivos com extensões .html, .html.erb, .html.haml, .haml, etc.

mustISignUp
fonte

Respostas:

11

Se você usar o helm-agcomando, poderá especificar a opção como -G\.js$ search_pattern, ou, se usar helm-do-ag, poderá usar o C-uprefixo para especificar a extensão.

Isso é screencast.

insira a descrição da imagem aqui

Obrigado por usar helm-ag.

syohex
fonte
1
Como podemos especificar a pesquisa apenas nos arquivos .js e .java? (ou seja, 2 extensões de arquivo diferentes)
user3341592 02/07
2
Eu nunca entendi os nomes helm-age helm-do-ag. O que eles realmente significam? Como lembrar o que eles fazem?
user3341592
1

Você pode usar helm-ag-use-grep-ignore-list e especificar padrões de ignorar em grep-find-ignored-filese grep-find-ignored-director.

Tu Do
fonte
1

Embora você tenha em mente uma lista de tipos de arquivo que deseja pesquisar, observe que o argumento usual para o findqual seleciona arquivos é o -nameque leva a um padrão brilhante. Então, algo como -name *.ns.*deve corresponder a todos os arquivos Javascript no seu projeto.

Helm e sua integração ag provavelmente têm algo semelhante.

Esses comandos registram o histórico. Use C-pou a seta para cima para retornar as grep-findpesquisas anteriores . Você pode usar C-r .ns.para recuperar a última pesquisa que você fez nos arquivos Javascript e simplesmente editar o padrão de pesquisa.

Lost 'n Found
fonte
1

Se estiver usando ag

Se você estiver usando ag, poderá colocar um .agignorearquivo na raiz do projeto com os arquivos que deseja ignorar. Aqui está um exemplo:

# Extension ignores
*.log
*~
*#*#
*.txt
Kaushal Modi
fonte