Как использовать «wildignore» в Vim?

19

Мне очень сложно понять синтаксис для параметра wildignore в Vim.

Предположим, что мне нужен плагин для поиска файлов (я использую Ctrlp , в котором используется wildignore ), чтобы не искать скрытые файлы и папки, то есть файлы и папки с префиксом . .

Как я могу это сделать?

    
задан Fawkes5 16.08.2012 в 00:32
источник

4 ответа

8

Как отметил BenC, Wildignore, возможно, не лучший способ игнорировать файлы, если вы используете CtrlP с внешним инструментом поиска. Вместо этого вы можете использовать директиву «custom_ignore» от CtrlP, как указано в их документах:

let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
let g:ctrlp_custom_ignore = {
    \ 'dir':  '\v[\/]\.(git|hg|svn)$',
    \ 'file': '\v\.(exe|so|dll)$',
    \ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
    \ }
    
ответ дан Jordan Eldredge 16.09.2014 в 16:19
  • Как отделить несколько шаблонов файлов? –  nn0p 26.11.2016 в 06:51
  • @ nn0p Что значит? Расширения разделены –  JackHasaKeyboard 31.08.2017 в 18:40
5

Относительно ctrlp.vim и wildignore конкретно, если вы наберете :help ctrlp-options и немного прочитали, вы найдете:

  

Примечание # 1: по умолчанию wildignore и g: ctrlp_custom_ignore   применяются, когда globpath () используется для сканирования файлов, поэтому эти параметры   не применяются, если команда, определенная с помощью g: ctrlp_user_command ,   используется.

Таким образом, вам может понадобиться unlet g:ctrlp_user_command (возможно, установленное по умолчанию) для фактического использования wildignore . Например, в вашем ~/.vimrc добавьте:

if exists("g:ctrl_user_command")
    unlet g:ctrlp_user_command
endif
set wildignore+=.*
    
ответ дан BenC 11.04.2014 в 16:22
  • Я попытался добавить wildignore, custom_ignore и ctrl_user_command не был установлен. Наконец, нашел другой ответ @BenC, предоставленный по аналогичному вопросу. Результаты кэширования Ctrlp, поэтому, как только вы найдете файлы, которые хотите игнорировать, они все равно будут отображаться независимо от того, что вы добавили в wildignore / custom ignore, пока не будет очищен кеш ctrlp. stackoverflow.com/questions/21017857/... –  Paul 28.08.2015 в 14:01
4

См. :help file-pattern . В принципе, если вы просто хотите исключить все, что начинается с точки, вы можете сделать .* .

    
ответ дан Conner 16.08.2012 в 00:46
  • Можете ли вы ввести именно то, что должно быть: set wildignore ... –  Fawkes5 16.08.2012 в 01:41
  • Nevermind я понял, спасибо за информацию. Тип: wildignore + = / home / USERNAME /.* –  Fawkes5 16.08.2012 в 01:47
  • @ Fawkes5: Вы также можете попробовать: установить wildignore + =. *. –  ib. 16.08.2012 в 04:02
0

Поскольку название не соответствует лучшему ответу, это моя, которая не отвечает на ctrlp, а на wildignore. Основано на Ссылка

Vim будет игнорировать шаблоны файлов, указанные в опции wildignore, поэтому вы можете установить их так:

:set wildignore=*.o,*~,*.pyc

Например, мой wildignore выглядит как таковой

 set wildignore+=*/node_modules/*,_site,*/__pycache__/,*/venv/*,*/target/*,*/.vim$,\~$,*/.log,*/.aux,*/.cls,*/.aux,*/.bbl,*/.blg,*/.fls,*/.fdb*/,*/.toc,*/.out,*/.glo,*/.log,*/.ist,*/.fdb_latexmk

Я использую его как для ctrlp, так и для NERDTree

    
ответ дан pascalwhoop 06.04.2018 в 11:28