1

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

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

为此,我在 .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      

这些映射唯一丑陋的地方是我使用标记 P 只是为了返回上一个光标位置。我尝试使用 `` 代替,但它没有达到我的预期。

也许有一个更好的解决方案,否则这个片段对我来说效果很好。

我正在慢慢地在我的 .vimrc 中添加新的映射。我注意到这些<C-[a-z]>组合大多是免费的,而现有的组合非常无用(即<C-Q>,,<C-H>... <C-M>)。然后我决定将它们绑定到新的有用映射:

<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
…
4

2 回答 2

2

'您可以使用反引号来显式添加跳转,而不是使用命名标记。喜欢:

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
于 2014-05-18T21:12:57.633 回答
2

如果您想要一个还可以处理的强大映射[count],我的LineJuggler 插件包含]<Space>映射(以及其他)。这个特殊的映射也可以在unimpaired plugin中找到。

于 2014-05-19T06:17:57.733 回答