如何在空文件(vim)中以可视块模式(Ctrl+v)选择矩形区域?

如何在空文件(vim)中以可视块模式(Ctrl+v)选择矩形区域?,vim,viemu,Vim,Viemu,我可以很容易地在文件中选择一个矩形区域,只要该区域包含文本、空格或任何内容。我用视觉块模式和运动键来做。 但是,当我试图在一个新文件或任何没有文本的文件中创建这样的区域时,我做不到。 有没有办法通过自动填充空间来“扩展”这个区域?还是我走错了方向 我想要这个的原因是: 我使用vim创建了一个新文件,然后想创建一个类似以下内容的注释块: ############################################## #

我可以很容易地在文件中选择一个矩形区域,只要该区域包含文本、空格或任何内容。我用视觉块模式和运动键来做。 但是,当我试图在一个新文件或任何没有文本的文件中创建这样的区域时,我做不到。 有没有办法通过自动填充空间来“扩展”这个区域?还是我走错了方向

我想要这个的原因是:

我使用vim创建了一个新文件,然后想创建一个类似以下内容的注释块:

##############################################
#                                            #
#  My comment goes here                      #
#                                            #
##############################################
我可以使用Ctrl+v+运动键对现有文本执行此操作,然后使用r创建一个填充磅的区域。然后类似地,用空格切掉内部矩形

如何在新文件上使用此技术


谢谢。

如果要在新文件中创建这样的块,可以执行类似50iEscY5P的操作

所以它是50次插入,然后拉扯电流线,放5次。这将为您提供一个50x5的块


当然,你仍然需要做,无论你做什么,都可以从文章中的评论栏中找到答案

我不认为有任何选择不存在的文本的方法,但简单的解决方法是在它的种子中添加76a yy4p之类的东西。。。因此,画76个空格,然后再复制4次。除了Brian Rasmussen给出的非常好的答案外,我所知道的几乎完全符合您要求的唯一方法是使用virtualedit模式。这将不允许您在不存在的行上进行编辑,但允许您在现有行的末尾之外进行编辑。因此,要将当前行转换为符号负载,可以执行以下操作:

:set virtualedit=all
v50lr#
要创建50x5块,可以创建4个新的空行,然后执行相同的操作:

:set virtualedit=all
4o<ESC>
<C-V>4k50lr#
见:


等等。

公认的答案提到使用

:set virtualedit=all
但是,您可以在所有模式下启用virtualedit,这可能不是您想要的。实际上,还有一个选项可以在“仅块编辑”模式下启用它:

:set virtualedit=block
这是我放在vimrc里的东西

:help function
:help 'virtualedit'
:help command
:help nmap
:help repeat()
:help append()
:help add()
:help getpos()
:help :exe
:set virtualedit=all
:set virtualedit=block