vim: 如何去掉整个文件的6个前导字符?

vim: how to remove 6 leader characters of a whole file?

我有一个像

这样的文本文件
00001 This is line 1
00002 This is line 2
10001 ??
30004 xccddd

我想删除所有行的前 6 个字符。是否有一行 vim 普通模式命令可以做到这一点?

您可以通过以下方式删除它们:

  • :%normal! 6x

%: 文件的所有行

normal!: 在正常模式下执行命令

6x:删除6个字符

  • :%s/^.\{6}//

只需向族中添加一个(递归)宏解决方案。它以 "golf" 的方式击败了 :s:norm 命令。^_^

qq6x+@qq@q

它使用递归宏,这样我们就不必按9999@q

除了其他答案,您还可以使用视觉块模式。

  • 将光标移动到第一行,第一个字符:gg^
  • 调用视觉块模式:Ctrl+v
  • Select 要删除的块:G6lG 向下移动到文件末尾,然后向右移动 l 六次)
  • 删除块:x