Gnome Terminal 分頁預設以使用者+主機+工作目錄當作 title。乍看之下,似乎可以達到某個程度的分辨功能,但一來相似度太高,二來分頁一多 title 就只剩下前面相同的部份。因此,到後來只能憑腦袋記憶分頁位置。無奈,年紀越大,記憶就越不靈光...
以下介紹解決這個問題的方法:自訂 xterm 的 title (只針對 bash 來介紹,其他 shell 可能能需要些微調整)。
修改 title 的指令為:
echo -ne "\033]0;NEW TITLE\007"若你當場測試,八成會說我騙你。請再試試以下指令:
echo -ne "\033]0;NEW TITLE\007"; read第一個指令看起來無效的原因是因為 bash 在完成你的指令之後,馬上又將他改掉了。第二個指令多加一個 read,就是為了讓你看清楚。利用這個特性,內容如下的 ~/bin/vi 在你用 vi 編輯 hello.c 時分頁 titile 會是 "vi hello.c",讓你一目了然:
#!/bin/bash同樣的方法,你可以應用到 gdb、adb、minicom 等等。
echo -ne "\033]0;vi $*\007"
/usr/bin/vi $*
順道一提,每次在 bash shell 執行完指令就會設定一次 titile,這個動作是設定在 .bashrc 的以下段落:
# If this is an xterm set the title to user@host:dir注意 PS1 定義。其中 \e 和 \a 相當於前面指令的 \033 和 \007、\u 是使用者名稱、\h 是主機名稱、\w 是工作目錄。切換目錄時 title 會跟著改,就是因為 \w 的關係。\w 用在 prompt 很好,但當作 title 就太長了,建議用 \W 當 title,也就是整個路徑的最後一個目錄名稱。
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
參考資料:
沒有留言:
張貼留言