我有一个名为 this 的 vim 插件,files.vim
它会列出所有文件并让您搜索和打开它。
我想通过接受您的击键来改进这一点,从而过滤搜索结果。我可以使用input()
方法来接受用户的一句话。但是我希望它在用户键入时读取输入,就像 javascript 一样onkeypress
搜索vim帮助,仍然没有运气。
有办法吗?
我有一个名为 this 的 vim 插件,files.vim
它会列出所有文件并让您搜索和打开它。
我想通过接受您的击键来改进这一点,从而过滤搜索结果。我可以使用input()
方法来接受用户的一句话。但是我希望它在用户键入时读取输入,就像 javascript 一样onkeypress
搜索vim帮助,仍然没有运气。
有办法吗?
你正在寻找getchar()
.
从用户或输入流中获取单个字符。
一些插件(例如FuzzyFinder - 带有模糊匹配的缓冲区/文件/命令/标签/等资源管理器)使用不同的方法:它们打开一个使用自定义插入模式完成编程的暂存缓冲区。完成功能将在每次按键时自动调用,然后插件能够更新匹配列表。在缓冲区内部,类似Enter的键也被挂钩,因此当完成完成时,暂存缓冲区会自动关闭并检索结果。实际上,FuzzyFinder 可以用你自己的数据源进行扩展;可能值得研究一下,而不是重新实现类似的东西。
您是否尝试过autocmd检测光标移动?