相对经常,我发现自己想退出,less
但留下我在屏幕上看到的内容,以供参考。有没有办法做到这一点?解决方法?
(我目前的解决方法是退出,然后使用more
。所以任何比这更好的解决方法都是受欢迎的。理想的是我已经在里面后可以使用的东西less
,也许有一个 shell 设置或一些脚本。)
我的桌面是 OSX,但我使用 RHEL 和 Ubuntu 服务器。
当我在我的“控制台”(不是xterm
)中查看手册页时,我看到了一些颜色,但我xterm
的(例如konsole
)中没有看到这个,有什么办法可以启用它吗?希望有一个相当简单的解决方案?
在 Linux 终端中,按键序列 Shift-PageUp 通常可用于向上滚动。
但是,当通过 ssh 连接到特定机器时,此键序列在 gnu 屏幕中似乎不起作用。
我有两个问题。1) 这个键序列是在哪里定义的?2) 我可以在我的屏幕设置中更改什么以始终允许这样做?
这与 termcap 条目有关吗?
我目前正在使用三台机器。当按下 Shift-PageUp 时,其中两个将向上滚动缓冲区。一台机器根本不会响应按键。
工作机器:
不工作的机器:
这是我在所有三台机器上都使用的 .screenrc
termcapinfo xterm|xterms|xs|rxvt ti@:te@
term screen-256color
hardstatus on
hardstatus alwayslastline
hardstatus string "%{= wb}%-w%{.yb}%n %t%{-}%+w %=%{b r} %H %{..b}[%l] %{..K}%C%a "
startup_message off
# turn off visual bell
vbell off
# Autodetach session on hangup instead of terminating screen completely
autodetach on
# give more scroll back
defscrollback 20000
# turn on …
Run Code Online (Sandbox Code Playgroud) 在 Debian 系统上END
按键生成^[[F
:
$ showkey -a
Press any keys - Ctrl-D will terminate this program
^[[F 27 0033 0x1b
91 0133 0x5b
70 0106 0x46
Run Code Online (Sandbox Code Playgroud)
但是为什么这个键和弦不在terminfo 中?
$ infocmp -1 | grep end
kend=\EOF,
Run Code Online (Sandbox Code Playgroud)
尽管如此,ncurses设法正确地将其识别为KEY_END
. 如何?
TERM
是 xterm-256color
顺便说一句,拥有kend
andend
而不仅仅是背后的动机是end
什么?(对于khome
和home
)
编辑
正如 Johan Myréen 的评论中所说,khome
字符串是按下 Home 键产生的序列。但是在 Debian 上按 Home 键会产生home
. 为什么?
$ showkey -a
Press …
Run Code Online (Sandbox Code Playgroud) 我在使用这些方法在 gentoo 的手册页中获取颜色时遇到问题。我已经在 gentoo 论坛上问过,但它仍然不起作用,并且错误报告(Bug 184604)中的评论也不起作用。有人可以帮助我在手册页中获取颜色吗?
编辑:是的,我使用 less 作为寻呼机和 urxvt-unicode 作为终端模拟器
编辑2:
我已经在 gentoo 论坛中询问过,但没有帮助,这是链接:http : //forums.gentoo.org/viewtopic-t-819833-start-0.html。
何苦?
清除回滚缓冲区在很多方面都很方便,例如,当我希望运行一些输出较长的命令,并希望快速滚动到此输出的开始时。当回滚缓冲区被清除时,我可以滚动到顶部,然后就完成了。
一些考虑:
clear
根据人类的说法,有命令,
如果可能,clear 会清除您的屏幕,包括其回滚缓冲区(如果定义了扩展的“E3”功能)。
在 gnome-terminalclear
中不清除回滚缓冲区。(不过,什么是“E3”功能?)
还有reset
, 清除,但它做的比这多一点,而且它真的很慢(在我的系统上它需要超过一秒钟,这对人类来说是明显的延迟)。
还有echo -ne '\ec'
or echo -ne '\033c'
,它可以完成这项工作。而且确实比 快得多reset
。
问题是,什么是\ec
序列,它与什么clear
和reset
做什么有什么不同,以及为什么没有单独的命令?
还有 readline 的C-l
键序列,默认情况下绑定到clear-screen
命令(我的意思是,readline 命令,而不是 shell 命令)。这是什么命令?它发出哪个转义序列?它实际上是如何工作的?它运行shell命令吗?或者是什么?同样,在 gnome-terminal 中,它似乎只是通过吐出空行直到提示出现在终端的顶行来工作。不确定其他终端模拟器。这是非常麻烦的行为。它会用大量的空白污染回滚,所以你必须向上滚动更多,更多。它就像一个黑客,而不是干净的解决方案。
另一个问题是,上述\ec
序列是否有 readline 命令?我想将它绑定到,C-l
因为我总是想在清除屏幕时清除回滚缓冲区。
而另一个问题是如何只需要输入这样的转义序列终端,执行所需的操作?然后不必考虑绑定C-l
到另一个 readline 命令(如果存在这样的命令)。我尝试输入Esc
,c
但是这不起作用。
更新 这个问题主要在这里回答:https : //unix.stackexchange.com/a/375784/257159。这是一个很好的答案,几乎解释了这里提出的所有问题。
termcap terminal-emulator readline escape-characters terminfo
为什么在 中描述了一种$TERM
调用类型?为什么以及何时创建它,它的意义是什么?我们就不能呆在那里吗?是否只是一个习惯的名称和一个Linux控制台(比如说,一组功能或者是目录下根本无人问津习惯名称)或在那里被介绍时,它后面的任何技术原因?linux
/etc/termcap
vt-generic
linux
etc
home
如果您愿意,我在自定义搜索/查找突出显示颜色或字体格式方面有点迷失。我知道使用LESS_TERMCAP_*
我们可以改变较少显示的字体格式。全部功能都在这里。
但是我不知道如何更改搜索突出显示!我想添加背景颜色并更改前景色以使它们与标准输出颜色不同。否定标准输出是首选。
另外,还有一个问题。带有特殊字符(如@0
)的参数,我们如何编写它们的LESS_TERMCAP_
变量?
甚至无法猜测使用哪个来改变颜色真的很烦人!在此先感谢您对此事的了解。
当我在 xterm 中使用 Ubuntu 上的全屏 CLI 程序(如 less 或 vim)然后退出时,该程序的全屏输出不再可见。然而,当我在 FreeBSD 上做同样的事情时,全屏输出只是停留在那里,在下一个命令的行上方。有没有办法在 FreeBSD 上启用以前的行为,例如使用 Bash 选项?
正如标题所问,有什么区别?
我什么时候应该使用其中之一?
另外,有人得到了 putty-256color 的 termcap/terminfo 的“规范”定义吗?谷歌对搜索它的帮助不大。哎呀,谷歌对我在这个问题中的所有问题都没有什么帮助!