Câu hỏi "Tối đa hóa" một khung trong tmux


Đôi khi nó sẽ rất hữu ích để tối đa hóa một cửa sổ trong tmux và sau đó khôi phục lại nó với kích thước trước đó của nó.

Tôi đã đọc hướng dẫn và tôi không thể tìm được cách nào. Những gì tôi đã đưa ra là tôi có thể ràng buộc một chìa khóa để thay đổi kích thước cửa sổ để "tối đa" chiều rộng, và một chìa khóa để khôi phục nó vào một số chiều rộng được xác định trước.

Tất nhiên điều này có nhược điểm của nó, vì vậy tôi tự hỏi nếu có ai có một ý tưởng tốt hơn.


195
2018-01-27 23:10


gốc




Các câu trả lời:


Một tùy chọn khác có thể là sử dụng break-pane theo dõi bởi join-pane. Từ trang người đàn ông:

break-pane [-d] [-t target-pane]
                   (alias: breakp)
             Break target-pane off from its containing window to make it the
             only pane in a new window.  If -d is given, the new window does
             not become the current window.

join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
                   (alias: joinp)
             Like split-window, but instead of splitting dst-pane and creating
             a new pane, split it and move src-pane into the space.  This can
             be used to reverse break-pane.

Vì vậy, bạn có thể chọn ngăn của bạn và làm break-pane và sau đó khi bạn đã hoàn thành với phiên bản tối đa, bạn có thể tham gia lại với join-pane - có thể cần một số đối số mặc định để đặt nó trở lại tại chỗ hoặc chỉ sắp xếp lại sau đó.

Lưu ý rằng cửa sổ tham gia xuất hiện trong tmux 1.3 nhưng không phải là 1.1. (Không chắc chắn về 1.2, xin lỗi).

