在Vim普通模式下,您可以按 ctrl + e 和 ctrl + y 向下滚动分别。我正在尝试创建一个键绑定,让我也可以从插入模式执行此操作。这就是我所拥有的:
" Scroll up and down while in insert mode.
inoremap <C-e> <C-o><C-e>
inoremap <C-y> <C-o><C-y>
这有点像预期,但它有一个很大的缺陷。 离开插入模式,滚动,然后重新进入插入模式。这在撤消,重复命令等方面是相关的,我希望能够在不离开插入模式的情况下向上和向下滚动。想法?
答案 0 :(得分: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>
答案 1 :(得分:2)
undojoin修复了它的撤消部分:
ino <C-E> <Space><BS><ESC><C-E>:undojoin<CR>gi
<Space><BS>
序列确保有一个撤消块可以加入。
令人惊讶的是(对我来说)这对.
破坏没有帮助,所以这可能会让你像现在一样烦恼...