Як я однаково балансую tmux (1) розділені панелі?


217

Я шукаю поведінку, схожу на те, як vim (1) обробляє свої розділені вікна ^w =. Я знаю, що tmux (1) має заздалегідь задані макети ^b Meta[1-5], але це, мабуть, не має макет, яким я зараз користуюся.

Розбиваючи вікно, воно вдвічі зменшує поточне вікно для обох вікон. Знову розділіть, і вона вдвічі зменшить панель на дві нові. Поєднайте вертикальні та горизонтальні розколи, і вони продовжують вдвічі зменшуватись, кожна нова панель стає все меншою та меншою.

Як я можу зберегти новий макет, який я тільки що створив, але всі вертикальні та горизонтальні розколи однаково врівноважені, як це робить vim (1) ^w =?


В описі макета "плитка" йдеться про те, що "Панелі розподіляються максимально рівномірно над вікном у обох рядках та стовпцях". Чи можете ви пояснити, чим те, що ви хочете, відрізняється від цього, будь ласка?
Ларс Коттофф

1
Звичайно. Це дуже добре описує: gist.github.com/1942422
Аарон Топонс

Відповіді:


284

По вертикалі

select-layout even-vertical
Зазвичай призначається: Ctrl+ b, Alt+2

Горизонтально

select-layout even-horizontal
Зазвичай призначається: Ctrl+ b, Alt+1


70
Для інших людей, які цікавляться: C-b M-2означає Control-b, а M-2означає alt + 2.
Крістоф Де Троєр

29
M-2 означає ESC + 2 для мене на Debian за допомогою терміналу Gnome. Можливо, це залежить від налаштування.
arcyqwerty

7
C-...і M-...є emacs-ims M- означає "мета", який є [Alt] у поєднанні з [або Esc], за яким посилається клавіша, обидва варіанти виглядають однаково по дроту, але є ймовірність, що ваш GUI може захопити [ Alt] послідовність
Jasen

3
Просто поклавши це на той випадок, якщо це допомагає комусь іншому, тому що я постійно плутаю, "вертикаль" і "горизонталь" - це напрям інтервалу - тобто, вибір рівного вертикального створить макет, де складені три панелі вертикально, рівний по висоті, де рівномірна горизонтальність створить макет, де три панелі бічні сторони, рівні по ширині
А. Вілсон

Як зробити M-2 на macOS за допомогою клавіатури, де "2" вимагає натискання клавіші (наприклад, французька клавіатура)? Мені не вдалося, за допомогою різних комбінацій альт, керування, командування, втечі та зсуву + 2…
Ерік О Лебігот

95

Ви можете використовувати ctrl-b spaceдля перегляду макетів з рівним інтервалом, але це не обов'язково збереже макет, який ви мали.


2
Ідея трюку (якщо ви хочете , щоб відобразити його на що - то інше або адаптувати його) bind-key -r Space next-layout. Тоді C-b Space Space Space...
BenC

3
Чи є спосіб дізнатися, який макет я вибрав, і як швидко перейти до нього знову?
обіймає

20

З командного рядка ви можете використовувати

tmux select-layout tiled

щоб ваші шпалери були приблизно однаковими за розміром. Ви також можете зв’язати це з ключовою командою.


3
Зазвичай призначається:C-b M-5
minipif

7

Я не знаю жодної комбінації клавіш, але, можливо, це допоможе вам:

Ви можете спробувати написати якийсь сценарій, щоб зробити макет, і прив'язати ключ до сценарію. Це можна зробити за допомогою tmuxкоманди, pipe-pane [-o] [-t target-pane] [shell-command]щоб записати поточний макет до сценарію. Далі вам потрібно прочитати макет, підготовлений сценарієм за допомогою tmuxкоманди select-layout.


1

Мені важко було знайти магічний заклик, щоб розділитись на 4 рівні квадрати, ось ось це:

# Split session into FOUR EQUAL quadrants
tmux selectp -t 0    # select the first (0) pane
tmux splitw -h -p 50 # split it into two halves
tmux selectp -t 0    # select the first (0) pane
tmux splitw -v -p 50 # split it into two halves

tmux selectp -t 2    # select the new, second (2) pane
tmux splitw -v -p 50 # split it into two halves
tmux selectp -t 0    # go back to the first pane

1

ctrl bа потім :resize-pane -Mі тоді просто використовуйте мишу! (вимагає mouse-modeбути включеним)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.