是否有一个Vim插件可以用Tagbar样式打开一个包含文件内容的窗口?
与Tagbar行为的唯一区别在于,当在元素上点击 Enter 时,Vim会在文档中插入元素(跳转到Toggle窗口之前的前一个窗口)。
例如,想象一下我正在编写一个Math文档。我希望有一个名为符号的文件,在某种程度上,我可以告诉
功能符号(带折叠位置)
integral
derivative
plus minus
希腊字母(折叠为ToggleBar)
alpha
beta
gamma
因此,当我输入ToggleMath时,会出现一个包含该内容的切换窗口,当我点击alpha时,会在我的文档中写入alpha。
**编辑 - 答案**
我已经调查了@romainl指出的第一篇文章。最好的解决方案是使用'thesaurus'选项来指示字典。在该文件中(让我们称之为dict.txt),放置这样的条目
'alphaα'
setlocal thesaurus = dict.txt
在插入模式下执行
CTRL-X CTRL-T
将插入alpha(弹出菜单将显示,数学行分为弹出菜单中的条目)。再次键入CTRL-X CTRL-T和
将插入α删除先前输入的单词alpha。
另一种解决方案(虽然并不完全是质疑)
如果您必须更快地键入(每次按CTRL-X CTRL-T),上面的解决方案会慢一点。您可以创建两个名为math_abb.txt和math_una.txt的文件。一个用于设置缩写,另一个用于未设置的缩写。然后,使用source命令加载它们。
答案 0 :(得分:0)
老实说,如果我决定在vim.org上搜索它,我不知道是否存在这样的插件,甚至不知道要使用哪些关键字。
但您可以像this answer一样利用Vim的字典完成功能,也可以使用SnipMate或UltiSnips之类的代码段扩展插件。
在字典完成后,您可以点击<C-w><C-k>
打开光标旁边的弹出菜单,其中包含字典中的所有项目。
例如,使用SnipMate,您可以拥有与grk
触发器关联的所有“希腊字母”片段。在插入模式下键入grk<tab>
会显示所有希腊字母的列表供您选择。
答案 1 :(得分:0)
这是使用markdown文档执行此操作的快速方法,该文档使用vim-markdown插件自动折叠。可能会与任何折叠设置一起使用。它在左侧窗口中显示顶级部分,在右侧窗口中显示完整文档。
程序:
:vsplit
(并根据需要减少左窗长度) :set foldlevel=0
在左侧窗口(显示为完全折叠) :set foldlevel=999
在右侧窗口(显示完全展开) :windo set scrollbind cursorbind
(这将在两个窗口上同时设置两个变量) 现在,当您浏览左侧窗口中的各个部分时,右侧窗口将自动同步位置。导航后,您仍然需要跳回到右侧窗口。