Я можу змінити ім'я вікна за допомогою Ctrl-a Shift-a. Замість того, щоб відредагувати кілька імен вікон вручну, чи існує спосіб їх автоматичного іменування за поточним каталогом?
Я можу змінити ім'я вікна за допомогою Ctrl-a Shift-a. Замість того, щоб відредагувати кілька імен вікон вручну, чи існує спосіб їх автоматичного іменування за поточним каталогом?
Відповіді:
Змушуйте свою оболонку змінювати заголовок вікна щоразу, коли він змінює каталог або кожен раз, коли він відображає підказку.
Для вашого ~/.bashrc
:
if [[ "$TERM" == screen* ]]; then
screen_set_window_title () {
local HPWD="$PWD"
case $HPWD in
$HOME) HPWD="~";;
$HOME/*) HPWD="~${HPWD#$HOME}";;
esac
printf '\ek%s\e\\' "$HPWD"
}
PROMPT_COMMAND="screen_set_window_title; $PROMPT_COMMAND"
fi
Або для своїх ~/.zshrc
(для zsh користувачів):
precmd () {
local tmp='%~'
local HPWD=${(%)tmp}
if [[ $TERM == screen* ]]; then
printf '\ek%s\e\\' $HPWD
fi
}
Для отримання додаткової інформації знайдіть динамічні заголовки в посібнику з екрана або під заголовками «Назви (іменування вікон)») на головній сторінці.
;' bash: PROMPT_COMMAND: line 0:
; screen_set_window_title '
PROMPT_COMMAND
якщо вже є щось, але у мене компоненти були в неправильному порядку.
Ви можете помістити це в .bashrc, щоб змінити ім'я терміналу (ім'я вікна) до останнього каталогу (або імені файлу), в якому ви перебуваєте (працюєте над).
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${PWD##*/}\007"'
;;
*)
;;
esac
докладніше описано тут: посилання