Limitar o escopo da pesquisa de arquivos no texto sublime 2

238

No Texto Sublime, costumo usar Cmd+ P/ Ctrl+ Ppara pesquisar e pular entre arquivos.

Freqüentemente, ele pegava arquivos temporários ou em cache, como .scssc ou outros itens da pasta / tmp.

Existe uma maneira de limitar o que é mostrado no resultado da pesquisa?

rickypai
fonte

Respostas:

319

Adicione e edite isso no seu ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsarquivo.

// These files will still show up in the side bar, but won't be included in
// Goto Anything or Find in Files
"binary_file_patterns": ["*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"],

"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS"],
AGS
fonte
12
Ele binary_file_patternsremove os arquivos do Goto Anything, mas não do Find in Files, como deveria, com base no comentário. Alguém mais está experimentando isso? Sabe como consertar? Estou no Ubuntu, build 2221; A mesma coisa acontece no meu Mac (não sei o número da compilação).
Tyler Collier
51
Há também "file_exclude_patterns": ["*.log"]se você deseja ignorar determinados arquivos, em vez de pastas.
23814 Matt Zukowski
4
Isso funciona no ST3? os comentários parecem diferentes em ST #, parece que folder_exclude_patterns vai excluir da barra lateral, mas eu só quero isso excluídos do Goto e encontrar em arquivos
Michael
20
@ Michael é o mesmo no ST3. Todos os outros: existe uma maneira de excluir a pasta sem ocultá-la? Muitas vezes, quero procurar a fonte de alguma biblioteca, mas não obtê-la nos meus resultados de pesquisa típicos.
Parris
7
@Parris Eu tenho o mesmo problema. Deseja excluir da pesquisa bot nut da barra lateral.
Spieglio
148

Para texto sublime 3: para excluir os resultados da pesquisa e do GoTo, sem remover a barra lateral, altere a "binary_file_patterns"configuração. Corresponde a arquivos e pastas.

Por exemplo, para excluir arquivos em "dist" e "node_modules" da indexação do GoTo, adicione isso ao seu arquivo de configurações do usuário:

"binary_file_patterns": ["dist/*", "node_modules/*", "*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"]

