Làm thế nào để đổi tên một ngăn trong tmux?


119

Làm thế nào để đổi tên một ngăn trong tmux?

Câu trả lời:


186

Ý bạn là cửa sổ tmux? Ctrl + b + ,nếu bạn có Cb là tiền tố gửi (theo mặc định)

Ngoài ra C-b :rename-window <new name>tmux rename-window <new name>làm việc nữa.

Như tôi biết bạn không thể đổi tên ngăn


Khi tôi đổi tên cửa sổ hiện tại, tôi không thể thấy nội dung mình đang nhập, đó có phải là theo mặc định không? Hay là do cấu hình của tôi? Mặc dù tôi nghĩ rằng cấu hình của tôi không ngăn cản việc tmuxhiển thị điều đó.
zyy

Để làm rõ, bạn có thể đổi tên một ngăn và điều này là cần thiết khi đầu ra nhị phân vô tình làm hỏng nó. Câu trả lời của @ Mapad giải quyết được điều này.
mờTew

Làm thế nào để đổi tên cửa sổ, khi cửa sổ đổi tên được hỏi - trở thành câu trả lời được chấp nhận.
XMAN

mà được trở lại quay trở bất cứ khi nào bạnls
anilbey

2
@anilbey Tương tự ở đây. Giải pháp cho điều đó làset-option -g allow-rename off
joeytwiddle

36

có, bạn có thể đổi tên các tên cửa sổ và không chỉ tên cửa sổ bắt đầu bằng tmux> = 2.3. Chỉ cần nhập nội dung sau vào shell của bạn:

printf '\033]2;%s\033\\' 'title goes here'

bạn có thể cần thêm phần sau vào .tmux.conf của mình để hiển thị tên ngăn:

# Enable names for panes
set -g pane-border-status top

bạn cũng có thể tự động gán tên:

set -g pane-border-format "#P: #{pane_current_command}"

Có cách nào để đặt các chuỗi lệnh vào định dạng đường viền ngăn không? Ồ, có một vấn đề tương ứng trên github.
konstunn

15

Đối với những tmux kịch bản, có một lệnh được gọi là rename-window ví dụ:

tmux rename-window -t <window> <newname>

Trong trường hợp của tôi là một cái gì đó như: tmux rename-window -t 9 my-project.
borracciaBlu

8

Đối với những người muốn dễ dàng đổi tên các ngăn của họ, đây là những gì tôi có trong .tmux.conf

set -g default-command '                      \
function renamePane () {                      \
  read -p "Enter Pane Name: " pane_name;      \
  printf "\033]2;%s\033\\r:r" "${pane_name}"; \
};                                            \
export -f renamePane;                         \
bash -i'
set -g pane-border-status top
set -g pane-border-format "#{pane_index} #T #{pane_current_command}"
bind-key -T prefix R send-keys "renamePane" C-m

Các ngăn được đặt tên tự động với chỉ mục, tên máy và lệnh hiện tại. Để thay đổi tên máy, bạn có thể chạy <C-b>Rnó sẽ nhắc bạn nhập tên mới.

* Đổi tên ngăn chỉ hoạt động khi bạn đang ở trong một trình bao.


4

Ngoài ra, khi viết script, bạn có thể chỉ định tên khi tạo cửa sổ với -n <window name>. Ví dụ:

# variable to store the session name
SESSION="my_session"

# set up session
tmux -2 new-session -d -s $SESSION

# create window; split into panes
tmux new-window -t $SESSION:0 -n 'My Window with a Name'

3

Tùy chọn dễ nhất đối với tôi là đổi tên tiêu đề của thiết bị đầu cuối. Vui lòng xem: /superuser/362227/how-to-change-the-title-of-the-mintty-window

Trong câu trả lời này, họ đề cập đến việc sửa đổi biến PS1. Lưu ý: tình huống của tôi là đặc biệt đối với cygwin.

TL; DR Đặt cái này vào tệp .bashrc của bạn:

function settitle() {
      export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
      echo -ne "\e]0;$1\a"
}

Đặt cái này vào tệp .tmux.conf của bạn hoặc định dạng tương tự:

set -g pane-border-status bottom
set -g pane-border-format "#P #T #{pane_current_command}"

Sau đó, bạn có thể thay đổi tiêu đề của ngăn bằng cách nhập vào bảng điều khiển:

settitle titlename

0

Bạn có thể điều chỉnh tiêu đề ngăn bằng cách đặt đường viền ngăn trong tmux.conf, ví dụ như sau:

###############
# pane border #
###############
set -g pane-border-status bottom
#colors for pane borders
setw -g pane-border-style fg=green,bg=black
setw -g pane-active-border-style fg=colour118,bg=black
setw -g automatic-rename off
setw -g pane-border-format ' #{pane_index} #{pane_title} : #{pane_current_path} '
# active pane normal, other shaded out​
setw -g window-style fg=colour28,bg=colour16
setw -g window-active-style fg=colour46,bg=colour16

Trong đó pane_index, pane_title và pane_current_path là các biến do chính tmux cung cấp.

Sau khi tải lại cấu hình hoặc bắt đầu một phiên tmux mới, bạn có thể đặt tiêu đề của ngăn hiện tại như sau:

tmux select-pane -T "fancy pane title";
#or
tmux select-pane -t paneIndexInteger -T "fancy pane title";

Nếu tất cả các ngăn có một số quy trình đang chạy, vì vậy bạn không thể sử dụng dòng lệnh, bạn cũng có thể nhập các lệnh sau khi nhấn liên kết tiền tố (Cb theo mặc định) và dấu hai chấm (:) mà không có "tmux" ở phía trước chỉ huy:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
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.