có khá nhiều câu trả lời ở đây: /unix/12032/create-new-window-with-civerse-directory-in-tmux
Tóm tắt:
từ Câu hỏi thường gặp về tmux, một cách độc lập (nhưng rất chung chung và khá độc lập):
- Làm thế nào tôi có thể mở một cửa sổ mới trong cùng thư mục với cửa sổ hiện tại?
Một tùy chọn là chỉ chạy "TMUX = tmux" trong cửa sổ. Tuy nhiên, điều này chỉ hoạt động nếu không có lệnh nào đang chạy, để bạn có thể nhập lệnh.
Một cách giải quyết là để cho tmux biết về đường dẫn hiện tại thông qua một biến môi trường. Để làm như vậy, sử dụng lệnh sau:
[ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD
Mà đặt TMUXPWD_i (trong đó i là số của cửa sổ hiện tại) vào đường dẫn của thư mục hiện tại. Lệnh này có thể được thêm vào PS1, ví dụ:
PS1='$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD)\h$ '
Khi một cửa sổ mới được tạo, shell sẽ được yêu cầu thay đổi thư mục. Bạn có thể xác định một ràng buộc mới (ví dụ: nếu sử dụng GNU bash):
bind-key C-c run-shell 'tmux neww "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"'
Giải pháp này sẽ hoạt động ngay cả khi một lệnh hiện đang chạy trong thiết bị đầu cuối, nhưng nó sẽ không hoạt động từ một cửa sổ vừa được hoán đổi với một vì TMUXPWD_i sẽ không được cập nhật sau khi trao đổi. Tuy nhiên, một khi lời nhắc mới được hiển thị, TMUXPWD_i được cập nhật đúng cách.
chỉ cần thay thế các cuộc gọi đến shell là phù hợp với bạn.
Ngoài ra, rõ ràng các phiên bản mới hơn của tmux có địa chỉ này bằng một lệnh
cửa sổ mới tmux
phiên bản cũ hơn được tuyên bố là hoạt động như vậy:
gọi
tmux neww
từ shell của bạn sẽ mở tmux trong thư mục đó.
nếu bạn muốn có thể mở các cửa sổ hoặc cửa sổ mới từ thư mục làm việc hiện tại trong tmux thì bạn nên thay thế:
đường dẫn mặc định tùy chọn cài đặt tmux "$ PWD"