Поиск с помощью command-T

#search #vim #nerdtree #vim-plugin

#Поиск #vim #nerdtree #vim-плагин

Вопрос:

Когда я ищу какой-либо файл с помощью command-T, он часто не может его найти, потому что я не в нужном каталоге, поэтому мне приходится менять каталог.

Можно ли установить, что command-T будет сначала искать в каталогах, в которых есть закладки, Nerdtree или где-то еще?

Я мог бы изменить каталог на / , но это поиск очень большого объема файлов. Когда я меняю каталог на свой домашний каталог и ищу что-то обычное, например .bashrc , я найду довольно много файлов, которые расположены в .wine каталоге.

В 99% случаев мне нужно искать файлы в каталогах проектов, с которыми я активно работаю. Могу ли я установить эти каталоги в некоторых настройках?

Ответ №1:

Согласно документации, вы можете исключить каталоги из своего поиска:

                                             *command-t-wildignore*
  |'wildignore'|                                 string (default: '')

   Vim's |'wildignore'| setting is used to determine which files should be
  excluded from listings. This is a comma-separated list of glob patterns.
  It defaults to the empty string, but common settings include "*.o,*.obj"
  (to exclude object files) or ".git,.svn" (to exclude SCM metadata
  directories). For example:

     :set wildignore =*.o,*.obj,.git

   A pattern such as "vendor/rails/**" would exclude all files and
  subdirectories inside the "vendor/rails" directory (relative to
  directory Command-T starts in).    
  

Поэтому, если бы вы хотели исключить резервный каталог, вы бы написали:

 set wildignore =project/backup
  

в вашем .vimrc

Кроме того, чтобы игнорировать dotfiles / dotdirs, вы можете изучить следующие параметры:

 g:CommandTNeverShowDotFiles
g:CommandTScanDotDirectories
g:CommandTMaxDepth
  

Они позволяют вам:
— полностью игнорировать точечные файлы;
— прекратить рекурсивный поиск в dotdirs;
— укажите, на какой глубине команда-T должна остановить сканирование.

Я нашел эту информацию в git автора, но вы, вероятно, можете просмотреть этот документ, выполнив его в vim:

 :help Command-T
  

(или похожее имя)

Я не видел никаких ссылок на настройки или закладки в плагине.
Однако, если вы запускаете vim, открывая файл в указанном каталоге проекта, вы можете добавить эту строку в свой .vimrc:

     set autochdir
  

Эта опция установит при запуске вашего каталога каталог текущего файла.

Комментарии:

1. Спасибо, кажется, я могу частично достичь цели с помощью предложенных вами команд. Я бы хотел, чтобы автор добавил какую-нибудь противоположную команду к wildignore

Ответ №2:

Вы могли бы попробовать Ctrl-P. У меня были те же проблемы, что и у вас, и внесение изменений решило их.

Я также игнорирую некоторые папки (в .vimrc):

 let g:ctrlp_custom_ignore = {
 'dir':  '.git$|.hg$|.svn$',
 'file': '.exe$|.so$|.dll$' }