为vim中的每个按键调用omnicompletion

时间:2010-04-07 11:03:52

标签: vim omnicomplete

我有一个vim脚本,它使用一行窗口从用户获取文件名模式。如果按CTRL-X CTRL-O,则可以从数据库中将此模式完成为完整文件名。现在唯一的问题是你必须自己按自动完成快捷方式。但我希望自动完成以递增方式工作,以便为您键入的每个字符自动更新(想想Eclipse中的CTRL-R文件打开对话框)。

有没有办法使用自动命令或某种回调为用户在这个特定窗口中输入的每个字符调用CTRL-X CTRL-O后面的函数?

3 个答案:

答案 0 :(得分:2)

奥斯汀走在正确的轨道上,但错误的事件。请查看CursorMovedI autocmd事件。基本上,只要键盘光标在插入模式下移动,它就会触发。输入一个字符?光标移动,事件被触发。

请记住,这对您的使用来说有点笨拙,因为光标可以移动而不是键入或删除字符。用户可以使用箭头键移回他们想要编辑的位置。每次搬家都会突然出现。

我在窗口本地自动命令的帮助中找不到任何内容,但缓冲区本地存在,因此可能足够接近。

答案 1 :(得分:1)

尝试 - 并在必要时进行修改 - 此插件:http://www.vim.org/scripts/script.php?script_id=1879

我是一个快乐的用户。

答案 2 :(得分:0)

你应该看看:h autocmd。我相信InsertChange事件可以用来做你想做的事。