2015-09-11 1 views
1

При вызове CtrlP в первый раз это вызывает довольно задержку для создания кеша. Есть ли способ запустить его в фоновом режиме, чтобы я мог продолжать делать что-то в vim?Как запустить/вызвать CtrlP первый раз в фоновом режиме - VIM

+5

Нет, Vim не делает асинхронное выполнение. Запустите Vim от корня вашего проекта, а не от вашего '$ HOME'. – romainl

+0

@romainl Возможно, это необходимо обновить для Vim 8. –

ответ

3

Вы не можете этого сделать, фактически, vim isn't multi-threaded.

Вы можете посмотреть на NeoVim, который является многопоточным.

Alternativly, вы можете использовать плагин Unite и команду file_rec/async:

Примечание: с большими проектами, это может вызвать некоторые проблемы с производительностью. Обычно рекомендуется использовать | unite-source-file_rec/async | источник, который требует | vimproc |.

+0

Благодарим вас за ответ. Я установил NeoVim. Как я могу сделать это с NeoVim? Когда я запускаю CtrlP, он стекает до завершения индексации, как в Vim. – whitesiroi

+2

Теперь CtrlP был оставлен на несколько лет, и поэтому он не пользуется новыми функциями в неовиме. – romainl

9

Если вам нужно ускорить индексацию CtrlP, вы можете использовать ag для Grep файлов, исключить некоторые папки и файлы из индексации, и установить расположение кэша.

Чтобы сделать это, поместите эти строки в .vimrc:

let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp' 
let g:ctrlp_user_command = 'ag %s -i --nocolor --nogroup --hidden 
    \ --ignore .git 
    \ --ignore .svn 
    \ --ignore .hg 
    \ --ignore .DS_Store 
    \ --ignore "**/*.pyc" 
    \ -g ""' 
+0

Большое спасибо, он работает намного быстрее с помощью ag. – whitesiroi