VIM:删除缩进不均匀的多行的前x个非空格字符

时间:2019-02-01 03:24:08

标签: vim

通过一致的缩进,我了解如何根据vim: delete the first 2 spaces for multiple lines

如果缩进不一致,该怎么办?

示例输入:

#for i in range(5):
  #print(i)

示例输出:

for i in range(5):
  print(i)

我尝试使用可视块模式+'6'转到行中的第一个字符,但是'6'不会像通常一样跳至行块中的第一个非白色字符模式。

2 个答案:

答案 0 :(得分:4)

很多方法。最简单的可能是视觉: V (选择) norm _x CR (对于视觉范围内的每一行,请转到第一个非-缩进字符并将其删除)。 :help V; :help :normal-range; :help _; :help x

但是...这应该不是问题。我建议您在同一列中使用#进行评论:

# for i in range(5):
#   print(i)

更好的是,抓住Tim Pope的Commentary插件,该插件可以轻松地用多种语言(包括Python)进行注释和取消注释。

答案 1 :(得分:0)

您可能可以在正则表达式中使用替换命令。

:%s/\(^\s*\)\S/\1/

%s在整个文件中运行替换
\(^\s*\)将行的开头和可选的空白字符分组
\S与第一个非空白字符匹配-如果您要删除3个字符,可以添加更多这样的字符
\1将替换对象设为第一组