vi命令添加空白行?


24

在vi中,我可以使用oO添加空白行并进入插入模式。但是,如果我想保持命令模式怎么办呢?

在谷歌搜索中,我看到了一些向我的vimrc添加内容的建议,但似乎应该有一种更简单的方法(该方法将始终有效)。

Answers:


25

根据VIM常见问题解答,您可以使用以下:put命令:

12.15。如何在不进入插入模式的情况下在当前行上方/下方插入空白行?

您可以使用“:put” ex命令插入空白行。例如,尝试

:put =''
:输入!=''

有关更多信息,请阅读

:help:put

但实际上添加起来更容易:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

给你.vimrc。这样,您可以按Enter或来Shift-Enternormal mode当前行下方或上方插入空白行。当然,替代<Enter><S-Enter>使用您的首选钥匙。


15

使用的部分魅力VI在于具有用于操作文本的命令模式和用于添加文本的编辑模式。这使您无需按CTRL键即可完成任何事情。

其他建议可能有用-我没有尝试过-但它们似乎需要很多字符或VI过多地操作您的环境。

尝试对要添加的每个新行使用,o[ESC]然后使用,然后添加5行。这要快得多,并且可以在任何安装的上始终使用。.5.VI


1
您可以.重复使用,但也可以这样做<number>o<esc>,例如:5o<esc>
bollovan 2011年

1
那肯定行得通。但是我喜欢在多次执行命令之前先查看该命令将如何影响文档。我无法告诉您我o'd在VI中添加了多少段新段落,只是发现漂亮的段落实际上是六行小心地用断行/单词包裹的行。
Glorytoad 2011年


1

这将在当前行之后添加一个空白行:

:put _ 

或者,在开始处指定一行。


0

在Vim 7.3上: <number>o<esc>仅创建一个空行。


好吧,通过添加<esc>您再次从插入模式转到命令模式。我认为他正在寻找根本不插入模式的答案。
Bernhard 2013年

哦! 我忘记了使用<esc>退出插入模式。在这种情况下,它将起作用。甚至会复制以下所有行中编辑的行。
哈基姆


0

要在保持命令模式的同时在当前行之后插入空白行,请使用:

: r !echo

这是“ r文件中的ead”命令,但是我们没有给它提供文件名,而是告诉它读取shell命令(!)的输出。该shell命令echo只是输出空白行。插入空白行后,您将保持在命令模式。


-2

我很惊讶没有其他人提到这一点:

在命令行模式下,先使用“ r”,再使用“ Enter key”。

晚了晚了七年:)


1
否则,您将退出命令模式,并用空白替换当前行。
杰夫·谢勒

我不确定@Jeff在说什么。我对该命令的观察是:(1)如果您当前在空白行上,它将不起作用;(2)否则,它将删除光标下的字符。
斯科特,

我误会了;r确实替换了当前字符。仍将您带入命令模式。
杰夫·谢勒

同意 这是一个限制:必须在非空行+行前的空白处完成。没想到这一点。谢谢。
Akhilesh Siddhanti
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.