为什么不能在7到10行的开头删除四个白色空白?

时间:2016-03-07 11:38:57

标签: vim

for (int i = 0; i < Products.Rows.Count; i++)
{
    DataGridViewRow dr = Products.Rows[i];
    if (dr.Selected == true)
    {
        Products.Rows.RemoveAt(i); 
    }
}

我想从7到10行开始删除四个白色空白,为什么我得到奇怪的结果?
在我的vimrc中,设置softtabstop = 4。 enter image description here

enter image description here

仅在第7行删除了4个空格 从8到10行,删除了4个以上的白色空白,为什么?

3 个答案:

答案 0 :(得分:1)

您可以使用<命令。

取决于您的shiftwidth设置,您可以尝试:

:7,10 < 

答案 1 :(得分:0)

您的文件中似乎有混合标签和空格。如果您只想替换空格,请说明。

:7,10s/^ \{4}//g

答案 2 :(得分:0)

命令:7,10s/^.\{4}//g删除每行的前四个字符,在您的情况下可能是tabstop字符空格字符。

更具体地说:

  • 在第7行中,前导空格由20个空格字符(' ')组成,其中4个被移除,这导致border:...向左移动4列。

  • 在第8-10行中,前导空格包含2个制表符(\t)和4个空格字符。这是因为制表符停止字符最多仍为8列宽(有关vim中制表符的更多信息,请阅读this techblog)。现在,如果删除前4个字符,则只剩下2个空格字符。

但是,要实现所需的缩进,您可以使用缩进命令<<>>(取自this answer):

普通模式中,将光标放在要缩进的第一行上,然后按4<<,其中4是受影响的行数<< 1}}是向左移动一个缩进级别的命令。