Сделайте панель шириной 80 (или около того) шириной

Я пытаюсь следовать правилу столбца 80 при написании кода, моя текущая настройка tmux разделяется по горизонтали 50/50. Мне нравится иметь vim в левой панели, а в правой панели у меня есть раскол 75/25, где я запускаю другие вещи.

На моей стороне монитор 50% имеет ширину 76 колонок, но на дисплее моего ноутбука ширина 123 колонок.

Я хотел бы максимизировать недвижимость для других команд. Есть ли способ установить это ровно 80 столбцов (или около того) при запуске моего рабочего пространства?

Я сейчас настраиваю свое рабочее пространство с помощью:

bind Cw source-file ~/dotfiles/scripts/tmux_work_layout 

этот файл содержит:

 selectp -t 0 # Select pane 0 splitw -h -p 50 # Split pane 0 vertically by 50% selectp -t 1 # Select pane 1 splitw -v -p 25 # Split pane 1 horizontally by 25% selectp -t 0 # Select pane 0 

3 Solutions collect form web for “Сделайте панель шириной 80 (или около того) шириной”

Это что-то вроде этого вы хотите?

Добавьте в файл и сделайте исполняемый файл 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 

Нужно также учитывать, например, номера строк в vim, возможно, 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" 

Я нашел код для принятого ответа полезным, но я использую tmux 1.8, и это, кажется, встроенная функция. Из страниц man tmux в разделенном окне: The -l and -p options specify the size of the new pane in lines (for vertical split) or in cells (for horizontal split), or as a percentage, respectively. Таким образом, просто используя -l in -ad -p должен иметь эффект, который вы ищете. например:

 split-window -h -l 80 

Аналогичное решение для области resize-pane описано здесь .

Легкий способ сделать это – использовать основной вертикальный макет с Cb M-4 или Cb: selectl main-vertical. Он предназначен для emacs, поэтому в левой панели находится 81 столбец, вам нужно будет изменить параметр ширины основной панели, чтобы сделать его 80.

  • apt-get версия tmux устарела
  • Перемещение кнопок мыши в tmux
  • отключить имя хоста в выводах «list windows» tmux
  • Как предотвратить отображение tmux в новом окне
  • Как я могу переместить строку состояния tmux в начало?
  • Необходим ли обязательный префиксный ключ в tmux?
  • поддержка tmux, TERM и 256 цветов
  • Отобразить текущий каталог текущей панели в статусе
  • Выполнить cd в двух окнах с помощью одной команды
  • Промежуточные пробелы при копировании с консоли
  • Присоединитесь к сеансу tmux и выполните команду
  • Linux и Unix - лучшая ОС в мире.