在 Vim 编辑器中删除一组行的空格

sai*_*y2k 12 vim text-processing

我在文件中有一些类似以下的文本:

  sample text
    some random text
            even more random text
text with no indent
 worst indention
Run Code Online (Sandbox Code Playgroud)

我需要删除每一行之前的空白区域。对于一行,我所做的是 0dw

我可以使用 . 但是通过手动导航到下一行。

但是有没有办法将“0dw”应用于那些行块?

我想有一种使用宏的方法,但我以前没有使用过它们。但如果没有其他选择,我愿意学习它们。

Nik*_*ley 10

:%s/^\s\+
" Same thing (:le = :left = left-align given range):
:%le
Run Code Online (Sandbox Code Playgroud)

在此处了解更多信息 http://vim.wikia.com/wiki/Remove_unwanted_spaces

如果要对特定范围的行执行此操作:

:19,25s/^\s\+//
Run Code Online (Sandbox Code Playgroud)

顺便说一句,开始学习 vim 的最好方法是执行vimtutor命令,它会教你如何在 Vim 编辑器中使用 Vim。

  • +1 vimtutor 提及以及一个很好的答案。 (3认同)

Cal*_*leb 7

另一种方法是使用 VIM 的缩进工具(通常绑定到</ >)。首先,您需要某种方式来指明哪些行会受到影响。您可以使用视觉选择模式或任何其他方式指定要影响的行范围,然后使用任意高的数字或缩进级别来删除。9<通常可以很好地从当前行中删除至少 9 级可能的缩进(制表符/空格)。