5

在 Vim 正常模式下,您可以按ctrl+ectrl+y分别向下和向上滚动。我正在尝试制作一个键绑定,让我也可以从插入模式执行此操作。这就是我所拥有的:

" Scroll up and down while in insert mode.
inoremap <C-e> <C-o><C-e>
inoremap <C-y> <C-o><C-y>

这按预期工作,但它有一个很大的缺陷。它离开插入模式,滚动,然后重新进入插入模式。这与撤消、重复命令等有关,我希望能够在不离开插入模式的情况下上下滚动。想法?

4

2 回答 2

9

你可以看一下:h i_CTRL-X_CTRL-E,这是一个内置的插入模式滚动映射:

                    *i_CTRL-X_CTRL-E*
CTRL-X CTRL-E       scroll window one line up.
        When doing completion look here: |complete_CTRL-E|

                    *i_CTRL-X_CTRL-Y*
CTRL-X CTRL-Y       scroll window one line down.
        When doing completion look here: |complete_CTRL-Y|

所以在你的情况下,这可能会奏效:

inoremap <C-e> <C-x><C-e>
inoremap <C-y> <C-x><C-y>
于 2013-01-13T20:55:18.577 回答
2

undojoin 修复了它的撤消部分:

ino <C-E> <Space><BS><ESC><C-E>:undojoin<CR>gi

<Space><BS>序列确保有一个撤消块可以加入。

令人惊讶的是(对我来说)这对破损没有帮助.,所以这可能会让你像现在一样烦人......

于 2013-01-13T21:21:27.833 回答