Vim:在当前行上方插入空行(未打开,即不进入插入模式)

tma*_*sen 26 vim

有没有办法在当前行上方插入新行,而无需打开该行(因此无需进入插入模式)?也就是说,像“O”一样,但没有开口。

Jos*_*h K 33

您的请求的定义是O.

从逻辑上讲,在上面插入新行时将是O.

在光标前插入:i
After:a
行前 (home):I
追加到行尾:A

我认为你会来的最接近的是I将光标放在行的开头。

  • 只需映射它,`m\`O+Esc\`` (3认同)
  • 也许是我没说清楚。场景是这样的:我处于正常模式,想要在当前模式上方插入一个空行,同时保持正常模式。按“O”使我进入插入模式。也许没有办法做到这一点,没关系,只是想我会问:) (2认同)

小智 10

我使用 Tim Pope 的插件unimpared,它有一个专门用于此目的的命令:

[<space>

如果你想在你所在的行后添加一个空格:

]<space>


Luc*_*tte 9

:h append()
Run Code Online (Sandbox Code Playgroud)

它不会移动光标,它可以让您根据需要插入任意数量的行(空行或非空行),并且不会修改前一个位置标记。

call append(line('.')-1, '')
Run Code Online (Sandbox Code Playgroud)


Mat*_*iva 5

您可以映射您喜欢的任何键或键序列

m`O<ESC>``
Run Code Online (Sandbox Code Playgroud)

这会在当前行上方插入一个空行,使您处于正常模式且不更改光标位置。