我知道一些答案,例如如何使鼠标滚动,使小寻呼机使用bash和gnome-terminal,这是-X
从$ LESS环境变量中删除该标志。但是我想做这两个:
- 使用鼠标滚轮滚动寻呼机(而不是滚动终端窗口的滚动条)(你通过得到消除
-X
来自$LESS
) - 有从寻呼机内容保持在屏幕上戒烟后(这通常是通过实现加入
-X
到$LESS
)。
有什么办法可以让我也可以吃蛋糕吗?
我知道一些答案,例如如何使鼠标滚动,使小寻呼机使用bash和gnome-terminal,这是-X
从$ LESS环境变量中删除该标志。但是我想做这两个:
-X
来自$LESS
)-X
到$LESS
)。有什么办法可以让我也可以吃蛋糕吗?
Answers:
并非没有hackless的源代码。一些背景故事:
Less根本无法处理鼠标(包括滚动事件)。
终端仿真器支持所谓的备用屏幕。这是大多数全屏应用程序在其使用期间会切换到的状态(退出时会切换回普通屏幕,从而导致先前的内容“恢复”),并且没有回滚缓冲区。Less也会切换到该备用屏幕,除非-X
在这种情况下没有给出。
许多终端仿真器发现,当它处于备用屏幕模式并且内部运行的应用程序对鼠标事件不感兴趣时,将滚动转换为向上或向下按键事件是有意义的。这是一种黑客行为,在正常屏幕上(例如在您的shell提示符下想象会发生什么),或者在应用程序希望处理鼠标时(肯定的,他们必须先查看实际的鼠标事件),这都是有害的。但是由于默认情况下,这两种设置在您运行时均不成立less
,因此会触发该hack(受支持它的终端仿真器的支持,并通过\e[?1007h
vs. 启用。\e[?1007l
)。滚动事件将由终端仿真器转换为向上和向下按键,而很少有人无法将它们与实际按键区分开。它不接收鼠标滚动事件:可以看到向上和向下按键。
因此,您可以:要么切换到备用屏幕,要么终端的hack将滚动事件转换为按键事件所需的时间更少,并且退出时可以恢复正常屏幕;或您不这样做,那么将滚动事件转换为按键就不会有任何魔术,更少的人就不会理解滚动事件。
那该怎么办呢?好吧,要么以更少的方式实现鼠标支持,然后让它自己处理滚动事件(并具有非默认的单击或复制粘贴行为),要么实现另一种怪异的破解:退出时,返回到正常屏幕后,less
最后一次可以打印一屏内容,并重复退出前显示的内容。
实际上,它基本上可以归结为:对不起,算了。
显然,升级到530以下或更新将为您提供所需的功能,
http://www.greenwoodsoftware.com/less/news.530.html
这些是版本487和版本530之间的区别:
如果使用-F并且文件适合放在一个屏幕上,则不要输出终端初始化序列。
找不到任何具有较新版本的“较少” PPA,因此只需下载源包并在本地构建并安装它即可。
并像这样配置git:
git config --global core.pager 'less -F -S -R -i -+X'