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

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

我的文件中有一些如下所示的文本:

  sample text
    some random text
            even more random text
text with no indent
 worst indention

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

我可以使用 重复相同的命令。但通过手动导航到下一行。

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

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

答案1

:%s/^\s\+
" Same thing (:le = :left = left-align given range):
:%le

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

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

:19,25s/^\s\+//

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

答案2

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

答案3

我有方法通过以下简单步骤来做到这一点:

1. press `v` to go to visual selection mode
2. select the lines you want to affect
3. :'<,'>normal 0dw

第三步说明:

0导航到行首。

dw删除单词(空格)。

normal应用命令0dw

'<,'>在视觉模式下对所有选定的线重复法线。

答案4

ctrl+v允许您做与您想要的类似但不完全一样的事情。您可以选择一个可视块并向该批次应用一个命令。

相关内容