Tôi có thể đặt tiêu đề mặc định cho cửa sổ tmux không?


38

Ngay bây giờ tiêu đề mặc định là reattach-to-user-namespace(OS X), điều này khá khó chịu. Có một tùy chọn nào tôi có thể đưa vào tmux.confđể lấy một tiêu đề mặc định khác không?

Nếu không, làm cách nào để tạo một ràng buộc chính tạo ra một cửa sổ mới và sau đó nhắc tôi đặt tên?


Xem câu trả lời tại đây superuser.com/questions/306028/
Fredrik Pihl 13/03/13

Đó là về việc vô hiệu hóa đổi tên tự động (mà tôi đã làm), không phải về tên mặc định, phải không?
js-coder

Tôi đoán bạn đúng, xin lỗi!
Fredrik Pihl

Tôi sử dụng set-option -g default-command "reattach-to-user-namespace -l zsh", và hầu hết thời gian kết thúc với một cửa sổ có tên zsh, như mong muốn. Vì lý do không rõ, đôi khi tên không chuyển đổi và cửa sổ được gọi reattach-to-user-namespace. Tôi vẫn chưa nhận thấy một mô hình như khi nào / tại sao điều này xảy ra, nhưng có vẻ như có thể có một lỗi tinh vi, hoặc một cái gì đó trong cấu hình của tôi.
Jim Stewart

Cách tốt nhất để đặt số cửa sổ trong tên là gì?
DanCat

Câu trả lời:


43

Không có tên cửa sổ mặc định toàn cầu được áp dụng cho tất cả các cửa sổ mới; chúng mặc định là (một phần) của từ đầu tiên trong số các từ (hoặc vỏ mặc định nếu không có lệnh). Cửa sổ của bạn có thể được mặc định reattach-to-user-namespacebởi vì đó là bit thú vị đầu tiên của default-commandgiá trị của bạn .

Nó sẽ hơi tròn một chút, nhưng bạn có thể đặt lệnh mặc định của mình vào tập lệnh shell và default-commandthay vào đó là tập lệnh của bạn . Với cấu hình đó, tên cửa sổ mặc định (đối với các cửa sổ được tạo mà không có lệnh rõ ràng) sẽ là bất cứ thứ gì bạn đặt tên cho tập lệnh shell.

Mặt khác, có một số cách để tự đặt tên / đổi tên cửa sổ theo cách thủ công:

  • Tại thời điểm tạo với -n:

    new-window -n 'some name'
    

    Bạn có thể liên kết lại c(khóa mặc định được sử dụng để tạo cửa sổ) để kết hợp với tên mặc định của tên lửa mà bạn chọn:

    bind-key c new-window -n 'default name'
    
  • Đổi tên một cửa sổ hiện có:

    rename-window 'new name'
    

    Ngoài ra còn có một ràng buộc mặc định (Tiền tố ,) sẽ nhắc bạn cho một tên mới và đổi tên cửa sổ.

  • Đổi tên một cửa sổ thông qua một chuỗi thoát thoát khỏi phạm vi được gửi đến tty của khung:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

Bạn có thể nhắc nhở tôi về một tên cho một cửa sổ mới. Bạn có thể thực hiện như thế này (nhắc trước hoặc sau khi tạo cửa sổ):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"

2
Wow, đây là một câu trả lời thực sự hoành tráng, cảm ơn rất nhiều! :)
js-coder

7
Tôi tìm thấy một cách để đặt tiêu đề mặc định: set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"đặt tiêu đề mặc định là base. Bạn có thể muốn thêm điều này vào câu trả lời của bạn. :)
js-coder

giải pháp của bạn phá vỡ các nhà quản lý tmux như tmuxinator. Trong trường hợp đó, các tab không được đổi tên
SystematicFrank

4

tmux chọn lệnh đầu tiên làm tên cửa sổ.

Giả sử bạn muốn "i" là tiêu đề mặc định, bạn có thể lừa nó như thế này.

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

Điều này tốt hơn

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

bởi vì nếu bạn tạo một khung sau khi bạn đặt tiêu đề cửa sổ theo cách thủ công, tiêu đề sẽ được đổi tên trở lại thành "i" một lần nữa.


1

Ngoài câu trả lời của Chris về việc đặt tiêu đề cửa sổ bằng cách sử dụng new window -n 'somename', bạn cũng có thể cung cấp một chuỗi trống ''làm tên của một cửa sổ. Bằng cách này, tôi có thể sử dụng phím tắt mặc định (tiền tố + c) và không cần phải đặt tên cho các cửa sổ tạm thời, nhưng vẫn có thể đổi tên chúng khi cần thiết:

bind-key c new-window -n ''


1

Không thực sự là một câu trả lời nhiều hơn một hack:

Tôi đã tạo một liên kết tượng trưng với

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

Và bây giờ nó hiển thị như pbashlà tiêu đề mặc định.

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.