vim中文件特定区域的自动完成限制

2024-10-02 04:27:57 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有这样一个xml文件:

<tag1>
somthing here
</tag1>
<tag2>
somthing here
</tag2>
<region>
autocomplete here
</region>

每当光标在region标记中时,我希望自动完成c-nc-x c-l被限制在一些自定义选项中,例如:

使用c-n

myword1, myword2, myword3, myword4

使用c-x c-l

myline1
myline2
myline3
myline4

有可能吗

首选python解决方案


Tags: 文件标记here选项xmlautocompleteregion光标
1条回答
网友
1楼 · 发布于 2024-10-02 04:27:57

是的,一个自定义的完成函数可以做到这一点

取决于位置的固定值

Vim对一组固定的单词cp.:help i_CTRL-X_CTRL-K字典完成。要根据位置配置不同的集合,:autocmd CursorMoved,CursorMovedI可以更改底层的'dictionary'选项

或者,您可以编写一个定制的完成函数,如CompleteMonths()下的:help complete-functions示例

取决于Vim范围的动态值

我的CompleteHelper plugin使编写自定义完成变得非常容易。使用\%l这样的正则表达式原子,可以限制找到匹配项的范围。这个插件页面有几个用它编写的自定义补全的链接

动态值取决于XML结构

为了只从某些XML标记中获取匹配项,我们正在从一般的文本编辑转向类似IDE的特性。您可能需要一个外部XML解析器(因为通过正则表达式解析XML是not possible),但是可以按照上面给出的定制完成函数的方法进行

相关问题 更多 >

    热门问题