分类: LINUX
2011-05-13 19:55:38
用gVim来写文章,一个自然段就是一行,常常会碰到由于是文章的一段话,这一行字会特别长的情况,打开自动折行,要好几行甚至十多行才能显示完全。这这
种情况下,vim只会在在当前窗口下能把整个段落完全显示的时候,才将其显示;而在不能完整显示的情况,它会用@来代替,set display=lastline 让vim在当前窗口能显示这行字的多少就显示多少,而不是等整行字都能显示时才将其显示出来。
另外还可以用gj和gk可以上下移动屏幕显示的一行。
新的问题出现了:如果一行文本有几千汉字时,gVim的支持非常差,右边滚动条滚动和鼠标滚动毫不自然,有时很难凭借滚动来移动到自己想要到的位 置。如果用gj和gk来移动,尤如隔靴搔痒,gVim的高效性荡然无存。
在模式行中加上set fo+=mM,然后就能自动对中文换行了,注意是真正的换行,不是折行,如果修改后可以用gq命令重新格式化,用起来相当方便。
为什么我的vim中j k键移动光标是一段一段的不是一行一行的呢?
回答:
vim
是纯文本编辑器。而纯文本中,只有行,并没有段的概念。比如,写文件时手工换“行”(尽管用户的意思是分段);编辑器中设定显示“行”号。即:txt的
行,就是你所说的段;而你所说的行,只是文字在窗口中显示后自动折回的效果。 autowrap
译为“自动换行”在一般情况下有助于理解,但在这种情况下,称为“自动折回”更能避免误解。
既然txt中,“文本行”比“屏幕行”更重要,所以,编辑器中一般提到的“行”,就是“文本行”,也就是用户理解的“段”。
所以,默认情况下,j k 的行移动,就是段移动。
为了满足少数用户屏幕行的移动,vim提供了 gj gk 命令,来实现屏幕行的移动。