我的文件中有一些如下所示的文本:
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
允许您做与您想要的类似但不完全一样的事情。您可以选择一个可视块并向该批次应用一个命令。