FreeBSD tcsh 和终端窗口大小

FreeBSD tcsh 和终端窗口大小

当我使用 FreeBSD 服务器的 ssh 时,它总是假设终端宽度为 80 列。例如,手册页显示在一列较窄的栏中,并且所有使用 COLUMNS 和 LINES 环境变量来猜测终端大小的程序仅在 80 个默认栏中工作。

有什么方法可以让 tcsh 正确设置这个环境变量并将它们发送给子程序?

答案1

sh:取消设置 COLUMNS LINES;导出 TERM=xterm

csh:取消设置环境列行;设置环境术语 xterm

具有动态大小、字体或分辨率的终端是常态,而不是例外。

当出现这种情况时,Unix 将此信息放入内核 tty 属性中,并弃用 $COLUMNS、$LINES 和 termcap/terminfo 维度数据。

您可以通过运行“stty -a”来查看内核变暗。Ssh、rlogin 和现代 telnet 将这些尺寸传递到远程端。

通常,取消设置可产生更好的行为。有时,shell 会重置环境变量(基于“stty”信息)。

答案2

不确定 tcsh,但对于 bash、sh 和 ksh:

eval `resize`

应该可以奏效。

答案3

调整大小脚本随 xterm 一起提供,您可以从端口安装(尽管您将获得 libX11 等)。

答案4

tcsh 从父 shell 继承环境。要添加其他环境变量,您可以:

source envvar

其中 envvar 包含例如:

set history = 5000
# Set save history
set savehist = 5000
# Set a prompt
set prompt = `whoami`%' '
# Add to the default exported $PATH from the parent shell.
set path = `echo $path ~/bin`
# Create a new environment variable
set newShellVar = whatEver

一旦进入 shell,例如输入,tcsh <return>你就可以使用以下命令激活文件:

source envvar

当然,如果你将你的环境变量文件命名为~/.tcshrc,那么当你执行 tcsh 命令时该文件会自动获取来源。

相关内容