【发布时间】:2024-01-16 16:41:01
【问题描述】:
我遇到了很棒的ctrlp.vim plugin。它是我之前使用过的Command-T plugin 的一个很好的替代品。我不喜欢 Command-T 的是,在启动 vim 后第一次调用它时,重新扫描文件大约需要 20-30 秒。
CtrlP 的工作速度要快得多,但它似乎不会自动重新扫描新创建的文件。我应该如何手动触发重新扫描?
谢谢!
【问题讨论】:
-
这在文档中回答得非常清楚。
我遇到了很棒的ctrlp.vim plugin。它是我之前使用过的Command-T plugin 的一个很好的替代品。我不喜欢 Command-T 的是,在启动 vim 后第一次调用它时,重新扫描文件大约需要 20-30 秒。
CtrlP 的工作速度要快得多,但它似乎不会自动重新扫描新创建的文件。我应该如何手动触发重新扫描?
谢谢!
【问题讨论】:
<F5>
- Refresh the match window and purge the cache for the current directory.
- Remove deleted files from MRU list.
这假设您已经处于 ctrl-p 模式。请注意,您可以在查询中间按 F5,即,您可以键入几个字符,发现它与最近更新的文件不匹配,然后按 F5 立即刷新。如果文件刚刚添加到 ctrl-p 缓存,它将自动显示匹配项。
【讨论】:
ctrl-p 2.F5
正如Jeet 所说,您可以按F5,但如果这不起作用,您可以随时运行:CtrlPClearCache,这是应该运行的F5。
:CtrlPClearCache
刷新当前工作目录的缓存。同按<F5>在 CtrlP 内。
要启用或禁用缓存,请使用 |g:ctrlp_use_caching|选项。
【讨论】:
我将此添加到 .vimrc 中,它会关闭 ctrlp 缓存
g:ctrlp_use_caching = 0
【讨论】:
如果需要,您可以在保存时自动破坏缓存,以便下次使用时强制刷新。
Put this in your vimrc(信用docwhat):
" CtrlP auto cache clearing.
" ----------------------------------------------------------------------------
function! SetupCtrlP()
if exists("g:loaded_ctrlp") && g:loaded_ctrlp
augroup CtrlPExtension
autocmd!
autocmd FocusGained * CtrlPClearCache
autocmd BufWritePost * CtrlPClearCache
augroup END
endif
endfunction
if has("autocmd")
autocmd VimEnter * :call SetupCtrlP()
endif
不幸的是,没有办法在后台自动保持缓存的新鲜度。
【讨论】:
我知道这是一个老问题,但它太简单了,我不得不发表评论。 把它放在你的 .vimrc 中
:nnoremap <c-p> :CtrlPClearCache<bar>CtrlP<cr>
这将刷新缓存,然后调用 CtrlP。不再丢失文件。
【讨论】:
g:ctrlp_use_caching 禁用缓存?