第一部分的作用:
前缀N为按下的数字。
- (N)Ctrl-E:窗口向下滚动N行,默认向下滚动一行。(光标没有移动)
这个跟下方向键有点区别怎么理解呢?
首先,你按下方向键,光标会向下移动,当到达最后一行时在按下方向键,会把后面的内容显示在最后一行,以此类推。(注意:光标实际是移动的)
Ctrl-E跟下方向键的 区别是: 假设光标在最后一行,当按下Ctrl-E后面的内容继续显示,而且光标上移了一行,发现光标未离开刚才停留的行上。一直持续,光标到了屏幕顶,迫使光标移动。
有一个很好的比喻可以理解,想象前面有一个打印机,需要进纸,Ctrl-E就是一个进纸的过程。 - (N)Ctrl-Y:窗口向上滚动N行,默认向上滚动一行。(光标没有移动)
理解:跟Ctrl-E相反,想象成打印机出纸的内容。 - (N)Ctrl-D:窗口向下滚动N行,默认滚动窗口行数的一半。(光标没有移动)
- (N)Ctrl-U:窗口向上滚动N行,默认滚动窗口行数的一半。(光标没有移动)
- (N)Ctrl-F: 窗口向下滚动N页。(光标被迫移动)
- (N)Ctrl-B: 窗口向上滚动N页。(光标被迫移动)
第二部分的作用
- zt(小写):重新绘制窗口,光标所在行移动到屏幕的顶端。
相当于 z<CR>
- zz(小写):重新绘制窗口,光标所在行移动到屏幕的中间。
相当于 z.
- zb(小写):重新绘制窗口,光标所在行移动到屏幕的底端。
相当于 zb
对我来说,这几个功能在阅读代码时很有用。
拓展阅读:
我在vimrc的配置文件中使用:
set wrap
所以下面的这几个奇技淫巧我不怎么用。但是,对于理解Vim的 自动回绕 很有用。
什么是自动回绕?
Vim 通常会对长行自动回绕,以便你可以看见所有的文字。但有时想让文字在一行中显示完。那么就要关闭自动回绕功能,你需要左右移动才能看到一整行。
关闭方法,临时使用或在vimrc中加入,让它持久化:
set nowrap
当nowrap生效时:
- (N)zh:屏幕向右滚动N个字符。
- (N)zl :屏幕向左滚动N个字符。
- (N)zH:屏幕向右滚动半个屏幕宽度的字符。
- (N)zL:屏幕向左滚动半个屏幕宽度的字符。