2.11 无处不在的分页器

虽然拥有图形化的客户端,但Git的主要操作还是以命令行的方式完成的。使用命令行方式的好处一个是快,另外一个是可以防止鼠标手的出现。Git的命令行加入了大量的人性化设计,包括命令补全、彩色字符输出[1]等,不过最具特色的还是无处不在的分页器。

在操作其他版本控制系统的命令行时,如果命令的输出超过了一屏,为了能够逐屏显示,需要在命令的后面加上一个管道符号将输出交给一个分页器。例如:


$svn log|less


而Git则不用如此麻烦,因为每个Git命令自动带有一个分页器,默认使用less命令(less-FRSX)进行分页。当一屏显示不下时启动分页器,这个分页器支持带颜色的字符输出,对于太长的行则采用截断方式处理。因为less分页器在翻屏时使用了vi风格的热键,如果您不熟悉vi的话,可能会遇到麻烦。下面是分页器中常用的热键:

字母q:退出分页器。

字母h:显示分页器帮助。

按空格下翻一页,按字母b上翻一页。

字母d和u:分别代表向下翻动半页和向上翻动半页。

字母j和k:分别代表向上翻一行和向下翻一行。

如果行太长被截断,可以用左箭头和右箭头使窗口内容左右滚动。

输入/pattern:向下寻找和pattern匹配的内容。

输入?pattern:向上寻找和pattern匹配的内容。

字母n或N:代表向前或向后继续寻找。

字母g:跳到第一行;字母G:跳到最后一行;输入数字再加字母g:则跳转到对应的行。

输入!<command>:可以执行Shell命令。

如果不习惯分页器的长行截断模式而希望能够自动换行,可以通过设置LESS环境变量来实现。LESS环境变量设置如下:


$export LESS=FRX


或者使用Git的方式,通过定义Git配置变量来改变分页器的默认行为。例如设置core.pager配置变量如下:


$git config—global core.pager 'less-+$LESS-FRX'


[1]须通过Git配置变量启用,如运行命令:git config—global color.ui true