我在我的vimrc中设置了tabstop=4
和expandtab
。有没有办法让Vim根据当前正在编辑的文件中使用的内容自动设置标签宽度值,或者我每次编辑不使用4个空格的内容时是否必须手动设置它标签
答案 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行样本,以确定expandtab
,tabstop
和shiftwidth
参数。
它使用一种相当复杂的算法,该算法实际上使用不同的制表符大小来渲染样本,以根据各种启发式算法找出哪种算法能产生最佳的线对线对齐。
它是用C语言编写的,速度非常快(加载文件时没有明显的延迟),除了标准C库中的一些功能外,没有任何依赖关系。