如何在打开新窗口(包含项目)后获得用户输入(以便我可以过滤某些项目)?我想要类似于CtrlP或CtrlSpace的内容。我试着查看他们的代码,但未能确定他们在哪里做。
我调用它的方法是创建一个调用函数command
的{{1}},它打开窗口并等待用户输入。
我已经尝试了一些变体(foo
内的代码):
foo
和
botright split NewWindow
let input = input('>> ')
在打开新窗口之前,第一个总是给我输入。在它们两个中botright split NewWindow
redraw!
let input = input('>> ')
部分都没有出现(输入本身也没有)。他们如何做到这一点?有一堆>>
来电?
(使用Neovim v0.2.0)
答案 0 :(得分:1)
确定。看起来并不那么困难(出于某种原因,我在源代码中迷失了,无法看到它)。他们基本上一次得到一个字符并继续回应结果。
根据我的看法,CtrlP使用以下方法:
getchar()
我的vimscript现在看起来像这样:
let str = ''
while s:some_stop_condition()
redraw
let c = getchar()
let str = str . nr2char(c)
echo str
endwhile