从文件中获取标签宽度

时间:2014-09-21 00:16:33

标签: vim tabs spaces

我在我的vimrc中设置了tabstop=4expandtab。有没有办法让Vim根据当前正在编辑的文件中使用的内容自动设置标签宽度值,或者我每次编辑不使用4个空格的内容时是否必须手动设置它标签

3 个答案:

答案 0 :(得分:3)

您可以尝试vim-sleuth

  

此插件会自动调整“shiftwidth'和' expandtab'启发式地基于当前文件,或者,在当前文件是新的,空白或其他不足的情况下,通过查看当前和父目录中的相同类型的其他文件。代替调整“softtabstop',' smarttab'已启用。

答案 1 :(得分:1)

另一个插件YAIFA

  

此插件会自动尝试检测文件中的缩进类型,并设置Vim的选项以保持这种状态。它识别三种类型的缩进:

     

1.-空格:仅使用空格进行缩进。

     

2.-标签:仅使用标签。

     

3.-混合:使用制表符和空格的组合。例如:一个标签代表8个空格,但每个缩进级别是4个空格。

     

vimrc中设置的'expandtab'和'shiftwidth'的值将用作默认值。

它就像一个魅力。

答案 2 :(得分:0)

autotab.c分析文件的多达5000行样本,以确定expandtabtabstopshiftwidth参数。

它使用一种相当复杂的算法,该算法实际上使用不同的制表符大小来渲染样本,以根据各种启发式算法找出哪种算法能产生最佳的线对线对齐。

它是用C语言编写的,速度非常快(加载文件时没有明显的延迟),除了标准C库中的一些功能外,没有任何依赖关系。