我有一个包含数千个字符的大文件。
我将光标移动到第3000个字符处。
如果我使用PageDown或Ctrl+D,文件将滚动,但光标将返回到第一个非空字符。
是否有选项可以设置在此类滚动后使光标保持在同一列?
我在Windows上使用gvim,在OpenVMS和Cygwin上使用vim时都会出现这种情况。
我有一个包含数千个字符的大文件。
我将光标移动到第3000个字符处。
如果我使用PageDown或Ctrl+D,文件将滚动,但光标将返回到第一个非空字符。
是否有选项可以设置在此类滚动后使光标保持在同一列?
我在Windows上使用gvim,在OpenVMS和Cygwin上使用vim时都会出现这种情况。
CTRL-E - scroll down
CTRL-Y - scroll up
例如,<CTRL-E>
会向下滚动100行。
如果您喜欢使用PageUp、PageDown或Ctrl+D等,可以设置“nostartofline”选项。
:set nostartofline
很简单,使用移动键就可以实现。例如,要向下移动100行并保持光标在同一列,只需输入“100j”即可。
编辑:
好的,如果您想找到确切的答案,可以更进一步搜索,有一个选项可以完全满足您的需求:
:set nostartofline
我正在使用terryma/vim-smooth-scrolling插件,因为它提供了非常好的平稳滚动效果。
如果要安装,您可以使用Vundle:
Bundle terryma/vim-smooth-scrolling
如文档所述,您可以设置 3 个参数:distance、duration 和 speed。
我在我的.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>
这可能并不完全适合您的情况,但如果它能更轻松地分割行,您可以在某个特定字符后(例如 ':')将它们分割开。
:%s/:/\r&/g
或者每80个字符
:%s/.\{80}/&\r/g