Vim中的弹性制表符?


26

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

有没有办法在Vim中设置弹性的制表符?我也很适合Neovim的解决方案,因为无论如何我都会使用它。


2
Neovim对此有一个功能请求
迦勒

Answers:


18

据我所知,在插件中没有实现此目的的合理方法。

有一个修补程序,但是很难预测何时/是否会合并该修补程序。


6
任何人,如果您希望将其合并,请在vim-dev上为其打气(并回复其对您的工作效果)
Christian Brabandt 2015年

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

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

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

5
提到的补丁已合并为8.1.105
Christian Brabandt

8

注释:从8.1.105版本开始+vartabs,感谢Christian Brabandt,vim具有编译时功能!

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


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

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

1
vartabstop不足以用​​于弹性制表位,因为制表位在代码块之间不会变化。vartabstop适用于整个文件。
阿隆·格里菲斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.