在Vim中的当前行上方或下方插入空行

在Vim中的当前行上方或下方插入空行,vim,insert,mapping,lines,blank-line,Vim,Insert,Mapping,Lines,Blank Line,我最近很惊讶自己想要在正常或插入模式下在当前行的上方或下方插入空行 我通常在代码中添加空行,以便更好地阅读或正确地分隔代码块 为此,我在.vimrc中使用以下命令: " Add empty line above and below the current line nnoremap <silent> <C-K> mP:pu! _<cr>:']+1<cr>`P inoremap <silent> <C-K> <esc&g

我最近很惊讶自己想要在正常或插入模式下在当前行的上方或下方插入空行

我通常在代码中添加空行,以便更好地阅读或正确地分隔代码块

为此,我在.vimrc中使用以下命令:

" Add empty line above and below the current line
nnoremap <silent> <C-K> mP:pu! _<cr>:']+1<cr>`P
inoremap <silent> <C-K> <esc>mP:pu! _<cr>:']+1<cr>`Pa
nnoremap <silent> <C-J> mP:pu _<cr>:'[-1<cr>`Pa
nnoremap <silent> <C-J> <esc>mP:pu _<cr>:'[-1<cr>`Pa      
“在当前行的上方和下方添加空行
nnoremap mP:pu!\u:']+1`P
inoremap mP:pu!:']+1`Pa
nnoremap mP:pu:'[-1`Pa
nnoremap mP:pu:'[-1`Pa
这些映射唯一不好的地方是我使用标记p只是为了返回到上一个光标位置。我尝试使用``来代替,但它没有达到我预期的效果

也许有一个更好的解决方案,否则这个代码片段对我来说非常有用

我正在慢慢地在我的.vimrc中添加新映射。我注意到
组合大部分是免费的,而现有的组合非常无用(即
)。然后我决定将它们绑定到新的有用映射:

<C-N> New file
<C-S> Save (:update!)
<C-P> CtrlP mixed mode
<C-S-P> CtrlPCmdPalette
<C-B> CtrlP buffers mode
<C-D> <C-C>ciw
…
新文件
保存(:更新!)
混合模式
CtrlPCMD调色板
CtrlP缓冲区模式
ciw
…

您可以使用backtick'来显式添加跳转,而不是使用命名标记。例如:

nnoremap <c-k> m`O<esc>``
nnoremap <c-j> m`o<esc>``
inoremap <c-j> <esc>m`o<esc>``a
inoremap <c-k> <esc>m`O<esc>``a
nnoremap m`O``
nnoremap m`o``
inoremap m`o``a
inoremap m`O``a

您可以使用backtick'来显式添加跳转,而不是使用命名标记。例如:

nnoremap <c-k> m`O<esc>``
nnoremap <c-j> m`o<esc>``
inoremap <c-j> <esc>m`o<esc>``a
inoremap <c-k> <esc>m`O<esc>``a
nnoremap m`O``
nnoremap m`o``
inoremap m`o``a
inoremap m`O``a

如果您想要同时处理
[count]
的健壮映射,my包含
]
映射(以及其他映射)。此特定映射也可以在中找到。

如果您想要同时处理
[count]
的健壮映射,my包含
]
映射(以及其他映射)。这个特殊的映射也可以在中找到。

为什么在正常模式下
o
o
不为您做呢?原因很多。在插入模式下,我需要返回到正常模式,然后返回到插入模式,并将光标恢复到其原始位置。我不能用一个按键划过来归档它。映射很好,因为se它们可以从所有模式访问。为什么正常模式下的
o
o
不为您执行此操作?原因很多。在插入模式下,我需要返回到正常模式,然后返回插入模式,并将光标返回到其原始位置。我无法用一个单键笔划将其归档。映射很好,因为它们是可访问的所有模式都可以。好的,我不知道m`。谢谢好的,我不知道m`。谢谢