在Vim中平滑滚动的最好方法是什么?
Vim中的主要滚动命令是:
> Ctrl-B和Ctrl-F,以及PageUp和PageDown按整页滚动 我每次都失去前两者的视觉上下文,所以我开发了重复击中后者的不良习惯(Ctrl-Y和Ctrl-E)。 由于目前没有第一方支持平滑滚动,什么是最不反对的解决方法/插件? 我使用Vim和GVim取决于任务,并很高兴,如果没有一个真正好的黑客为两个工作单独定制它们。鼠标滚轮在GVim中工作得很好,但我正在寻找基于键盘的解决方案。
更新:我现在推这个代码,重构有点根据指南在:help write-plugin,到一个
Github repo。
使用键盘 这里是我在我的.vimrc: function SmoothScroll(up) if a:up let scrollaction="^Y" else let scrollaction="^E" endif exec "normal " . scrollaction redraw let counter=1 while counter<&scroll let counter+=1 sleep 10m redraw exec "normal " . scrollaction endwhile endfunction nnoremap <C-U> :call SmoothScroll(1)<Enter> nnoremap <C-D> :call SmoothScroll(0)<Enter> inoremap <C-U> <Esc>:call SmoothScroll(1)<Enter>i inoremap <C-D> <Esc>:call SmoothScroll(0)<Enter>i 特征: >在Vim滚动选项的基础上滚动。 注意:所有的复制和粘贴,记住,^字符表示控制字符;复制粘贴将产生无效的结果,这些必须手动输入! > ^ Y – CTRL-V,然后CTRL-Y 然而,< C-U>和< Enter>样式语法字面上键入这些字符; map命令将它们智能地转换为控制字符。 使用鼠标 这个问题提到使用鼠标滚动在GVim中效果很好,但是需要一个键盘解决方案。这暗示了asker可能对鼠标解决方案感兴趣,如果它在常规终端Vim中工作。 对我来说,打开鼠标支持允许平滑滚动通过鼠标滚轮。此外,对我来说,平滑滚动是最重要的,当我环顾四周(即在正常模式),而不是当我正在编辑(在插入模式),如果我没有积极编辑,需要我的手保持在键盘总是被删除,所以这个工作得很好。 在this question的基础上,似乎有些人需要做一些更多的手动设置,只是简单地打开鼠标(我只是使用set mouse = n): 我的.vimrc有以下几行 set mouse=a map <ScrollWheelUp> <C-Y> map <ScrollWheelDown> <C-E> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |