vim中是否有任何默认键,用于在当前线路之后创建新线路并保持在正常模式?

vim中是否有任何默认键,用于在当前线路之后创建新线路并保持在正常模式?,vim,Vim,在编辑代码时,我总是需要这个功能:在当前行之后创建新行,将光标移动到新行(保存当前缩进!),并保持在正常模式。例如(假设█ 是一个光标): 键入命令后,我需要如下所示: function a() { foonction() █ } 例如,如果我在插入模式下按,光标位于行的末尾,则可以达到相同的效果。o命令的作用也类似,但它会在我退出插入模式后删除缩进。所以我需要一个按键来插入一行 inb4 nmap:我知道如何映射一个命令来做这样的事情,但我想知道是否有一个标准的方法来做这件事

在编辑代码时,我总是需要这个功能:在当前行之后创建新行,将光标移动到新行(保存当前缩进!),并保持在正常模式。例如(假设█ 是一个光标):

键入命令后,我需要如下所示:

function a() {
    foonction()
    █
}
例如,如果我在插入模式下按
,光标位于行的末尾,则可以达到相同的效果。
o
命令的作用也类似,但它会在我退出插入模式后删除缩进。所以我需要一个按键来插入一行


inb4 nmap:我知道如何映射一个命令来做这样的事情,但我想知道是否有一个标准的方法来做这件事。

没有这样的键,但事实证明,我们可以通过四次击键来实现这一点(无缩进):
:pu

这是一个问题,答案是使用Ex命令
:put

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

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

有关更多信息,请阅读:帮助:放置

:put
将给定寄存器中的文本置于当前行之后,并使您处于正常模式<代码>:放将文本放在当前行上方的一行上

上面的示例使用
表达式
寄存器
=
put
命令发送空字符串。我们可以通过使用vim的黑洞寄存器,
\uu
:put\u
来减少这种情况

最后,它可以缩写为:
:pu
:pu_

另请参见:
:帮助寄存器

最后,请注意,这也是Tim Pope未受影响插件的一个特性

从未修改的自述文件:

有行映射<代码>[
]
在光标行前后添加换行符
[e
]e
将当前行与其上方或下方的行交换


您也可以使用

FYI,
S
将在正确的缩进级别启动插入模式。上述
:put
命令可以缩短为
:pu
:pu_。Tim Pope的unpaired.vim插件提供了一个非常类似的映射(
]
),以及许多其他有用的映射:
function a() {
    foonction()
    █
}
:put =''
:put! =''