一个非常简单的例子:我想写一个函数,并且已经有几个级别的缩进(单词“function”之前的选项卡)。我先写:
1 function doCoolStuff() {
2
3 }
然后从第3行到第2行向上一行并开始输入该函数的内容。但是,在我在第3行键入括号并向上移动一行后,vim不允许我通过删除第2行上的自动插入选项卡来执行此操作。因此,每次编写新函数时都必须手动插入制表符。就是这样:
当我键入函数头并按回车键时,它看起来像这样:
1 function doCoolStuff() {
2 ▊
3
Vim在第2行正确插入自动标签。
但是!
然后按Enter键,键入一个右括号并向上移动一行。 我希望它是这样的:
1 function doCoolStuff() {
2 ▊
3 }
但事实证明是这样,第2行没有任何标签:
1 function doCoolStuff() {
2 ▊
3 }
似乎是vim看到有一条完全由制表符组成的行并删除了制表符。如何禁止vim删除尾随标签?
答案 0 :(得分:3)
答案 1 :(得分:3)
您所看到的很可能是某种autoindent or cindent的结果。在输入内容之前,确实没有任何标签或空格。因此,当你离开那条线时,它实际上并没有剥离标签或空格,因为它首先不在那里。
我通常做的是向上移动到我想要开始输入的行,然后按 o 在下一行开始编辑(并且autoindent正确处理定位)。
答案 2 :(得分:1)
您可以使用DelimitMate或其他一些自动配对脚本或类似this answer of mine on a similar problem.
的内容