我的$prompt
中的我的xterm .tcshrc
变量是:
set prompt="%{\033]0;%m:%~\007%}%{^[[;37;1m%}%B%{^[[;34;1m%}%m%{^[[;34;1m%}:%b%c%# "
上面的 突出显示 部分(%{\033]0;%m:%~\007%}
)将主机名(%m
)和当前目录(%~
)放入标题栏。 (至少我认为这就是把它放在标题栏中的原因;自从我摆弄这个提示以来已经有一段时间了。)
但是,当我运行screen
时,当我更改目录时,当前目录将停止更新。
我的问题:
我正在使用xterm和tcsh运行linux。
答案 0 :(得分:3)
我认为没有直接的方式,因为屏幕的工作方式。但是,屏幕可以显示自己的状态栏,您可以在.screenrc中定义。以下是我的:
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%=%{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'
答案 1 :(得分:0)
首先,要使其发挥作用,您必须检查set prompt=blah-blah
中.tcshrc
的确切位置。例如,下面的代码完全适用于普通的xterm 不会在xterm的屏幕下工作:
switch ($TERM) case "xterm*": set prompt="%{\033]0;${HOME:t}@%m:%l:%c08\007%}%{\033[36m%}%l:%c02%#%{\033[0m%} " # update xterm title to display current cmd in it alias postcmd 'echo -n "\033]0;${HOME:t}@`hostname`:${tty} \!#:q\007"' ...
因为默认情况下屏幕将$ TERM变量设置为screen
而不是xterm
!所以你必须添加:
case "screen": # lame, but prevents an error in screen after 'su - root' if (! $?WINDOW) setenv WINDOW 1 set prompt="%{\033]0;${HOME:t}@%m:${WINDOW}:%c08\007%}%{\033[36m%}%c02%#%{\033[0m%} " alias postcmd 'echo -n "\033]0;${HOME:t}@`hostname`:${WINDOW} \!#:q\007"' ...
其次,请确保你在~/.screenrc
中有这一行:
termcapinfo xterm* 'hs:ts=\E]2;:fs=\007:ds=\E]2;\007'