如何在vim中拉出CtrlP匹配结果

时间:2016-09-03 10:38:52

标签: vim ctrlp

是否可以从ctrlP匹配窗口复制搜索结果?使用<s-tab>,人们可以关注匹配窗口,但从那里猛拉似乎不可能。

我经常要在脚本中搜索我需要的文件,但我只是模糊地记住了他们的名字。所以我使用ctrlP来查找文件。不,我想将匹配的文件名粘贴到我的脚本中。我在ctrlP的文档中找不到这样的内容!

enter image description here

例如在这种情况下,我想将光标所在的路径(在底部的匹配窗口中)复制到寄存器,然后将其粘贴到上面的窗口中...

2 个答案:

答案 0 :(得分:0)

(注意:这不是广告!)

我不使用CtrlP,所以我不知道要使用CtrlP。

现在,我使用LeaderF进行模糊搜索,我认为它可以解决您的问题。

使用LeaderF,一旦打开搜索窗口,则可以按f = File.new("testfile") o = File.open("output.txt", w) f.each do |line| next if f.lineno == 1 o << line end 切换到普通模式。然后,您可以使用例如Tab来提取文件名并将其粘贴到上面的窗口中。

希望这会有所帮助。

答案 1 :(得分:0)

我也有同样的问题。并遵循 ~guessimtoolate 建议。我为 CtrlP 提出了这个自定义函数。 在文件上按 Ctrl-t 会将其文件名附加到光标处。

function! YankFilenameFunc(action, line)
  if a:action =~ '^[t]$' 
    " Get the filename
    let filename = fnameescape(fnamemodify(a:line, ':t'))
    " Close CtrlP
    call ctrlp#exit()
    exec "normal a". filename ."\<Esc>"
  else
    " Use CtrlP's default file opening function
    call call('ctrlp#acceptfile', [a:action, a:line])
  endif
endfunction
let g:ctrlp_open_func = { 'files': 'YankFilenameFunc' }