Answers:
vim!)xdotool或triggerhappy。最后,显示您的大写锁定状态(无法在Vimscript中完成。)……
                    xev -q,cat /proc/bus/input/devices查找要查询的设备和/ evtest或thd ... --dump /dev/input/event<#>检查状态等信息。如果您绝对必须在系统范围内进行重新映射,请至少交换两个锁,例如caps <-> num-但是问题更是使人忘记了它的存在,因为如果您以前想要它,那么无论使用哪种地图,都将继续使用它。有在文件/用户/系统之前破坏Vim的风险。
                    confirm()。另外,除了将大写锁定映射到ctrl外,还可以将其映射到Vim理解但未映射的键或组合,然后在插入/替换模式下手工或通过类似github.com/tpope/的方式模拟大写锁定。vim-capslock。您可能在Vim之外不需要它,但是如果需要,可以编写一个xmodmap脚本来还原您的更改,或者查看该程序是否支持自己的映射(并做笔记。)
                    另外:
Ctrl- y和Ctrl- e仅在将光标移出屏幕时才更改其位置。
:help CTRL-E说Mnemonic: Extra lines.
                    Vim要求光标始终处于当前屏幕中,但是,您可以将当前位置滚动到书签,然后返回到原来的位置。
mg  # This book marks the current position as g (this can be any letter)
<scroll around>
`g  # return to g
Ctrl-O进行一次非常出色的操作,而“后退,句号”则使您回到上次编辑的位置。
                    mg,滚动,用标记位置,'g就可以了。现在,您可以调用可配置的键来移动,这就像光标从未离开当前位置。Voilá!
                    这是我在vimrc中的解决方案:
"keep cursor in the middle all the time :)
nnoremap k kzz
nnoremap j jzz
nnoremap p pzz
nnoremap P Pzz
nnoremap G Gzz
nnoremap x xzz
inoremap <ESC> <ESC>zz
nnoremap <ENTER> <ENTER>zz
inoremap <ENTER> <ENTER><ESC>zzi
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza
这样光标将停留在屏幕中间,并且屏幕将向上或向下移动。
:set scrolloff=4将要求光标始终与窗口的顶部或底部至少相隔4行,因此您始终至少要有一点上下文。
                    zEnter 确实满足了这个问题的要求。
它可以在zz无法正常工作的地方工作(在没有特殊.vimrc的Ubuntu 2016.04 LTS上为vim 7.4.1689)
有时,使用K和J键滚动文本很有用,因此我在.vimrc(也绑定到zs)中具有此“滚动模式”功能。
请参见scroll_mode.vim。
我的滚动助记符...
除其他答案外,还要注意ze和zs,其含义是:将屏幕移至光标的左/右(不移动光标)
+-------------------------------+
^                               |
|c-e (keep cursor)              |
|H(igh)             zt (top)    |
|                   ^           |
|           ze      |      zs   |
|M(iddle)  zh/zH <--zz--> zl/zL |
|                   |           |
|                   v           |
|L(ow)              zb (bottom) |
|c-y (keep cursor)              |
v                               |
+-------------------------------+
还要查看键盘上hand l和tand b和(使用qwertz键盘)c-e和c-y(也可能是“ y”指向底部)在键盘上的位置,以记住屏幕的移动位置。