Màn hình GNU: thay đổi tên cửa sổ mới


20

Tôi có thể thay đổi tên của một cửa sổ bằng Ctrl-a Shift-a. Thay vì chỉnh sửa một số tên cửa sổ bằng tay, có cách nào để chúng tự động được đặt tên theo thư mục hiện tại không?


Bạn sử dụng vỏ nào?
marco

Tôi đang sử dụng bash.
năm11

Câu trả lời:


21

Làm cho trình bao của bạn thay đổi tiêu đề cửa sổ mỗi khi nó thay đổi thư mục hoặc mỗi khi nó hiển thị lời nhắc.

Dành cho bạn ~/.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

Hoặc cho bạn ~/.zshrc(cho người dùng zsh):

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

Để biết thêm thông tin, hãy tra cứu bên dưới Tiêu đề động trong Hướng dẫn sử dụng màn hình hoặc bên dưới Tiêu đề (cửa sổ đặt tên), trong trang hướng dẫn.


Tôi copypasted một bash trên .bashrc của tôi và nó đang tỏa ra các lỗi này: bash: PROMPT_COMMAND: dòng 0: lỗi cú pháp gần bất ngờ thẻ ;' bash: PROMPT_COMMAND: line 0: ; screen_set_window_title'
liewl

@David: Xin lỗi, vấn đề là tích lũy các lệnh PROMPT_COMMANDnếu đã có thứ gì đó, nhưng tôi có các thành phần không đúng thứ tự.
Gilles 'SO- ngừng trở nên xấu xa'

2
Thủ thuật tuyệt vời @Gilles. Đối với những người thích giữ tiêu đề cửa sổ ngắn, bạn có thể bỏ đường dẫn đầy đủ và chỉ giữ tên cơ sở. Chỉ cần thay thế $HOME/*) HPWD="~${HPWD#$HOME}";;bằng*) HPWD=`basename "$HPWD"`;;

0

Bạn có thể đặt nó vào .bashrc để thay đổi tên thiết bị đầu cuối (tên cửa sổ) thành thư mục cuối cùng (hoặc tên tệp) mà bạn đang ở (làm việc trên).

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

mô tả thêm ở đây: liên kết

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.