GNU Ekranı: yeni pencere adı değişikliği


20

Bir pencerenin adını Ctrl-a Shift-a ile değiştirebilirim. Birkaç pencere adını el ile düzenlemek yerine, bunların geçerli dizinden otomatik olarak adlandırılmasının bir yolu var mı?


Hangi kabuğu kullanıyorsun?
marco

Ben bash kullanıyorum.
Ocak'ta liewl

Yanıtlar:


21

Kabuğunuzun dizini her değiştirişinde veya her istem görüntülediğinde pencere başlığını değiştirmesini sağlayın.

Sizin için ~/.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

Veya ~/.zshrc(zsh kullanıcıları için):

precmd () {
  local tmp='%~'
  local HPWD=${(%)tmp}
  if [[ $TERM == screen* ]]; then
    printf '\ek%s\e\\' $HPWD
  fi
}

Daha fazla bilgi için Ekran kılavuzundaki Dinamik başlıklar altına veya kılavuz sayfasındaki “Başlıklar (adlandırma pencereleri)” konusuna bakın.


Ben bash bir .bashrc benim kopyala yapıştırdı ve bu hataları veriyor: bash: PROMPT_COMMAND: satır 0: beklenmedik belirteci yakınında sözdizimi hatası ;' bash: PROMPT_COMMAND: line 0: ; screen_set_window_title '
liewl 19:11

@David: Üzgünüm, nokta PROMPT_COMMANDzaten bir şey varsa komutları biriktirmekti , ama bileşenleri yanlış sırada aldım.
Gilles 'SO- kötü olmayı bırak'

2
@Gilles'da büyük numara. Pencere başlıklarını kısa tutmak isteyenler için, tam yolu bırakabilir ve yalnızca temel adı koruyabilirsiniz. Sadece değiştirmek $HOME/*) HPWD="~${HPWD#$HOME}";;ile*) HPWD=`basename "$HPWD"`;;

0

Terminal adını (pencere adı) içinde bulunduğunuz son dizine (veya dosya adına) değiştirmek için bunu .bashrc'ye koyabilirsiniz.

case "$TERM" in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "\033]0;${PWD##*/}\007"' ;; *) ;; esac

burada daha fazla açıklanmıştır: bağlantı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.