gpt4 book ai didi

vim - 在 Vim 中平滑滚动的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 05:24:24 25 4
gpt4 key购买 nike

Vim 中的主要滚动命令是:

  1. Ctrl-BCtrl-F,以及 PageUpPageDown 按整页滚动
  2. Ctrl-UCtrl-D 默认滚动半页
  3. Ctrl-YCtrl-E 滚动一行

每次前两者我都会失去视觉上下文,所以我养成了点击后者的坏习惯(Ctrl-YCtrl-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 底部滚动 scroll选项。
  • 可自定义的滚动速度(调整sleep命令的时间参数;我使用十毫秒)。 注意:就像减慢视频的帧速率一样,如果将平滑滚动减慢太多,则会出现不稳定滚动,而不是平滑滚动。但无论什么对你来说都是最好的。
  • 在正常或插入模式下工作。

注意:所有复制粘贴者,请记住 ^字符表示控制字符;复制粘贴将产生无效结果,必须手动输入!

  • ^YCTRL-V 然后 CTRL-Y
  • ^ECTRL-V 然后 CTRL-E

但是,<C-U><Enter>样式语法按字面意思输入这些字符; map 命令智能地将它们转换为控制字符。

使用鼠标

问题提到用鼠标滚动在 GVim 中效果很好,但需要键盘解决方案。对我来说,这意味着提问者可能对鼠标解决方案感兴趣(如果它可以在常规终端 Vim 中运行)。

对我来说,打开鼠标支持可以平滑地滚动鼠标滚轮。另外,对我来说,当我环顾四周(即在正常模式下)时,平滑滚动是最重要的,而不是在编辑时(在插入模式下),并且如果我不积极编辑,我的手需要停留在屏幕上。键盘始终被移除,因此效果很好。

基于this question不过,除了简单地打开鼠标之外,似乎有些人还必须进行更多手动设置(我只使用 set mouse=n ):

<小时/>

我的.vimrc有以下几行

 set mouse=a
map <ScrollWheelUp> <C-Y>
map <ScrollWheelDown> <C-E>
<小时/>

关于vim - 在 Vim 中平滑滚动的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4064651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com