Não consigo descobrir como implementar isso por projeto :(. A maioria das configurações pode ser movida para um project.sublime-projectarquivo. "Projeto> Salvar projeto como", salve a raiz do seu projeto e adicione "settings": {...}ao json em o arquivo gerado. (da fonte , funciona a partir do ST3 build 3095) .Mas não funciona com "binary_file_patterns".

Jay
fonte
3
Isso faz exatamente o que deveria, se comporta como um arquivo de ignorado, se você quiser pensar dessa maneira. Muito obrigado!
Peter_Fretter
6
Mas não é possível mudar isso por projeto?
user2602152
Nota: também funciona no Sublime 2.0.2. +1 para sua boa descrição e para mostrar que folder/**também funciona. :)
try-catch-finalmente
7
Isso não parece funcionar para mim. Estou usando o ST3 build 3095. Como não posso editar as Preferências -> Configurações - Padrão, adicionei o filtro a -> Configurações - Usuário. Eu tentei adicionar "unused/", "*/unused/*"mas também não funciona para mim. No entanto, consegui adicionar um filtro de exclusão como este: -*/unused/*,-*/_sgbak/*à minha pesquisa, o que é irritante porque não se lembra, então você deve adicioná-lo sempre.
Redtopia
@ user2602152 eu não poderia obtê-lo para o trabalho por projeto, ver a resposta actualizado para o que eu tentei
Jay
98

Você pode excluir determinados padrões de arquivo e pastas do seu projeto, modificando as configurações do projeto da seguinte maneira:

{
    "folders":
    [
        {
            "path": "src",
            "folder_exclude_patterns": ["backup"]
        },
        {
            "path": "docs",
            "file_exclude_patterns": ["*.css"]
        }
    ]
}

Isso está descrito na documentação do projeto .

David Pärsson
fonte
7
Funciona para texto sublime 3. Remove a pasta excluída da barra lateral, mas isso não é um problema para meus propósitos.
Webdevotion
Qual é a melhor maneira de ocultar da pesquisa, mas não da barra lateral, por projeto?
Adriano Resende
@AdrianoResende Até onde eu sei, não existe uma maneira correta de fazer isso por projeto. Somente nas configurações globais.
precisa saber é o seguinte
85

Você também pode excluir pastas no painel Localizar tudo usando a -*/foldername/*sintaxe no Wherecampo - por exemplo:

-*/node_modules/*

http://www.sublimetext.com/forum/viewtopic.php?f=2&t=3847&start=10

Daniel Flippance
fonte
2
Sim! Perfeito. Não quero excluir o node_modules do projeto por completo, apenas queria filtrá-lo da pesquisa. Rockin!
Corsário
Eu não acho que isso acontece no wherecampo.
Noé
Sim, vai lá.
21416 Daniel Flippance #
3
Observe que no Windows você também precisará usar as barras (/) para o diretório excluir, mesmo se você usar barras invertidas para o diretório a pesquisar. Exemplo no campo Onde:C:\Projects\SearchThis,-*/but/not/this/*
sp00n
como excluir várias pastas?
precisa saber é o seguinte
21

No texto sublime 3 (Windows BLD 3059), eu precisava restringir a função "localizar na pasta" a determinados arquivos / pastas e talvez um único arquivo,

O seguinte funciona para mim Conteúdo da caixa where:

/C/path/2/project/folder,*.c,*.h,-*/path/not/to/look/in,/C/path/2/specific/file/file.h

Indo além, sem caminhos absolutos, você pode combinar o acima com os seguintes locais simbólicos

<open folders>, <open files>, <current file>

<open folders>,*.c,*.h,-*/never_this_in_folder/*,<open files>
eephillip
fonte
Essa deve ser a resposta aceita, atende à pergunta e não oculta as pastas da interface do usuário que você deseja examinar.
JohnC
Sim. As outras sugestões com folder_exclude_patternse file_exclude_patternsapenas o ocultam na barra lateral, e não na pesquisa ou no GoTo. Infelizmente, não encontrei nenhuma configuração permanente para excluir da pesquisa e do GoTo. Portanto, essa resposta é atualmente a melhor solução alternativa.
Magne
Na verdade, apenas verifiquei que o oculta do Goto. Mas ainda não o oculta na pesquisa ampla do projeto.
Magne
2
Acabei de descobrir que ele exclui da localização nos arquivos se você incluir essas opções no arquivo de configurações globais ("Texto sublime -> Preferências -> Configuração - Usuário"). Ele não funciona com o arquivo de configurações do projeto, portanto, é necessário fazer com que essas configurações sejam aplicadas a cada projeto / aplicativo.
Magne
16

Para o SublimeText 2, isso está funcionando muito bem para mim.

Ao escolher Localizar nos arquivos , especifique excluir pastas na entrada Onde ;

-bower_components/**/*, -dist/**/*, -node_modules/**/*, -tmp/**/*

Portanto, um hífen seguido de padrão de exclusão para pastas nas quais você não deseja pesquisar.

-folder1/**/*, -folder2/**/*

Isso limitará seu escopo de pesquisa.

Veja isso

Harsh Vakharia
fonte
12

Acho que muitas dessas respostas abrangem algumas versões diferentes do Sublime Text, eis como faço isso com o Sublime Text 3 em um Mac.

  1. Abra o menu Texto sublime> Preferências> Configurações - Usuário
  2. Edite os valores file_exclude_patternse folder_exclude_patternspara ignorar arquivos e / ou pastas da ferramenta Localizar

Exemplo

"file_exclude_patterns":
[
    ".svn",
    ".git",
    ".hg",
    ".md",
    ".txt",
    ".DS_Store"
],
"folder_exclude_patterns":
[
    "node_modules",
    "bower_components",
    ".svn",
    ".git",
    ".hg",
    "CVS",
    "deprecated",
    "cache"
],

Captura de tela

insira a descrição da imagem aqui

Kevin Leary
fonte
Eu estava procurando por uma solução global (não por projeto) e tentando diferenciar arquivos de pastas, consegui tudo aqui! (Usando ST3 no Linux Mint)
GFD
Obrigado por isso - eu consegui trabalhar com o ST2 no Ubuntu. Discrepância rápida: tive que adicionar * ao "file_exclude_patterns"; por exemplo, ".txt" -> "* .txt". Eu segui o seguinte: lugolabs.com/articles/…
ximiki 28/03
Isso funciona, mas também exclui que você também possa abrir o arquivo / pasta em sublime. Digamos que você sempre deseje excluir node_modulesao fazer uma busca ampla na pasta. No entanto, se você está depurando algo e existe um problema com uma dependência, seria bom ter a opção de abrir um arquivo em node_modules
Jeremy
4

Você também pode excluir pastas da sua pesquisa através do campo Onde:

Onde: <open folders>,-*/node_modules/*.*,-*/build/*.*

Então, no meu exemplo acima:

  1. Estou pesquisando em todas as pastas abertas.
  2. Estou excluindo a pasta chamada "node_modules", que é uma pasta de nível superior, logo abaixo do diretório raiz do meu projeto.
  3. Estou excluindo a pasta chamada "build", que é uma pasta de nível superior logo abaixo do diretório raiz do meu projeto.

Isso funciona para mim no Sublime Text 3 e as pastas continuam sendo exibidas na barra lateral. Esta é uma exclusão somente de pesquisa por entrada (não afeta a indexação dos bastidores).

afsheenirani
fonte
3

Esta solução funciona perfeitamente para mim: https://superuser.com/a/601270

Find: "something" Where: "<open folders>" // <open folders>" not include hidden folder in sidebar
Laurent Perroteau
fonte
2

Por essas poucas vezes, você precisa limitar a localização (e substituir) apenas ao diretório atual, faça o seguinte:

c/Path/2/Project,-c/Path/2/Project/*/*

O bit importante está /*/*no padrão de exclusão de caminho. Usando o Sublime Text 3 build 3083 no Windows 7 de 64 bits.

MEngelby777
fonte
Qual é a chave para isso? Onde você o coloca? (prefs sublime)
Leon Gaban
@LeonGaban Esta dica é a entrada 'Onde' do painel interativo Localizar arquivos. A combinação de teclas padrão é CTRL + SHIFT + F.
MEngelby777
2

Observe que, se você deseja adicionar uma subpasta da pasta do projeto, é necessário ingressar nas pastas \/. Usando o mesmo exemplo de @ DavidPärsson:

    {
        "folders":
        [
            {
                "path": "src",
                "folder_exclude_patterns": ["backup\/src\/log"]
            }
        ]
    }
Alter Lagos
fonte
0

Acho que a maneira mais fácil de garantir que esses arquivos e pastas sejam excluídos em cada projeto é apenas adicionar o seguinte código nas Configurações do usuário sublime (adicione e edite isso no seu ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settingsarquivo).

{
    // Remove certain files permanently from Sublime via Preferences.sublime-settings.
    "folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]   
}

Gist: https://gist.github.com/ahmadawais/690a816ca158067708ad4dbe17822841

OU você pode verificar meu arquivo de preferências aqui https://github.com/ahmadawais/dotFiles/blob/master/SublimeText/User/Preferences.sublime-settings#L80-L81

Ahmad Awais
fonte