Bash
螢幕狀態欄顯示 zsh/bash shell 的目前目錄
我經常使用 GNU screen 和 zsh 作為我的 shell。能夠將目前目錄名稱(不是完整路徑)顯示為選項卡標題將是一個很好的功能(我認為)。我可以這樣做,
CTRL+A SHIFT+A
但那是手動的。每當我更改目錄時,我都希望它改變。有誰知道這樣做的方法?
編輯:答案還包含 bash 的解決方案。
對於 zsh:
把這個放在你的
~/.zsh
[centos@centos ~]$ cat .zsh if [[ ${TERM} == "screen-bce" || ${TERM} == "screen" ]]; then precmd () { print -Pn "\033k\033\134\033k%m[%1d]\033\134" } preexec () { print -Pn "\033k\033\134\033k%m[$1]\033\134" } else precmd () { print -Pn "\e]0;%n@%m: %~\a" } preexec () { print -Pn "\e]0;%n@%m: $1\a" } fi PS1=$'%{\e[0;32m%}%m%{\e[0m%}:%~> ' export PS1 [centos@centos ~]$
在你的
~/.screenrc
hardstatus string "%h" caption always "%{= kw} %-w%{= wk}%n*%t%{-}%+w%{= kw} %=%d %M %0c %{g}%H%{-}"
把這個放在你的
~/.screenrc
caption always "%m/%d/%y %0c%{=b kg} %l %{=r gk}%-w%{=b wb}%50>%n%f* %t%{-}%+Lw%<%{- Wk}"
caption always "%m/%d/%y %0c%{=b kg} %l %{=r gk}%-w%{=b wb}%50>%n%f* %t%{-}%+Lw%<%{- Wk}" # caption description: # caption always "%?%F%{-b bc}%:%{-b bb}%?%C|%D|%M %d|%H%?%F%{+u wb}%? %L=%-Lw%45>%{+b by}%n%f* %t%{-}%+Lw%-0<" # # Anything I don't describe is treated literally. # # %? - Start of a conditional statement. # %F - Use this part of the statement if the window has focus (i.e. it # is the only window or the currently active one). # %{-b bc} - Turn off bold, blue foreground, cyan background. # %: - else # %{-b bb} - Turn off bold, blue foreground, blue background (this obscures # the text on non-focused windows and just gives a blue line). # %? - End conditional statement. # %C - time (hh:mm, leading space) in 12 hour format # %D - Three-letter day-of-week appreviation # %M - Three-letter month appreviation # %d - Day of the month # %H - hostname # %? - Start of conditional statement. # %F - Use this part of the statement if the window has focus. # %{+u wb} - underlined, white foreground, blue background # %? - End conditional (if not focused, text remaind blue on blue). # %L= - truncation/padding point. With the 'L' qualifier, basically # just acts as a reference point. Further truncation/padding is # done relative to here, not the beginning of the string # %-Lw - window list up to but not including the current window (-), # show window flags (L) # %45> - truncation/padding marker; place this point about 45% of the # way into the display area (45) # %{+b by} - add bold (still underlined from before), blue foreground, # yellow background # %n - number of the current window # %f - flags for current window # %t - title of current window # %{-} - undo last color change (so now we're back to underlined white # on blue) (technically, this is a pop; a second invocation # would drop things back to unadorned blue on cyan) # %+Lw - window list from the next window on (-), show window flags (L) # %-0< - truncation/padding point. Place this point zero spaces (0) # from the right margin (-).
或者,如果您只需要將視窗標題顯示為目前工作目錄,則可以簡單地將其作為 shell 標題。
這進入你的
~/.bashrc
:PROMPT_COMMAND='echo -ne "\033k\033\0134\033k${HOSTNAME}[`basename ${PWD}`]\033\0134"'`
這進入你的
~/.screenrc
:shelltitle '] | bash'