Строка состояния экрана для отображения текущей директории для оболочки zsh / bash

Я часто использую экран GNU с zsh в качестве оболочки. Было бы неплохо (я думаю), чтобы иметь возможность отображать текущее имя каталога (а не полный путь) в качестве заголовка вкладки. Я могу сделать это с помощью CTRL+A SHIFT+A но это руководство. Я бы хотел, чтобы он менялся всякий раз, когда меняю каталог.

Кто-нибудь знает, как это сделать?

Изменить: ответ также содержит решение для bash.

2 Solutions collect form web for “Строка состояния экрана для отображения текущей директории для оболочки zsh / 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 (ie 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 (-). 

Или вы можете просто поместить это как заголовок оболочки, если вам просто нужно, чтобы заголовок окна отображался как текущий рабочий каталог.

Это входит в ваш ~/.bashrc :

 PROMPT_COMMAND='echo -ne "\033k\033\134\033k${HOSTNAME}[`basename ${PWD}`]\033\134"'` 

Это входит в ваш ~/.screenrc : shelltitle '] | bash' shelltitle '] | bash'

  • Zsh - Отключить вкладку вкладок
  • Что такое расщепление слов? Почему это важно в программировании оболочки?
  • Как использовать замещение параметров в шаблоне glob (zsh)
  • Можно ли вручную вызвать функцию завершения zsh?
  • сценарий к cd во многие каталоги и выполнить команду
  • Возможно ли иметь привязки клавиш vim в терминале?
  • Предупреждение о записи во время ввода сообщения zsh
  • Все файлы в каталоге, которые не заканчиваются в определенной строке?
  • Перенос Ctrl-P в Ctrl-O для получения предыдущей команды?
  • Поиск в обратном и прямом направлениях осуществляется с помощью vi-режима в zsh
  • Как повторить виджет zle произвольное количество раз, когда открыто меню завершения?
  • Linux и Unix - лучшая ОС в мире.