假设我们有一个像这样的xml文件:
<tag1>
somthing here
</tag1>
<tag2>
somthing here
</tag2>
<region>
autocomplete here
</region>
每当光标位于region标签内时,我希望自动完成c-n
和c-x c-l
仅限于某些客户选项,例如:
c-n
:
myword1, myword2, myword3, myword4
c-x c-l
:
myline1
myline2
myline3
myline4
有可能吗?
python中的解决方案将是首选。
答案 0 :(得分:1)
是的,自定义完成功能可以做到这一点。
Vim对一组固定单词cp有字典完成。 :help i_CTRL-X_CTRL-K
。要根据位置配置不同的集,:autocmd CursorMoved,CursorMovedI
可能会更改基础'dictionary'
选项。
或者,您可以编写自定义完成功能,如CompleteMonths()
下的:help complete-functions
示例。
我的CompleteHelper plugin使编写自定义完成变得非常容易。对于像\%l
这样的正则表达式原子,您可以限制找到匹配项的范围。插件页面包含指向用它编写的几个自定义完成的链接。
要仅从某些XML标记获取匹配项,我们将从一般文本编辑转移到类似IDE的功能。您可能需要一个外部XML解析器(因为通过正则表达式解析XML是not possible),但是可以遵循上面给出的自定义完成函数的配方。