例如,对于以 结尾的任何文件.foo
,我希望 vim 中出现以下行为:
- 如果用户输入
i.
,我希望 vim 的自动完成功能提供列表dogs, cats, mice
- 如果用户输入
i.dogs.
,我希望 vim 的自动完成功能提供列表poodle,dachshund,pitbull
仅供参考,我需要以定制语言使用此功能以便于打字/学习。
答案1
'omnifunc'
您可以通过或编写自定义插入模式补全'completefunc'
。阅读 了解详细信息:help complete-functions
;其中还有示例。
Vim 使用文件类型(例如java
,, )作为文件扩展名的抽象,文件扩展c
名markdown
只是表示文件类型的一种方式(其他方式例如#!/bin/bash
可执行脚本顶部的 hashbang 行)。您可以编写自定义文件类型检测,如下所示:
:autocmd BufNewFile,BufRead *.foo setf foo
然后将自定义的补全内容放入~/.vim/ftplugin/foo_completion.vim
如下内容中:
:setlocal completefunc=FooCompletion
我希望这些指针有所帮助;请参阅帮助和现有文件类型了解详细信息。