Ваша система могла бы быть в порядке, но это могло быть состояние состязания, происходящее с make
при выполнении сборок параллельно.
Если бы что-то неправильно с Вашей системой, она зависла бы/разрушила бы для других сценариев, не как раз в то самое время, когда выполнение параллели создает.
Это - что-то вроде этого, что Вы хотите?
Добавьте, чтобы зарегистрировать и сделать исполняемый файл chmod +x filename
. вызов, например.
./sizetmux # Default hardcoded size
./sizetmux 85 # Specify width
Выполнять его из полученного файла:
if-shell /path/to/script/sizetmux 80
Код:
#!/bin/bash
# Wanted pane width 0 - default 80, or pass argument 1 as wanted width
pw0=80
[[ "$1" =~ ^[0-9]+$ ]] && pw0="$1"
# This could be done nicer, but, anyhow: getting current width of pane 0
pw0_cur_w=$(tmux list-panes | awk -F"[ x:\\\[\\\]]+" '/^0:/{print $2}')
# Resize according to current width
if [[ "$pw0_cur_w" -eq "$pw0" ]]; then
echo "OK $pw0"
elif [[ "$pw0_cur_w" -gt "$pw0" ]]; then
((w = pw0_cur_w - pw0))
echo "$w less"
tmux resize-pane -L -t 0 "$w"
elif [[ "$pw0_cur_w" -lt "$pw0" ]]; then
((w = pw0 - pw0_cur_w))
echo "$w more"
tmux resize-pane -R -t 0 "$w"
fi
Также нужно принять во внимание, например, номера строки в энергии поэтому, возможно, 85?
Редактирование, возможно, немного более хорошее (не такая помеха) (после того, как pw0_cur_w=$(tm ...
((w = pw0_cur_w - pw0))
if [[ "$w" -ge 0 ]]; then
dir="L"
echo "$w less"
else
dir="R"
((w *= -1))
echo "$w more"
fi
[[ "$w" -gt "0" ]] && tmux resize-pane -"$dir" -t 0 "$w"
Простой способ сделать это должно использовать основной вертикальный макет с C-b M-4 или C-b: основной вертикальный selectl. Это разработано для emacs, таким образом, левая панель составляет 81 столбец, необходимо будет изменить опцию main-pane-width сделать его 80.
Код принятого ответа я нашел полезным, но я использую tmux 1.8, и, похоже, это встроенная функция. На страницах руководства tmux в разделе split-window: Параметры -l и -p определяют размер новой панели в строках (для вертикального разделения) или в ячейках (для горизонтального разделения) или в процентах, соответственно.
Таким образом, простое использование -l вместо -p должно дать желаемый эффект. Пример:
split-window -h -l 80
Аналогичное решение для resize-pane
описано здесь .
screen
и только недавно начали пытаться вынудить меня кtmux
. – Runium 03.05.2013, 20:09screen
в течение дня перед открытиемtmux
, Я люблю его. Настройте его для энергии, и теперь это - бриз. – JKirchartz 03.05.2013, 20:12$pane
был дополнительный аргумент 2 и где я пытался определить, где область (оставлялась/центрировалась/исправлялась) и использование "R" или "L" соответственно, но оказалась твердой обнаружить. Исправленный. – Runium 03.05.2013, 21:38