我知道如何使用CtrlP。我输入ctrl+p,然后开始写文件名.诸若此类。但是..。我是个很懒的开发人员。我想直接发送到CtrlP当前的单词。我知道如何掌握当前的词汇:
let l:currentWord = expand('<cword>')用维姆语来说..。我怎样才能把l:当前的单词发送到CtrlP?
map <F6> :call ComposerKnowWhereCurrentFileIs()<CR>
function! ComposerKnowWhereCurrentFileIs()
let l:currentWord = expand('<cword>')
let l:command = "grep " . l:currentWord . " ../path/to/composer -R | awk '{print $6}' | awk -F\\' '{print $2}'"
let l:commandFileFound = l:command . ' | wc -l'
let l:numberOfResults = system(l:commandFileFound)
if l:numberOfResults == 1
let l:fileName = system(l:command)
let l:openFileCommand = 'tabe /path/to/project' . l:fileName
exec l:openFileCommand
else
echo "Too many files :-( - use CtrlP ;-) "
endif
endfunction发布于 2015-05-22 07:23:31
<C-P><C-\>w见:h ctrlp-mappings。您可以映射此组合:
map <F6> <C-P><C-\>w在一项职能中:
exe "normal \<C-P>" . expand('<cword>')发布于 2015-05-22 07:47:21
CtrlP和类似插件的全部目的是提供一个可供选择的命令行,您可以在输入时细化搜索。
如果您不需要模糊搜索,并且在光标…下面已经有了文件名为什么不简单地使用内置的gf?
-编辑--
在下文的综合框架中:
/path/not/knowable/BlaBlaClassName.php一起跳到了gf,<C-^>的缓冲区(与您的问题无关),BlaBlaClassName生成的tags文件,我再次跳到/path/not/knowable/BlaBlaClassName.php中的<C-]>声明。

发布于 2015-05-22 07:40:16
function! LazyP()
let g:ctrlp_default_input = expand('<cword>')
CtrlP
let g:ctrlp_default_input = ''
endfunction
command! LazyP call LazyP()
nnoremap <C-P> :LazyP<CR>(这可能会被简化,但我在vim语法方面很差)
https://stackoverflow.com/questions/30390272
复制相似问题