是否可以从ctrlP
匹配窗口复制搜索结果?使用<s-tab>
,人们可以关注匹配窗口,但从那里猛拉似乎不可能。
我经常要在脚本中搜索我需要的文件,但我只是模糊地记住了他们的名字。所以我使用ctrlP
来查找文件。不,我想将匹配的文件名粘贴到我的脚本中。我在ctrlP
的文档中找不到这样的内容!
例如在这种情况下,我想将光标所在的路径(在底部的匹配窗口中)复制到寄存器,然后将其粘贴到上面的窗口中...
答案 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' }