我有一个 vim 脚本,它使用单行窗口从用户那里获取文件名模式。如果您按 CTRL-X CTRL-O,则此模式可以从数据库中完成完整的文件名。现在唯一的问题是您必须自己按下自动完成快捷方式。但我希望自动补全能够以增量方式工作,以便您键入的每个字符都会自动更新(想想 Eclipse 中的 CTRL-R 文件打开对话框)。
有没有办法使用自动命令或某种回调来为用户在此特定窗口中键入的每个字符调用 CTRL-X CTRL-O 后面的函数?
我有一个 vim 脚本,它使用单行窗口从用户那里获取文件名模式。如果您按 CTRL-X CTRL-O,则此模式可以从数据库中完成完整的文件名。现在唯一的问题是您必须自己按下自动完成快捷方式。但我希望自动补全能够以增量方式工作,以便您键入的每个字符都会自动更新(想想 Eclipse 中的 CTRL-R 文件打开对话框)。
有没有办法使用自动命令或某种回调来为用户在此特定窗口中键入的每个字符调用 CTRL-X CTRL-O 后面的函数?
奥斯汀走在正确的轨道上,但只是发生了错误的事件。看看CursorMovedI
事件autocmd
。基本上,它会在键盘光标在插入模式下移动时触发。输入一个字符?光标移动,事件被触发。
请记住,这对您的使用来说有点笨拙,因为除了键入或删除字符之外,光标可能会因其他原因而移动。用户可以使用箭头键移回他们想要编辑的位置。你的每一个动作都会弹出完成。
我在有关窗口本地自动命令的帮助中找不到任何内容,但存在缓冲区本地,因此可能足够接近。
尝试 - 并在必要时修改 - 这个插件:http ://www.vim.org/scripts/script.php?script_id=1879
我是一个快乐的用户。
你应该看看:h autocmd
。我相信这个InsertChange
事件可以用来做你想做的事。