Tab与Vim中的Space首选项
Vim在选项卡Vs方面非常宽容。空间偏好。据我了解,该tabstop设置指示制表符的宽度。该shiftwidth设置指定使用<<和>>命令时要增加/减少多少列,而该softtabstop设置会影响Tab在插入模式下按键时要插入的空白量。如果expandtab启用,Tab键将插入softtabstop多个空格字符。而在expandtab关闭的情况下,按键将Tab插入与匹配的最小数量的Tab +空格字符softtabstop。(如果我错了,请纠正我。) 最后一点让我感到奇怪:是否有您不想要的实际案例shiftwidth == tabstop && tabstop == softtabstop?我想不到一个。就我而言,如果我可以在一次分配中将所有这三个值设置为相同的值,那将是最方便的。例如调用: :set stab=4 这相当于运行: :set tabstop=4 softtabstop=4 shiftwidth=4 谁能建议如何做到这一点? 更新 感谢这么远的答复太多PHP,霍布斯和kaiser.se。而不是单独答复每个人,我在这里更新问题。 Softtabstop,expandtab关闭 我在上面说过,在关闭expandtab的情况下,按Tab键会插入与匹配的Tab +空格字符,数量最少softtabstop。我支持这一点,但我认为我需要解释一下我的意思。我将通过一些示例来尝试这样做。要继续,请运行:set list以使您可以看到制表符。 tabstop=4 softtabstop=2 shiftwidth=4 noexpandtab 在插入模式下,按Tab键将插入2个空格字符。再按一次Tab键,而不是再插入两个空格字符(总共4个空格字符),而是用一个制表符替换前2个空格。制表符设置为4,因此单个制表符的宽度与4个空格相同。 tabstop=4 softtabstop=6 shiftwidth=4 noexpandtab 在插入模式下,按Tab键将插入1个制表符和2个空格。制表符的宽度为4,因此总宽度为6,这是使用3个字符实现的。第二次按Tab键将插入两个Tab字符,并删除先前插入的两个空格。总宽度为12,使用3个字符即可实现。 在这两个示例中,Vim都插入了与softtabstop相匹配的最小数量的制表符+空格字符。 如果我在关闭expandtab的情况下工作,我不会希望通过将softtabstop设置为不同于tabstop的值来实现额外的粒度控制。它仍然将是有益的我能够设置tabstop,softtabstop并shiftwidth用一个命令相同的值。 expandtab会使softtabstop冗余吗? tabstop=4 softtabstop=0 shiftwidth=4 expandtab 在插入模式下,按Tab键将插入4个空格。按下Delete键会删除一个空格-因此,如果您不小心按下Tab键,则必须退格4次。 tabstop=4 softtabstop=4 shiftwidth=4 expandtab 在插入模式下,按Tab键将插入4个空格。按退格键将删除4个空格。 如果我使用的是expandtab开机状态,则希望使用Delete键删除与Tab键插入相同的空格。所以在这种情况下,我也觉得这将是能够分配相同的值非常有用tabstop,softtabstop并shiftwidth同时进行。 快捷方式仍然有用 Vim提供了这么多的灵活性,这很好,但是我看不到自己需要它。我只希望能够选择选项卡的宽度,以及它是“硬”选项卡(使用制表符)还是“软”选项卡(由空格组成)。硬标签和软标签之间的切换很容易(:set expandtab!),但我希望设置标签的宽度更加简单,而不必费心使用3个不同的参数。 …