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


21

有没有一种方法可以在当前行上方插入新行,而无需打开行(因此无需进入插入模式)?即,类似于“ O”,但未打开。


2
“开线”是什么意思?
Matteo Riva

“打开一行”是指从正常模式进入插入模式,这是当您按“ O”(哦)时发生的情况。
tmadsen 2010年

Answers:



29

您的请求的定义是O

从逻辑上讲,在上方插入新行将是O

要在光标之前插入:i
之后:a
在行(主行)之前:I
追加到行末:A

我认为最接近您的是I将光标置于行首。


也许我不清楚。情况是这样的:我处于普通模式,并且想要在保持当前模式的同时在我当前所在的行上方插入空白行。按下“ O”使我进入插入模式。也许没有办法,没关系,只是以为我会问:)
tmadsen 2010年

3
只需将其映射,m`O+Esc`
Josh K

1
好主意,没有考虑过。做了:noremap <leader> O O <ESC>
tmadsen 2010年

2tmadsen:您可以映射此<yourkey> O <ESC>
Dzung Nguyen 2010年

9
:h append()

它不会移动光标,可以让您插入任意多的行(空白行或空白行),并且不会修改前一个位置标记。

call append(line('.')-1, '')

是的,那是+1整洁!/ me更改了他的vimrc
akira

好吧,在脚本编写方面有一些优势。否则键入会有点矫kill过正。
卢克·赫米特

+1可以使解决方案无论设置如何都有效formatoptions
Micah Smith


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.