如何在vim中滚动浏览大文件?

19

我有一个包含数千个字符的大文件。

我将光标移动到第3000个字符处。

如果我使用PageDownCtrl+D,文件将滚动,但光标将返回到第一个非空字符。

是否有选项可以设置在此类滚动后使光标保持在同一列?

我在Windows上使用gvim,在OpenVMSCygwin上使用vim时都会出现这种情况。

4个回答

29
CTRL-E - scroll down
CTRL-Y - scroll up

例如,<CTRL-E>会向下滚动100行。

如果您喜欢使用PageUpPageDownCtrl+D等,可以设置“nostartofline”选项。

:set nostartofline

7

很简单,使用移动键就可以实现。例如,要向下移动100行并保持光标在同一列,只需输入“100j”即可。

编辑:

好的,如果您想找到确切的答案,可以更进一步搜索,有一个选项可以完全满足您的需求:

:set nostartofline

1
你在 Phil 回答后 1-2 分钟发布了你的答案。我不得不做出选择。我选择了最快的。非常感谢。 - Luc M

3

最近的插件

我正在使用terryma/vim-smooth-scrolling插件,因为它提供了非常好的平稳滚动效果。


如果要安装,您可以使用Vundle

Bundle terryma/vim-smooth-scrolling

如文档所述,您可以设置 3 个参数:distancedurationspeed

我在我的.vimrc文件中使用了这个:

noremap <silent> <c-b> :call smooth_scroll#up(&scroll*2, 10, 4)<CR>
noremap <silent> <c-f> :call smooth_scroll#down(&scroll*2, 10, 4)<CR>

1

这可能并不完全适合您的情况,但如果它能更轻松地分割行,您可以在某个特定字符后(例如 ':')将它们分割开。

:%s/:/\r&/g

或者每80个字符

:%s/.\{80}/&\r/g

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接