Vim中是否有插件或内置功能允许弹性制表符?我搜索了一下,发现一些参考资料说在Vim中是不可能的,但是它们已经很老了。

在Vim中是否可以有弹性的制挡片?我也很适合Neovim的解决方案,因为这还是我一直使用的方法。

评论

Neovim上对此有一个功能请求。

#1 楼

据我所知,没有任何合理的方法可以在插件中完成此操作。 >

评论


任何人,如果您希望将其合并,请在vim-dev上为它加油(并回复此方法对您的效果如何)

–克里斯蒂安·布拉班特(Christian Brabandt)
15年4月18日在12:06

该补丁似乎实际上并不是弹性的制表符。相反,它是可变的制表符,但是您必须提前设置停止点。就其本身而言,这很好,但实际上并不是问题所在。

–卡莱布
16 Mar 7 '16 at 10:29

@Caleb,一旦合并了var tabstop补丁,您就可能编写一些脚本。

–克里斯蒂安·布拉班特(Christian Brabandt)
16 Mar 7 '16 at 18:54

@克里斯蒂安,不,你不能。参见网上讨论,但这不能作为vim中的脚本/插件来完成(即使使用带有tabstop补丁的变量也是如此),因为它仅保留一种方法来渲染所有行。它只是没有公开完成这项工作所需的条件。

–卡莱布
16年3月7日在19:17

提到的补丁已自8.1.105起合并

–克里斯蒂安·布拉班特(Christian Brabandt)
18年6月25日在8:16

#2 楼

注释:从8.1.105版本开始,vim具有+vartabs的编译时功能,这要归功于Christian Brabandt!

据我所知,这允许实现弹性的制表位。请参阅实际的拉取请求。

评论


您可以链接到文档或解释如何实现。这可能对将来的读者有所帮助,而不仅仅是指向提及它的用户的链接。

–卢卡斯
18年7月23日在12:50

:set vartabstop = 4,20,10,8-这将使第一个制表符变4个空格,第二个制表符变20个空格,第三个制表符10个空格,随后所有制表符变8个空格。

–pdwalker
18/12/17在11:38

vartabstop不足以用​​于弹性制表位,因为制表位在不同代码块之间不会发生变化。 vartabstop适用于整个文件。

–阿伦·格里菲斯(Aron Griffis)
19年2月14日,下午3:12