我希望当前命令显示在屏幕标题(或tmux)中。
我尝试了以下设置,但它不起作用。
我怎样才能让它发挥作用?
.screenrc
shelltitle "$ |fish"
shell /usr/local/bin/fish
的.config /鱼/ config.fish
set -x PS1 '\033k\033\\[\u@\h \W]\$ '
答案 0 :(得分:6)
对于鱼2.1.0版,您只需编辑〜/ .config / fish / functions / fish_title.fish
function fish_title
hostname
end
对于版本1.23.1,这似乎不起作用。如果目录不存在,请先创建它们:
mkdir -p~ / .config / fish / functions /
答案 1 :(得分:1)
.config/fish/functions/fish_title.fish
中对我有用的东西:
function fish_title
# this one sets the X terminal window title
# argv[1] has the full command line
echo (hostname): (pwd): $argv[1]
switch "$TERM"
case 'screen*'
# prepend hostname to screen(1) title only if on ssh
if set -q SSH_CLIENT
set maybehost (hostname):
else
set maybehost ""
end
# inside the function fish_title(), we need to
# force stdout to reach the terminal
#
# (status current-command) gives only the command name
echo -ne "\\ek"$maybehost(status current-command)"\\e\\" > /dev/tty
end
end
答案 2 :(得分:0)
我认为你正在寻找fish_title
。请参阅documentation here。
你可以这样做:
function fish_title
echo $_ ' '
pwd
end
funcsave fish_title
(注意你只是在提示符下运行它 - 不要把它放在配置文件中。)
答案 3 :(得分:0)
感谢您的回答。 最后,这使它工作了!
<强> .screenrc 强>
shelltitle "$ |fish"
shell /usr/local/bin/fish
<强>的.config /鱼/ config.fish 强>
function fish_prompt
echo -ne '\033k'
echo -ne $argv
echo -ne '\033\\'
echo -ne '$ '
end