我尝试了可视块,但可视块仅允许突出显示或删除多行字符。 />

评论

非常相似的问题,有一个有用的答案:多个光标位于所需的位置

#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