Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1694751
  • 博文数量: 410
  • 博客积分: 9563
  • 博客等级: 中将
  • 技术积分: 4517
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-03 19:59
个人简介

文章分类

全部博文(410)

文章存档

2017年(6)

2016年(1)

2015年(3)

2014年(4)

2013年(32)

2012年(45)

2011年(179)

2010年(140)

分类: 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 命令,来实现屏幕行的移动。
 


阅读(4610) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~