2011-12-03 52 views
15

我可以通过设置display = lastline来得到窗口的底部显示部分线条在vim中,如何在启用包装时通过屏幕线连续滚动?

是否有类似的选项可以让部分线条显示在窗口的顶部?

如果没有这个功能,当显示的最上面的文件行被包装成多个屏幕行时,我的vim仍然会滚动(向下)超过1个屏幕行。

例如,在下列情况下,当我按下C-E时,我的vim将向下滚动3个屏幕线。有没有办法让它只滚动一个屏幕行,这样只有行1中的前两个字被隐藏,但是下面的3个字仍然显示?这对编辑长段落文本非常有用。

注:我指的是整个屏幕的滚动,而不是光标的移动。

 
------------------ 
1 abcdefg abcefg 
    abcasdfsa sdfsf 
    sdfc 
2 adfadf 
3 adfadf 
4 adfadf 
------------------ 
+4

我会建议首先接受你以前的问题的一些答案,这将使每个人都对你的问题更感兴趣。 – deviousdodo

+0

[vim在长行(屏幕行)中移动hjkl的可能的重复](http://stackoverflow.com/questions/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines)(或请参阅http://stackoverflow.com/search?q=vim+move+screen+lines) – sehe

+0

@draevor感谢您的建议。没有注意到之前有一个滴答声:) – neuron

回答

7

我不认为有可能做到你想要的。

这里是我得到的描述,当我键入:help CTRL-E

               CTRL-E 
CTRL-E      Scroll windows [count] lines downwards in the buffer. 
          Mnemonic: Extra lines. 

注意的是,虽然它说,它正在滚动窗口,它也提到,它是滚动的缓冲线。你真的一次只滚动一个(包装)行。

我不认为有另一种解决方法。

我可以得到窗口底部通过设置显示=显示部分行lastLine所

我觉得display=lastline是一个错误的解决方案 - 你仍然滚动相同数量,你就必须更加明显。

解决这个真正的办法是禁用包裹

:set nowrap 

编辑

一些相关的线程表明,“通过网线滚动”功能正在考虑中,但需要一段时间才能实施:

+1

如果你有一条很长的线,当包装不适合你的窗口时,这种问题会出现问题:/(边界案例,但仍然... – Rook

+4

@ldigas:我遇到过很多次,所以我不知道有多少边界情况是真的,我认为'display = lastline'部分地解决了显示问题,但肯定不是可用性问题 –

+0

@ MerlynMorgan-Graham感谢您的信息!应该坚持使用其他编辑器进行长段编辑。 – neuron

1

对于任何人阅读此线程:

在VI stackexchange This thread提供了跨包线略哈克(但可用的)解决方案,以视觉滚动。