vim:操作字典弹出窗口以自动完成

vim:操作字典弹出窗口以自动完成

我想调整 vim 以使用 cdo (气候数据运营商) 有效率的。因为我需要在(bash)脚本中使用 cdo,所以我想添加一个带有小描述的自动完成匹配(已实现!)(仍在搜索!)。

我设置了环境并且它在基本级别上运行。现在,我想知道是否可以操纵匹配字典关键字右侧弹出菜单的输出。

到目前为止我得到了一个简单的关键字匹配,见下图:

使用以下设置:

我的.vimrc: set completeopt=longest,menuone

包含不同的字典,主要是cdo.dic:~/.vim/ftdetect/cdo.vim:

au BufRead,BufNewFile *.sh set dictionary+=~/.vim/dictionary/cdo.dic au BufRead,BufNewFile *.sh set dictionary+=~/.vim/dictionary/hamocc.dic au BufRead,BufNewFile *.sh set dictionary+=~/.vim/dictionary/mpiom.dic

我的字典文件 ~/.vim/dictionary/cdo.dic: with 与之匹配

abs -abs \ adisit -adisit \ ...大约700多个...

目标:我希望得到的输出是显示在右侧的小描述,而不是字典文件的文件路径。因此最好对运算符进行简短的解释(也可能存储在字典文件中运算符之后?),例如。出于说明目的

selcode : Select parameters by code number {selcode,code ifile ofile}

从字典中读取一行:

selcode -selcode {Select parameters by code number [selcode,code ifile ofile]}\

因此基本上,我使用快速查找工具来查找操作员名称和简短描述,无需大量编程,也无需使用其他外部工具插件。所以这是一个“是否可能以及如何实现?”的问题...

到目前为止,我尝试了 vim 文档,并在谷歌上搜索了 vim、dictionary、complete、completeopt、pmenu,...

我很欣赏你的建议。

答案1

你不能影响字典补全的上下文信息(除非你直接改变Vim的源代码)。

然而,Vim 提供了实现自定义补全的能力。您可以在 找到所有相关信息和示例:help complete-functions。这样,您就可以完全控制上下文(名为menu, cp. :help complete-items)。

您可以坚持使用字典文件作为源;你必须读入文件(例如通过readfile())并稍微解析它(matchlist()),或者你直接将字典项定义为 Vim 列表,在实现自定义完成的 Vim 脚本中。

答案2

发现这个问题促使我写了一个插件:

https://github.com/jsit/vim-customcpt

它是由 aaron.spring 为响应 Ingo Karkat 接受的答案而构建的插件构建的,但接受任何任意 json 文件作为自动完成“字典”。

相关内容