Cách thay đổi thư mục cửa sổ mới mặc định từ bên trong tmux


42

Gần đây tôi đã chuyển từ màn hình GNU sang tmux .
Tôi thấy nó khá giống nhau nhưng với sự hỗ trợ lớn hơn (tôi đã chuyển đổi do vấn đề với thời gian thoát trong neovim - độ phân giải chỉ dành cho tmux).

Thật không may trong tmux Tôi không thể tìm thấy một lệnh tương tự như thế này:

screen -X eval "chdir $(some_dir)"

Lệnh trên đã thay đổi thư mục mặc định cho cửa sổ / màn hình / khung mới từ bên trong màn hình GNU để khi tôi nhấn Ctrl+ a(tương tự tmux Ctrl+ b) - cửa sổ mới được mở trong $(some_dir)thư mục.

Có một điều tương tự trong tmux?

TRẢ LỜI:
Tôi đã sử dụng câu trả lời @Lqueryvg và kết hợp nó với đề xuất @Vincent Nivoliers từ một nhận xét và điều đó đã cho tôi một ràng buộc mới cho một lệnh attach -c "#{pane_current_path}"đặt thư mục hiện tại của tôi làm mặc định.
Cảm ơn.


Bạn có thể sử dụng câu trả lời thứ hai của câu hỏi này
Vincent Nivoliers

Cảm ơn, nó rất hữu ích. new-window -c "#{pane_current_path}"đang hoạt động nhưng điều tôi cần là đặt đường dẫn vĩnh viễn, tức là: Tôi đang làm việc trong một dự án trong / aaa / bbb nhưng bằng cách nào đó tôi khi tôi thay đổi đường dẫn để nói / ccc / ddd và bắt đầu mới với Cb và c tôi muốn hạ cánh thêm một lần nữa trong / aaa / bbb. Bạn có thể nghĩ ra một giải pháp cho điều này?
lewiatan

Cá nhân tôi ổn với việc bổ sung ba dòng cuối cùng trong tôi .tmux.conf. Bằng cách đó, tôi chỉ phải điều hướng một lần đến thư mục và sau đó tạo các cửa sổ / tách từ đó, nhưng tôi thừa nhận đây không phải là giải pháp cho vấn đề của bạn, đó là lý do tại sao tôi không đăng câu trả lời!
Vincent Nivoliers

Câu trả lời:


61
  1. Bắt đầu tmuxnhư sau:

    (cd /aaa/bbb; tmux)
    

    Bây giờ, bất kỳ cửa sổ mới (hoặc panes) nào bạn tạo sẽ bắt đầu trong thư mục /aaa/bbb, bất kể thư mục hiện tại của khung hiện tại.

  2. Nếu bạn muốn thay đổi thư mục mặc định một khi đã tmuxhoạt động, hãy sử dụng attach-sessionvới -c.

    Trích dẫn từ tmuxtrang người đàn ông cho attach-session:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    Ví dụ:

    • Ctrl+b :

    • attach -c /ddd/eee

    Các cửa sổ mới (hoặc panes) bây giờ sẽ bắt đầu trong thư mục /ddd/eee, bất kể thư mục của khung hiện tại.


7
Tùy chọn thứ hai là chính xác những gì tôi muốn. Tôi sẽ sử dụng attach -c "#{pane_current_path}"nó sẽ giống như những gì tôi đã có trên màn hình. Cảm ơn.
lewiatan

Đúng! attach -cchính xác là những gì tôi đang tìm kiếm. Cảm ơn bạn
Byron Mansfield

3

Đối với những người có thể đang tìm kiếm một chút tham khảo hơn câu trả lời được chọn cung cấp, có một câu trả lời hay khác cho câu hỏi này trên StackOverflow:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

Cung cấp các cách bạn có thể thực hiện mà không cần rời khỏi phiên và đối với những người sử dụng tmux theo kiểu nhiều phiên (như bản thân tôi), câu trả lời ở trên cung cấp ngữ cảnh tốt hơn một chút về cách thức attach/ attach-sessionhoạt động.

Xem cả hai câu trả lời có sẵn cho những cách khác nhau mà chúng có thể được sử dụng. Tôi thấy cả hai đều hữu ích / sâu sắc.

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.