Gar*_*ler 5 regex vim code-completion
有一个未在vim帮助文件中列出的完成类型(特别是:insert.txt),但我本能地感觉到需要经常使用.假设我的文件中有"Awesome"和"SuperCrazyAwesome"字样.我发现Awesome的一个实例应该是SuperCrazyAwesome,所以我跳到单词的开头,进入插入模式,然后必须输入"SuperCrazy".
我觉得我应该可以键入"S",创建"SCrazy",然后只需点击一两个完成热键即可找到光标左侧的内容("S"),右侧是什么("疯狂" "),正则表达式反对文件中的所有单词("/ S\w*Crazy /"),并为我提供一个完成弹出菜单的选择,或者如果只有一个匹配就进行替换.
我想用这个实际的完成系统.存在使用函数的"用户定义"完成,并且在帮助替换给定列表方面具有良好示例.但是,我似乎无法追踪到实现这一目标所需要的许多细节,包括:
我已经在这几个小时了.我一直在努力达到死胡同,就像这个一样,它将我引入了\%#以匹配光标位置,这似乎对我不起作用.例如,搜索\ w*\%#只返回我所在单词的第一个字符,无论我在哪里.\%#似乎没有锚定.
尽管它不完全遵循您过去想要的方法,但我已经编写了https://github.com/mjbrownie/swapit,如果您正在寻找相关关键字,它可能会执行您的任务。如果您有数百个匹配项,那么在这种情况下它就会失败。
它主要适用于 2-10 个可能的有序匹配。
您将定义一个列表
:SwapList 真棒 真棒 更多真棒 超级疯狂真棒 完全完全真棒 令人难以置信真棒
并使用递增递减键 (c+a) (c+x) 在匹配项中移动
据我所知,vim.org 和 github 上还有一些其他循环类型的插件,例如交换词。
这里的优点是您不必使用正则表达式将单词分组在一起。