我一直在试图弄清楚这一点——目标是在 GNU Screen 中水平滚动。(为了避免 CLI mysql 查询结果中出现难看的换行。)
如果你这样做:
screen -h 5000 # 5000 lines history
Ctrl-a r # to disable horizontal wrap
mysql -u user -p
SELECT * FROM db.big_fat_table LIMIT 500;
Ctrl-a [ # to enter scroll (copy) mode
现在,您可以分别使用 和 向上和向下滚动Ctrl-b
。Ctrl-d
但是如何向右和向左滚动呢?
答案1
我认为关闭该wrap
选项不会产生您想象的效果。以下是我的手册页中显示的该wrap
选项:
wrap [on|off] Sets the line-wrap setting for the current window. When line-wrap is on, the second consecutive printable character output at the last col- umn of a line will wrap to the start of the following line. As an added feature, backspace (^H) will also wrap through the left margin to the previous line. Default is ‘on’.
这是一个低级终端功能,与水平滚动无关。
但是,less
有一个功能可能会对您有所帮助,该-S
开关允许您使用左右箭头键在文件中左右滚动。如果您正在查看包含长行的结果文件,那么这可能非常有用。
答案2
据我所知,screen 不支持水平滚动。Screen 主要模拟硬件终端,而水平滚动不是硬件终端的典型功能。
您可以M-x shell
在 Emacs 的缓冲区中运行查询。truncate-lines
变量控制长行是否换行。当长行不换行时,+Ctrl或PgUp+Ctrl向左滚动,+或+向右滚动。x<CtrlPgDnCtrlx>