Và chỉ cần đề cập đến Kẻ hủy diệt (một bộ ghép kênh đầu cuối GUI (GTK) có thể thực hiện điều chỉnh zoom. (Ctrl-Shift-X là khóa phím mặc định). Tất nhiên nó không làm nhiều thứ mà tmux làm ...


49
2018-05-03 22:50



Kể từ phiên bản 1.8 có một giải pháp tốt hơn (xem câu trả lời của Tyler Holien). - momeara
Đối với những người cố gắng điều này trước khi câu trả lời tốt hơn, để có được tham gia cửa sổ để làm việc làm: join-pane -t:{previous} cho cửa sổ trước đó hoặc join-pane -t:0 để tham gia trở lại cửa sổ 0. - Realistic


Đây là một tính năng tmux bản địa.

Phiên bản 1.8 đã thấy sự bổ sung của -Z gắn cờ resize-pane. Từ trang người đàn ông:

Với -Z, cửa sổ đang hoạt động được chuyển đổi giữa thu nhỏ (chiếm   toàn bộ cửa sổ) và unzoomed (vị trí bình thường của nó trong bố trí).

Nó nhất định tiền tố tmux- -z theo mặc định trên cài đặt của tôi (thông qua Homebrew trên OS X).


410
2018-04-01 18:49



một người có đầy đủ quyền lợi nên đưa ra câu trả lời. Nó là không thể nghĩ rằng ai đó vẫn sẽ sử dụng một phiên bản của tmux khác với phiên bản mới nhất. - Jay
điều này thật tuyệt vời, chỉ cần thêm vào tệp .tmux.conf của tôi và bây giờ có trải nghiệm linh hoạt hơn nhiều: bind-key z resize-pane -Z - St-Ste-Ste-Stephen
Có thể nào đó bằng cách nào đó có các cạnh của các khay ngập nước có thể nhìn thấy chỉ thị độ sâu không? Tôi quên rằng tôi đã phóng to và "Z-title" không đủ nổi bật. - lkraav
Làm việc trong BunsenLabs ra khỏi hộp. - Mateusz Piotrowski
"INCONCEIVABLE" - "Bạn tiếp tục sử dụng từ đó. Tôi không nghĩ nó có nghĩa là ý của bạn." - Michael Anderson


Vì vậy, tôi biết bạn hỏi điều này một thời gian trước đây ... nhưng tôi đã không chuyển từ màn hình cho đến ngày hôm nay!

Tôi chạy vào cùng một vấn đề, đây là cách tôi giải quyết nó:

unbind +
bind + new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \; swap-pane -s tmux-zoom.0 \; select-window -t tmux-zoom
unbind -
bind - last-window \; swap-pane -s tmux-zoom.0 \; kill-window -t tmux-zoom

Nếu quy trình làm việc của bạn giống như của tôi (nghĩa là bạn tối đa hóa một cửa sổ, thực hiện một số công việc, sau đó ngay lập tức unmaximize nó) điều này sẽ làm việc tuyệt vời cho bạn.


47
2017-11-15 20:21



(Trong trường hợp nó không rõ ràng, điều này duy trì bố trí trong cửa sổ ban đầu của bạn ... sau khi tối đa hóa và un-maximizing, nó chính xác giống nhau.) - Ryan
Bất kỳ ý tưởng làm thế nào tôi có thể bản đồ cùng một phím tắt cho cả hai? Cái gì đó như bind c-m select-window -t tmux-zoom ? <minimize> : <maximize>. Nhưng bây giờ tôi muốn xác định chức năng này ở một nơi khác, vì lợi ích của sự sạch sẽ, và chỉ bind c-m :max_or_min. Điều đó có thể không? Tôi thấy khó tìm kiếm. (Tôi thấy mình thường xuyên gõ lệnh sai và kết thúc việc tạo thêm các cửa sổ 'tmux-zoom' trống rỗng). - chadoh
Điều này làm việc cho tôi chỉ khi tôi loại bỏ 'rõ ràng & & nbsp; TMUX ZOOM && đọc' từ tối đa hóa. - Epeli
Thw tối đa hóa công việc cho tôi, nhưng hành động giảm thiểu chỉ giết chết cửa sổ ban đầu, thoát khỏi khung tối đa. - paradroid
Đây là loại làm việc, nhưng tôi mất bố trí của tôi .. gần như mặc dù! - John Hunt


Trình thu phóng được cải thiện. Bây giờ người ta có thể phóng to nhiều khung, thậm chí phân cấp. Sau khi thực hiện như dưới đây và tải lại máy chủ tmux của bạn (Ctrl-r trong trường hợp của tôi), bạn sẽ có x khóa được giới hạn để phóng to và thu nhỏ cửa sổ. zoom-in đạt được bằng cách mở cửa sổ trong một cửa sổ mới, và thu nhỏ đạt được bằng cách lấy một cửa sổ trở lại cửa sổ ban đầu của nó. Nếu bạn kết thúc việc chia nhỏ cửa sổ phóng to, bạn sẽ có thể phóng to các ô của cửa sổ phóng to và thu nhỏ trở lại cửa sổ phóng to. thu nhỏ chỉ xảy ra nếu bạn đang ở trong cửa sổ phóng to có chứa một ngăn đơn.

Thêm sau vào cuối của bạn ~/.tmux.conf

~$ grep "bind x" ~/.tmux.conf
unbind x
bind x run ". ~/.tmux/zoom"

Thêm tệp sau

~$ cat ~/.tmux/zoom
#!/bin/bash -f
currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*/\1/gp'`;
currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*/\1/gp'`;
panecount=`tmux list-panes | wc | sed -e 's/^ *//g' -e 's/ .*$//g'`;
inzoom=`echo $currentwindow | sed -n -e '/^zoom/p'`;
if [ $panecount -ne 1 ]; then
    inzoom="";
fi
if [ $inzoom ]; then
    lastpane=`echo $currentwindow | rev | cut -f 1 -d '@' | rev`;
    lastwindow=`echo $currentwindow | cut -f 2- -d '@' | rev | cut -f 2- -d '@' | rev`;
    tmux select-window -t $lastwindow;
    tmux select-pane -t $lastpane;
    tmux swap-pane -s $currentwindow;
    tmux kill-window -t $currentwindow;
else
    newwindowname=zoom@$currentwindow@$currentpane;
    tmux new-window -d -n $newwindowname;
    tmux swap-pane -s $newwindowname;
    tmux select-window -t $newwindowname;
fi

24
2018-06-07 06:03



Chỉ có một upvote duy nhất ?! Câu trả lời này thật tuyệt vời! Hoạt động rất tốt, giới thiệu chức năng mới tốt đẹp mà bây giờ hoàn toàn thay thế chương trình 'terminator' bloaty tôi sử dụng để sử dụng. - sillyMunky
+1 Điều này thực sự tốt! Bởi đến nay giải pháp làm việc tốt nhất mà tôi đã đi qua cho đến nay! Cảm ơn!! - armandino
Tôi đồng ý. Điều này hoạt động và tuyệt vời hơn. Đó là màn hình ++ - Brad Parks
+1. Điều này làm việc tuyệt vời nhưng nó là một phần nhỏ của một thứ hai (~ 0,8) chậm hơn so với câu trả lời của @ Ryan ở trên, ít nhất là trên hệ thống của tôi. Không phải là một vấn đề lớn, nhưng tôi tự hỏi nếu có một cách để làm cho nó nhanh hơn - Amelio Vazquez-Reina
Đẹp thực sự. Tôi thích các tên cửa sổ đặc biệt (zoom @…), đây là những lời nhắc hữu ích và lệnh phóng to / thu nhỏ "x" duy nhất. - Eric Lebigot


Cntl + b (tiền tố) + z hoạt động để phóng to vào một ô cụ thể trong tmux 2.1. nó bạn nhấn Cntrl + b + z một lần nữa, nó phóng to trở lại kích thước ban đầu. Nó không tạo ra một cửa sổ mới.

So với giải pháp được đăng ở trên bởi aksay, nếu bạn cố gắng chia ngăn được phóng to, nó sẽ không cho phép chia nhỏ và sẽ quay trở lại ngăn ban đầu và chia ngăn đó thay thế.

Tùy chọn cửa sổ thu phóng có thể linh hoạt hơn ..


7
2017-09-01 13:46





Tôi đã làm điều này để tối đa hóa / thu nhỏ với cùng một phím tắt:

bind C-k run "if [[ $(tmux list-window) =~ ZOOM ]]; then tmux last-window; tmux swap-pane -s ZOOM.1; tmux kill-window -t ZOOM; else tmux new-window -d -n ZOOM; tmux swap-pane -s ZOOM.1; tmux select-window -t ZOOM;fi"

2
2018-05-07 21:32





Ngoài ra đối với tôi làm việc mà không có 'rõ ràng & & rsquo; s echo TMUX ZOOM && đọc'. Với đoạn mã này mỗi lần tôi thu nhỏ một cửa sổ từ cửa sổ đầu tiên biến mất.


1
2018-04-20 12:21





Đối với những người không thể đi với tmux 1.8 hoặc thích trạng thái tối đa dài hơn, tôi đã xuất bản kịch bản lệnh tmux hoạt động với tmux 1.6+.

Hy vọng rằng sẽ giúp.


0
2018-05-05 21:53





Tôi đang trên Ubuntu 12.04 và cũng cần tính năng này. Vì tmux 1.8 có hỗ trợ riêng cho việc chuyển đổi zoom bằng cách sử dụng tiền tố tmux z. Vì chúng ta có thể sẽ không thấy tmux 1.8 trong 12.04 tôi đã biên dịch tmux 1.8 từ nguồn trên máy tính dev khác, đổi tên thành _tmux-1.8 và chỉ sao chép bản nhị phân 1.8 sang /usr/bin/_tmux-1.8 và chỉnh sửa .bash_aliases -> alias tmux = '_ tmux-1.8'.

Tôi đã không nhận thấy bất kỳ vấn đề bằng cách sử dụng phương pháp này nhanh chóng và bẩn và khi / nếu tmux 1,8 đến 12,04 tôi đã không bị hỏng bất cứ điều gì.


0
2018-06-02 12:53





Đối với các phiên bản cũ hơn của tmux, giải pháp này là giải pháp duy nhất tôi tìm thấy có hiệu quả:

https://github.com/jipumarino/tmux-zoom


0
2018-03-22 01:55