設定方法によって異なりますが、デフォルトでは、このようなものが機能するはずです。
settitle() {
printf "\033k$1\033\\"
}
次に実行します:
settitle NEWTITLE
。
詳細については、画面タイトルのドキュメントとGNU画面に関するFAQ をご覧ください。
与えられたCtrl+するA Aだけで、次のコマンドまでそれを変更している、それはおそらくによって設定されています$PS1
(すべてのシェル)、または$PROMPT_COMMAND
/ DEBUG trap
(bashの場合のみ)またはprecmd
/ preexec
(のみのzsh)。
あなたはそれを任意の場所を探す必要があります\e
または\033
が表示されますk
か、\\
基本的には私のように、それの後にsettitle
、上記の例。
更新
あなたは習慣があると言いましたpreexec
。
これを次のように変更しないでください:
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
echo -n "\ek${TITLE:-$CMD}\e\\"
fi
次に、次のコマンドを実行してカスタムタイトルを設定できます。
TITLE="my title"
実行してタイトルを設定解除します
TITLE=
必要に応じて変更することprecmd
を忘れないでください$PS1
。
側
andをハードコーディングしないことxterm
でgnome-terminal
、これをすべての端末(、など)に拡張することもできます。\ek
\e\\
これが私のやり方です:
terminit()
{
# determine the window title escape sequences
case "$TERM" in
aixterm|dtterm|putty|rxvt|xterm*)
titlestart='\033]0;'
titlefinish='\007'
;;
cygwin)
titlestart='\033];'
titlefinish='\007'
;;
konsole)
titlestart='\033]30;'
titlefinish='\007'
;;
screen*)
# status line
#titlestart='\033_'
#titlefinish='\033\'
# window title
titlestart='\033k'
titlefinish='\033\'
;;
*)
if type tput >/dev/null 2>&1
then
if tput longname >/dev/null 2>&1
then
titlestart="$(tput tsl)"
titlefinish="$(tput fsl)"
fi
else
titlestart=''
titlefinish=''
fi
;;
esac
}
# or put it inside a case $- in *i* guard
if test -t 0; then
terminit
fi
# set the xterm/screen/etc. title
settitle()
{
test -z "${titlestart}" && return 0
printf "${titlestart}$*${titlefinish}"
}
次に、次のように変更できますpreexec
。
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
settitle "${TITLE:-$CMD}"
fi
Ctrl-A A
ます。プロンプトについては$PS1
、タイトルを変更しない場合はいつでも変更する必要があるということですか?