Czy mogę sprawić, by panel tmux był „lepki”?

9

Czy można sprawić, by jedna lub więcej paneli tmux było „lepkich”? Czy te panele pojawią się we wszystkich oknach, które są obecnie dostępne w mojej sesji tmux?

Arne
źródło

Odpowiedzi:

5

Ten pojawia się na liście mailingowej każdy raz w na chwilę .

Nie, nie można mieć panelu w więcej niż jednym oknie.

Wewnętrzna konstrukcja tmux pozwala, aby okna były wieloma sesjami, ale okienko może należeć tylko do jednego okna.

Chris Johnsen
źródło
3

Jak mówi Chris, nie ma wbudowanej funkcjonalności pozwalającej na oznaczenie szyby jako lepkiej, a tego rodzaju ma sens, ponieważ nie jest od razu oczywiste, jak poradzić sobie z restrukturyzacją wszystkich paneli we wszystkich innych oknach po przełączeniu „lepkości” określonego panelu w bieżącym oknie. Zasadniczo byłoby źle obsługiwać bałagan z układem w sposób, który nie jest nawet widoczny dla użytkownika.

Przydatne może się okazać takie powiązanie:

bind -n M-k move-pane -t ':+'
bind -n M-j move-pane -t ':-'

Byłoby to przyjazne dla użytkownika Vima używającego J i K do poruszania się w lewo i prawo. Dzięki temu powiązaniu tmux wkroczy i przełknie Alt+Ki Alt+Jprzesunie twój aktywny panel odpowiednio do prawego i lewego okna.

Będzie szarpał bieżące okno, w którym się znajdujesz i umieszczał je w sąsiednim oknie tmux. Prawdopodobnie możesz nawet określić, który indeks ma wstawić panel do układu okna docelowego. Zobacz stronę podręcznika dla innych opcji, które można podać move-pane.

W ten sposób oczywiście nadal występuje zmiana układu (jedna w oknie źródłowym, która jest niejawna i ograniczona do jednego panelu, a druga w oknie docelowym, również ograniczona do jednego panelu i która jest bezpośrednio obserwowana), ale jest o wiele bardziej „kontrolowana” ”i dopóki skupisz się na okienku, które ma być„ lepkie ”, osiągniesz swój cel mniej więcej.

Nadal uważam to za niezadowalające ze względu na konieczność skupienia okienka, które ma być „lepkie”, a to utrudnia szybkie wydanie tego polecenia, jeśli chcesz mieć lepkie okienko, które jest zawsze widoczne, ale tak naprawdę nigdy go nie ustawiasz .

Istnieje możliwość wymyślenia nieco bardziej skomplikowanych skryptów tmux, które używają specjalnych nazw dla panelu, który zamierzasz być lepki i ręcznie układają dla ciebie różne rzeczy. Ale to brzmi jak ból w dupie.

Ostatnią opcją do rozrywki jest użycie zagnieżdżonego tmux: Umieść swój lepki panel w nadrzędnym tmux, a drugi panel zawiera tmux, który obsługuje resztę twoich terminali. W ten sposób możesz swobodnie przełączać się w swoim dziecku. Problem polega na tym, że musisz wymyślić coś wykonalnego, ponieważ domyślnie będziesz musiał dwukrotnie nacisnąć klawisz prefiksu, aby wykonać te same zadania. Bardzo irytujące. Łączę inteligentnie „tunel” przez dowolne zagnieżdżone tmuxy, ale logika tych nieefektywnych schematów przekazywania wiadomości szybko staje się trudna do zarządzania. Ograniczeniem jest to, że „lepka tafla” musi tutaj obejmować całą wysokość lub szerokość, nie może to być narożnik.

Podsumowując, powiedziałbym, że jest to jedna cecha, którą tmux powinien dla nas zaimplementować, ponieważ jest prawie niemożliwe, aby zrobić dobrze ze skryptami, jednak nie wiem, jak można to zrobić w niezrozumiały sposób (patrz moje pierwsze zdanie ).

Steven Lu
źródło
2
Wydaje mi się, że z tego, co jest warte, zamiast być lepkim, ponieważ naprawdę trudno jest zdefiniować, co zrobić z innymi oknami, powinna istnieć okienko klonowania, które te, które naprawdę chcą lepkości, mogłyby wykorzystać do osiągnięcia tego samego rezultatu. I szczerze mówiąc, to właśnie tafla klonów, której szukałem, doprowadziła mnie tutaj. To byłaby dobra cecha.
Tommi Kyntola,