首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim语言:将当前单词发送到CtrlP

Vim语言:将当前单词发送到CtrlP
EN

Stack Overflow用户
提问于 2015-05-22 07:00:05
回答 4查看 1.6K关注 0票数 6

我知道如何使用CtrlP。我输入ctrl+p,然后开始写文件名.诸若此类。但是..。我是个很懒的开发人员。我想直接发送到CtrlP当前的单词。我知道如何掌握当前的词汇:

代码语言:javascript
复制
let l:currentWord = expand('<cword>')

用维姆语来说..。我怎样才能把l:当前的单词发送到CtrlP?

代码语言:javascript
复制
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
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-22 07:23:31

代码语言:javascript
复制
<C-P><C-\>w

:h ctrlp-mappings。您可以映射此组合:

代码语言:javascript
复制
map <F6> <C-P><C-\>w

在一项职能中:

代码语言:javascript
复制
exe "normal \<C-P>" . expand('<cword>')
票数 14
EN

Stack Overflow用户

发布于 2015-05-22 07:47:21

CtrlP和类似插件的全部目的是提供一个可供选择的命令行,您可以在输入时细化搜索。

如果您不需要模糊搜索,并且在光标…下面已经有了文件名为什么不简单地使用内置的gf

-编辑--

在下文的综合框架中:

  • 我和/path/not/knowable/BlaBlaClassName.php一起跳到了gf
  • 我回到前面使用<C-^>的缓冲区(与您的问题无关),
  • 由于使用BlaBlaClassName生成的tags文件,我再次跳到/path/not/knowable/BlaBlaClassName.php中的<C-]>声明。

票数 4
EN

Stack Overflow用户

发布于 2015-05-22 07:40:16

代码语言:javascript
复制
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语法方面很差)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30390272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档