Đối với iTerm2, làm cách nào để làm cho thư mục làm việc xuất hiện trong tiêu đề cửa sổ?


22

Gần đây tôi đã chuyển sang iTerm2 từ ứng dụng Terminal mặc định và gặp sự cố về khả năng sử dụng.

Trên Terminal, thư mục làm việc bạn đang hiển thị trên thanh tiêu đề cùng với quy trình và kích thước pixel. Ví dụ: khi bạn nhấp vào Window để chuyển đổi giữa các phiên Terminal khác nhau, bạn sẽ thấy: work_directory - process - pixel_size.

Trên iTerm2, thật không may, chỉ có quá trình hiển thị trong thanh tiêu đề. Vì vậy, nếu tôi đang làm việc trong nhiều cửa sổ iTerm2 trên các thư mục khác nhau, tôi không thể dễ dàng phân biệt đó là khi tôi nhấp vào Window để chọn một cửa sổ. Tôi biết tôi có thể dễ dàng chuyển đổi giữa các cửa sổ iTerm2 sau khi tôi chọn một cửa sổ, nhưng tôi muốn xác định chính xác cửa sổ nào tôi muốn ngay lập tức. (Nhân tiện, tôi sử dụng Witch và tab-tab không giúp được gì cả vì ở đây một lần nữa chỉ có quá trình hiển thị trong danh sách).

Bất kỳ đề xuất? Tôi đã xem qua tất cả các sở thích và không thấy gì cả. Tạo hồ sơ không chính xác là những gì tôi đang theo đuổi - Tôi chỉ muốn xem thư mục làm việc hiện tại trong tiêu đề cửa sổ iTerm2.

Câu trả lời:


20

Với \033]0;TEXT\007trình tự thoát.

Ví dụ về sử dụng trong Bash: echo -ne "\033]0;$PWD\007"

Mà bạn có thể thêm vào $PROMPT_COMMANDnếu bạn sử dụng Bash, hoặc nếu không thì đính kèm với bạn PS1để nó được đánh giá lại thường xuyên.

Thí dụ: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'


1
Những công việc này. Chỉ cần là pedantic, thêm dòng xuất khẩu được liệt kê ở trên vào tệp ~ / .bashrc của bạn.
Spencer

Điều này thật tuyệt. Cám ơn rất nhiều; điều này giúp tôi hiểu rằng câu trả lời thực sự là về lập trình bash và không liên quan gì đến iTerm vs Terminal. Là một theo dõi cho bất cứ ai khác, vui lòng xem faqs.org/docs/Linux-mini/Xterm-Title.html#s3linfo.org/echo.html . Cảm ơn một lần nữa!
whiny_nil

5
và để chỉ nhận được đoạn cuối của đường dẫn echo -ne "\033]0;${PWD##*/}\007"(với lời cảm ơn github.com/barryclark/bashstrap đã chỉ đường)
Anentropic

1
@Spencer: Không có lý do để xuất biến biến shell PROMPT_COMMAND và nói chung, không nên xuất biến biến shell trừ khi bạn có nhu cầu cụ thể để chia sẻ biến với mọi chương trình do shell chạy . Theo mặc định, các biến được sử dụng bởi shell không được xuất ra; chỉ xuất các biến có nghĩa là được truyền đến các quy trình khác. ~/.bashrcsẽ được điều hành bởi mọi shell tương tác, vì vậy chúng không cần kế thừa các biến được đặt bởi tập lệnh này.
Chris Trang

Chà, xuất khẩu là cách bạn sử dụng PROMPT_COMMAND ... Và nói chung là tốt hơn cho liên kết
demure

2

Tôi thích câu trả lời từ ý chính này để thêm nó vào tiêu đề tab

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi

0

Nếu bạn đang sử dụng zsh (là mặc định trong macOS 10.15), hãy đặt cái này vào ~ / .zshrc của bạn thay vào đó:

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

Bạn cũng có thể đánh vần \033như \e\007như \a.

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.