#1 楼
您对视觉模式是正确的,但是您应该通过按<C-V>
尝试逐块视觉模式。 在逐行可视模式下,您可以选择所选内容的行和列。选择所需块的所需行后,可以按
I
(即Shift + i
),您现在处于插入模式,可以在其中添加空格。 按
<ESC>
时,新空格将添加到所选内容的所有行中。ref:http://usevim.com/2012/05/18/vim101 -visual-mode-2 /
#2 楼
要在多行行的开头添加空格,您还可以使用normal
命令。假设您具有以下文件:" foo
" bar
buzz
fizz
您可以选择要在其上添加空格的行,并使用命令
:'<,'> norm I
注意
I
后面的空格字符。该命令的意思是::'<,'> For the line I selected
norm Execute the following sequence of keystrokes as if I was in normal mode
I Insert at the beginning of the line the following characters
[space] A space
我选择要获得的前三行:
" foo
" bar
buzz
fizz
要获得更多功能,可以将
normal
命令与global
命令结合使用,以仅在与模式匹配的行上应用转换。如果要在前面的示例中的注释行之前添加空格,可以使用::g/"/norm I
将
norm I
应用于包含"
的行。请注意I
后的空格字符哪个会给您:
" foo
" bar
buzz
fizz
#3 楼
假设您要在7行的行首添加2个空格。方法1:
:set number
,然后我们可以在所需的行首添加空格。例如:22,29s/^/ /
,因此
22,29
是行范围,而:s
是:substitute
的缩写,而/^
是在行首搜索,而2个空格将给定范围内的行首替换为2个空格方法2:
:set shiftwidth=2
和:set number
和:22,29>
,其中>是在这种情况下用于增加2个空格的宽度评论
请注意,设置编号对于了解行数是有用的,但对您提到的命令没有影响。您可以设置nonumber或设置relativenumber,并且工作原理相同。
–statox♦
20年7月9日,11:35
评论
非常相似的问题,有一个有用的答案:多个光标位于所需的位置