How do I get user input (so that I can filter some items) after opening a new window (which has the items)? I wanted something similar to CtrlP or CtrlSpace. I tried to look at their code, but failed to identify where they do it.
The way I am calling it is by creating a command that calls a function foo that opens the window and waits for an user input.
I have already tried some variations (code inside foo):
botright split NewWindow
let input = input('>> ')
and
botright split NewWindow
redraw!
let input = input('>> ')
The first one always get me the input before opening the new window. In both of them the >> part doesn't show up (neither does the input itself). How do they do this? With a bunch of getchar calls?
(using Neovim v0.2.0)
Ok. It seems it was not that difficult (for some reason I was lost in the source code and couldn't see it). They basically get one char at a time and keep echoing the results.
From what I could see, CtrlP uses the following approach:
getchar()My vimscript now looks like this: