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